Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Rezension von Sven Woltmann
In diesem Klassiker der Softwareentwicklungs-Bücher geht es, wie der Name schon sagt, um sauberen Code: Code, der nicht nur funktioniert, sondern vor allem gut lesbar und wartbar ist.
Dazu gehören u. a.
- aussagekräftige Namen,
- kurze Funktionen, die eine (und nur eine) Aufgabe auf einer einheitlichen Abstraktionsebene ausführen,
- aussagekräftige (oder gar keine) Kommentare (im Gegensatz zu solchen, die bloß wiederholen, was der Code tut, oder – schlimmer noch – was er früher einmal getan hat),
- ein konsistenter Code-Stil,
- eine saubere Klassenstruktur (dieser Punkt wird ausführlicher behandelt im zuvor vorgestellten „Agile Software Development: Principles, Patterns, and Practices“)
- eine Fehlerbehandlung, die die eigentliche Businesslogik nicht verschleiert,
- Unit-Tests, optimalerweise testgetrieben entstanden.
Die vorgestellten Prinzipien werden anhand mehrerer konkreter Java-Fallstudien erläutert.
Das Buch ist einfach zu verstehen und durch eingestreute Anekdoten unterhaltsam zu lesen. Jeder Entwickler sollte dieses Buch lesen und sich die vorgestellten Prinzipien in Fleisch und Blut übergehen lassen.
Das Kapitel über Concurrency ist leider stark vereinfacht darstellt (ohne auf diese Tatsache hinzuweisen). Moderne Optimierungen wie Instruction Reordering und CPU-Cache-Effekte, werden nicht angesprochen. So kann sich der Leser nach Lektüre dieses Kapitels schnell in trügerischer Sicherheit wähnen und subtile Bugs produzieren, die im Nachhinein nur sehr schwer zu finden sind.
Um Sicherheit im Umgang mit Concurrency zu gewinnen, lege ich jedem Java-Entwickler Brian Goetz’ „Java Concurrency in Practice“ ans Herz.
Zum Schluss noch ein persönlicher Tipp zum Thema Code Style: Erfindet keinen eigenen Style. Erspart euch die zahllosen Diskussionen im Team und nehmt stattdessen einen existierenden, möglichst weit verbreiteten Stil, für den es Dokumentation, Checker, Formatierer und IDE-Plugins gibt. Ein gutes Beispiel ist Google’s Java Style Guide und die zugehörigen Tools.
🎧 Geeignet als Hörbuch? Nein! Auch wenn es dieses Buch unerklärlicherweise als Hörbuch gibt, ist es aufgrund der zahlreichen Code-Beispiele nicht als solches geeignet.
Andere Empfehlungen aus den Genres dieses Buches
Clean Craftsmanship: Best Practices, Standards und Ethik für die Softwareentwicklung
Clean Coder: Verhaltensregeln für professionelle Programmierer
Agile Software Development: Principles, Patterns, and Practices
Clean Architecture – Gute Softwarearchitekturen: Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung.
Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
Refactoring: Wie Sie das Design bestehender Software verbessern
Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software
Der pragmatische Programmierer: Ihr Weg zur Meisterschaft
Growing Object-Oriented Software, Guided by Tests
Clean Agile: Die Essenz der agilen Softwareentwicklung
Pattern Hatching: Design Patterns Applied
Domain-Driven Design: Tackling Complexity in the Heart of Software
Implementing Domain-Driven Design
Extreme Programming: Das Manifest
Projekt Unicorn: Der Roman über Entwickler, Digital Disruption und das Überleben im Datenzeitalter