曾经在看过一个函数后,感到迷失在它的复杂性中吗?让我们探讨一下干净代码的基本原则:函数应该只维护一个抽象级别。
这是在 Web 应用程序中创建用户的真实示例:
// ❌ A function doing too many things at different abstraction levels function createUser(userData) { // Validate data if (!userData.email || !userData.email.includes('@')) { return 'Invalid email'; } if (userData.password.length这个函数混合了不同层次的抽象:
让我们按照单层抽象原则重构它:
// ✅ Clean version with one level of abstraction function createUser(userData) { const validationError = validateUserData(userData); if (validationError) return validationError; const securePassword = hashPassword(userData.password); const formattedUser = formatUserData(userData.email, securePassword); return saveUserToDatabase(formattedUser); } function validateUserData({ email, password }) { if (!email || !email.includes('@')) return 'Invalid email'; if (password.length这种方法的好处
- 可读性:主要功能读起来像一个故事,描述了高层发生的事情
- 可维护性:每个功能都有单一职责,使更改更安全
- 可测试性:可以独立测试每一段逻辑
- 可重用性:这些重点功能可以在其他上下文中重用
要点
编写函数时:
记住:如果您在同一个函数中混合“如何”和“什么”,您可能正在处理多个抽象级别。分开吧!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3