曾經在看過一個函數後,感到迷失在它的複雜性中嗎?讓我們探討乾淨程式碼的基本原則:函數應該只維護一個抽象層級。
這是在 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