関数を見て、その複雑さに迷ったことはありますか?クリーンなコードの基本原則を探ってみましょう。関数は 1 つのレベルの抽象化のみを維持する必要があります。
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