함수를 보고 그 복잡성 때문에 길을 잃은 적이 있나요? 클린 코드의 기본 원칙을 살펴보겠습니다. 함수는 한 수준의 추상화만 유지해야 합니다.
다음은 웹 애플리케이션에서 사용자를 생성하는 실제 예입니다.
// ❌ 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