Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java
Rezension von Sven Woltmann
Was ist hexagonale Architektur? Was sind ihre Vorteile? Und wie implementiert man eine hexagonale Anwendung in Java? Diese Fragen beantwortet Tom Hombergs in „Get Your Hands Dirty on Clean Architecture“.
Der Autor beschreibt zunächst die Probleme der klassischen Schichtenarchitektur und erklärt, wie die von Robert C. Martin beschriebene „Clean Architecture“ und die von Alistair Cockburn eingeführte (prinzipiell vergleichbare) „Hexagonale Architektur“ die Anforderungen einer modernen Anwendung (Wartbarkeit, Anpassbarkeit, Erweiterbarkeit) besser erfüllen können – nämlich indem sie die fachliche Domäne (und nicht technische Details) in den Mittelpunkt der Architektur stellen.
Nach kurzer Theorie folgt die Praxis: Schritt für Schritt entwickelt der Autor eine beispielhafte Java-Anwendung mit Entities, Use Cases, Ports und Adaptern. Für die Adapter stellt er verschiedene Mapping-Strategien vor und bespricht deren Vor- und Nachteile.
Er geht detailliert auf den Schnitt und die Testbarkeit der Komponenten ein und schlägt eine Paketstruktur vor, die den Architekturstil sichtbar macht.
Nachdem alle Komponenten der Anwendung fertiggestellt sind, zeigt der Autor, wie diese – zum einen mit reinem Java und zum anderen mit dem Spring Framework – zusammengesetzt werden können. Damit demonstriert er eindrucksvoll, dass auch die Umsetzung der Dependency Injection bloß ein austauschbares Detail der Software sein kann.
Anschließend zeigt der Autor, wie die Anwendung mit separaten Build-Artefakten, z. B. Maven-Modulen, so modularisiert werden kann, dass der Architekturstil nicht ohne weiteres umgangen werden kann. Leider geht der Autor nicht darauf ein, inwieweit das Java-Modulsystem diese Aufgabe ebenfalls übernehmen könnte.
Schließlich erörtert er noch, welche Abkürzungen wir beim Mapping zwischen den Schichten einschlagen können und welchen technischen Schulden wir uns dabei bewusst sein müssen.
Das Buch ist hervorragend strukturiert und durchgehend verständlich und präzise formuliert. Dem Autor ist es gelungen, auf nur 138 Seiten unterzubringen, was in „Designing Hexagonal Architecture with Java“ (ein Buch, das ich nicht empfehle und das ich deshalb hier auch nicht aufliste) mehr als den vierfachen Platz einnimmt. Eine hervorragende Leistung!
🎧 Geeignet als Hörbuch? Nein, aufgrund zahlreicher Diagramme und Codebeispiele.
Du findest übrigens eine Tutorial-Serie über hexagonale Architektur im Software-Craftsmanship-Bereich dieser Webseite.
Andere Empfehlungen aus den Genres dieses Buches
Clean Architecture – Gute Softwarearchitekturen: Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung.
Domain-Driven Design: Tackling Complexity in the Heart of Software
Implementing Domain-Driven Design
Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
Domain-Driven Design kompakt
Pattern Hatching: Design Patterns Applied
Refactoring: Wie Sie das Design bestehender Software verbessern
Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Clean Craftsmanship: Best Practices, Standards und Ethik für die Softwareentwicklung
Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software
Growing Object-Oriented Software, Guided by Tests
Der pragmatische Programmierer: Ihr Weg zur Meisterschaft
Clean Coder: Verhaltensregeln für professionelle Programmierer
Agile Software Development: Principles, Patterns, and Practices
Extreme Programming: Das Manifest