Clean Architecture – Gute Softwarearchitekturen: Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung.
Rezension von Sven Woltmann
Eine gute Architektur zeichnet sich laut Uncle Bob dadurch aus, dass Software mit minimalem Aufwand an neue und sich ändernde Anforderungen angepasst werden kann – und damit eine lange und profitable Lebensdauer hat.
Zunächst gibt das Buch eine Einführung in die Grundprinzipien des Software-Designs (SOLID-Prinzipien), Prinzipien des Komponentendesigns (Kohäsion und Kopplung) und Metriken zur Bewertung des Designs (Efferente und Afferente Kopplung, Instabilität, Abstraktheit). Alle Prinzipien und Metriken hat Uncle Bob bereits 2002 in „Agile Software Development: Principles, Patterns, and Practices“ beschrieben; größtenteils wurden vollständige Abschnitte einfach übernommen.
Der Schwerpunkt des Buchs liegt auf der Herleitung und Beschreibung der von Uncle Bob so bezeichneten „Clean Architecture“:
Im Kern der Software stehen die fachlichen Komponenten, wie Entitäten und Anwendungsfälle. Diese werden klar abgegrenzt von sogenannten „sekundären Komponenten“ – technischen Implementierungsdetails wie Datenbanken, Benutzeroberflächen oder Frameworks. Alle Abhängigkeiten fließen von den technischen Details zum Kern. Erreicht wird dies durch Dependency Inversion an den Komponentengrenzen.
Die Entkopplung erleichtert das Testen von Komponenten. Technologieentscheidungen (z. B. welche Persistenztechnologie oder welches Dependency Injection Framework verwendet werden soll) können aufgeschoben – oder später im Projekt relativ einfach revidiert werden.
Zahlreiche Praxisbeispiele helfen beim Verständnis der Theorie. Und wie alle Bücher von Uncle Bob ist auch dieses mit zahlreichen Anekdoten aus dem Berufsleben des Autors – bis zurück in die 1970er-Jahre – gespickt. Diese Anekdoten sind nicht nur unterhaltsam, sondern helfen auch, den langen evolutionären Weg zur modernen Softwarearchitektur zu verstehen.
Alle Softwarearchitektinnen und -architekten, Programmiererinnen und Programmierer sollten „Clean Architecture“ gelesen haben – nicht nur, um moderne Softwarearchitekturen zu implementieren – sondern auch die theoretischen Grundlagen dahinter zu verstehen.
🎧 Geeignet als Hörbuch? Nein, aufgrund zahlreicher Diagramme und Codebeispiele.
Du findest übrigens eine Tutorial-Serie über hexagonale Architektur (die fast identisch ist mit Clean Architecture) im Software-Craftsmanship-Bereich dieser Webseite.
Andere Empfehlungen aus den Genres dieses Buches
Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java
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
Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Pattern Hatching: Design Patterns Applied
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
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