Haben Sie schon einmal eine Funktion betrachtet und sich in ihrer Komplexität verloren gefühlt? Lassen Sie uns ein grundlegendes Prinzip von sauberem Code untersuchen: Funktionen sollten nur eine Abstraktionsebene beibehalten.
Hier ist ein reales Beispiel für die Benutzererstellung in einer Webanwendung:
// ❌ 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.lengthDiese Funktion mischt verschiedene Abstraktionsebenen:
Lassen Sie es nach dem Prinzip der einzelnen Abstraktionsebene umgestalten:
// ✅ 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.lengthVorteile dieses Ansatzes
- Lesbarkeit: Die Hauptfunktion liest sich wie eine Geschichte und beschreibt, was auf hoher Ebene passiert
- Wartbarkeit: Jede Funktion hat eine einzige Verantwortung, wodurch Änderungen sicherer werden
- Testbarkeit: Sie können jeden Teil der Logik unabhängig testen
- Wiederverwendbarkeit: Diese fokussierten Funktionen können in anderen Kontexten wiederverwendet werden
Wichtige Erkenntnisse
Beim Schreiben von Funktionen:
Denken Sie daran: Wenn Sie „wie“ und „was“ in derselben Funktion mischen, haben Sie es wahrscheinlich mit mehreren Abstraktionsebenen zu tun. Teilen Sie sie auf!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3