Buchbesprechung: Get Your Hands Dirty on Clean Architecture

Wie erstelle ich langfristig wartbare Software? Dieser Frage geht Tom Hombergs nach und liefert praxisnahe Denkansätze auf dem Weg zu einer wartbaren Software.

In Pocket speichern vorlesen Druckansicht 30 Kommentare lesen
Buchrezension: Arm Assembly Internals and Reverse Engineering

(Bild: nattaphol phromdecha/Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Celil Uzunel
Inhaltsverzeichnis

Tom Hombergs
Get Your Hands Dirty on Clean Architecture – Second Edition
Packt, Juli 2023
168 Seiten, ab 26,99 Euro (Print und E-Book)
ISBN: 978-1-805-12837-3

Erfahrene Entwicklerinnen und -entwickler wissen, wie wichtig es ist, Software so zu entwickeln, dass sie einfach zu warten ist. Kunden wünschen sich häufig zusätzliche Features oder Änderungen an den bestehenden Funktionen. In einer einfach wartbaren Software lassen sich diese Anforderungen in der Regel ohne allzu großen Aufwand umsetzen. In einer Softwarearchitektur, die sich das Qualitätsmerkmal "Wartbarkeit" jedoch nicht verdient hat, verursacht das Einbauen neuer Features beziehungsweise das Refaktorieren bestehender Funktionen meistens einen hohen Aufwand an Zeit und Arbeitskraft.

In seinem Buch "Get Your Hands Dirty on Clean Architecture" widmet sich Tom Hombergs der Frage, wie sich wartbare Software respektive Webapplikationen erstellen lassen. Das jüngst in einer zweiten Auflage neu erschienene Werk stellt das Qualitätsmerkmal "Wartbarkeit" in den Vordergrund. Hombergs will deutlich machen, welchen entscheidenden Einfluss Wartbarkeit auf die Produktivität, Entscheidungsfindung und Arbeitsfreude der Softwareentwicklerinnen und -entwickler nimmt.

Zunächst definiert der Autor daher präzise, was Wartbarkeit in der Softwareentwicklung bedeutet und welche Einflussfaktoren sie hat. Am Ende jedes Kapitels resümiert Hombergs, wie die behandelten Aspekte dabei helfen, wartbare Software zu erstellen. Auf diese Weise lässt sich seine Argumentationskette leicht nachvollziehen. Sie zieht sich wie ein roter Faden durch das gesamte Buch und führt Leser Schritt für Schritt hin zu einer wartbaren Softwarearchitektur.

Anhand der Schichtenarchitektur in der Softwareentwicklung erläutert der Autor, warum gerade dieses häufig verwendete Prinzip es schwer macht, wartbare Software zu entwickeln. Als wichtige Gründe führt Hombergs an, dass sich in der Schichtenarchitektur Use-Cases für eine Applikation nur schwer erkennen lassen, die Bedingungen für das Testen der Software ungünstig sind und paralleles Arbeiten der Entwicklerinnen und Entwickler behindert wird.

(Bild: Packt 2023)

Im Folgenden präsentiert der Autor daher Methoden und Prinzipien, die eine Transformation von der Schichtenarchitektur zur domänenzentrierten hexagonalen Architektur ermöglichen. Dabei gelte es zu beachten, dass die Domänen-Logik von der Persistenz- und UI-Logik sowie den externen Systemen durch Ports und Adapter abgekapselt sei. Hombergs orientiert sich dabei an zwei der aus dem objektorientierten Design stammenden SOLID-Prinzipien: dem Single-Responsibility- und dem Dependency-Inversion-Prinzip.

Auf diese Weise entsteht eine hexagonale Architektur, deren Kern die Domänen-Logik beinhaltet und bei der die Abhängigkeitsrichtung von außen nach innen verläuft, sodass der Domänen-Code keine Abhängigkeiten nach außen hat, sondern alles andere von ihm abhängt. Der Kern besteht aus den einzelnen Use-Cases beziehungsweise Domain Services, die nach dem Prinzip des Domain-Driven Design (kurz DDD) aufgestellt sind.

Seine theoretischen Ausführungen ergänzt Hombergs um eine auf GitHub zur Verfügung gestellte Beispielanwendung mit hexagonaler Architektur, die Entwickler leicht nachvollziehen können. Sie ist im Hinblick auf ihren Funktionsumfang überschaubar gehalten. Wer mit objektorientierten Programmiersprachen vertraut ist, sollte keine Schwierigkeiten haben, den Code zu verstehen.

Auf der Reise von der Schichten- zur hexagonalen Architektur geht der Autor nicht nur auf die Codeorganisation und die Implementierung der Komponenten ein, sondern behandelt zudem das Testen der Architekturelemente sowie die Mapping-Strategien der Domänen-Modelle, die von Adaptern und Ports benötigt werden. Auch das Aufteilen der Architektur in einzelne Bounded Contexts nach den Regeln des DDD und wie diese miteinander interagieren können, kommt nicht zu kurz.

Am Ende stellt der Autor noch die Frage, ob eine hexagonale Architektur denn immer die richtige Softwarearchitektur ist – und beantwortet sie mit: "It depends", es kommt darauf an. Auf der Suche nach einer für ihren Anwendungsfall geeigneten Architektur sollten Entwicklerinnen und Entwickler prüfen, ob der Domänen-Code das Wichtigste in Ihrer Anwendung ist. Ist das nicht der Fall, ist eine hexagonale Architektur wahrscheinlich nicht die richtige Wahl ("If the domain code is not the most important thing in your application, you probably don’t need this architecture style.").

Ganz im Sinne des Buchtitels "Get Your Hands Dirty on Clean Architecture" (Machen Sie sich mit sauberer Architektur die Hände schmutzig) empfiehlt Hombergs zudem all jenen, die mit hexagonaler Architektur noch nicht vertraut sind, damit zu experimentieren, um ein Gefühl für sie zu bekommen.

Wer sich für Softwarearchitekturstile interessiert, sich bisher aber noch nicht mit der domänenzentrierten hexagonalen Architektur auseinandergesetzt hat, erhält in Tom Hombergs Werk verständliche und praxisnahe Denkansätze. Ein roter Faden führt Schritt für Schritt durch alle Kapitel, Leser verlieren sich nicht in Details. Eine kurze Zusammenfassung am Ende jedes Kapitels bringt die relevanten Aspekte nochmals auf den Punkt. Die englische Sprache des Autors ist zudem auch für Nicht-Muttersprachler leicht zu verstehen.

Celil Uzunel
ist Softwareentwickler und befasst sich gerne mit dem Thema Softwarearchitektur. Derzeit liegt sein Fokus auf der Erstellung von Webapplikationen im Versicherungsbereich.

(map)