Saubere Architektur: Ein Handbuch für Softwarestruktur und -design

Saubere Architektur: Ein Handbuch für Softwarestruktur und -design
Robert C. Martin
Genres: Programmierung
Jahr der Veröffentlichung: 2018
Jahr der Lektüre: 2020
Meine Bewertung: Gut
Anzahl der Lesevorgänge: 1
Gesamtseitenzahl: 352
Zusammenfassung (Seiten): 0
Originalsprache der Veröffentlichung: Englisch
Übersetzungen in andere Sprachen: Russisch, Spanisch, Portugiesisch, Chinesisch, Französisch

Das Buch besteht aus 7 Teilen, von denen jeder wiederum aus mehreren Kapiteln (zwischen 5 und 10) besteht. Schauen wir uns die Abschnitte kurz an.

Einleitung

Hier ist alles wie üblich und standardmäßig. Es wird erklärt, was Clean Architecture ist und warum sie notwendig ist. Die Informationen werden in Form verschiedener Diagramme präsentiert, zum Beispiel das Wachstum der Mitarbeiterzahl über einen bestimmten Zeitraum und deren Produktivität (die, wie man sich denken kann, nicht gestiegen ist, da es darum geht, dass schlechte Architektur ein Projekt stark ausbremsen und behindern kann).

Grundlagen: Programmierparadigmen

Der Abschnitt beginnt mit einem kurzen Überblick über die Geschichte der Programmierung seit den Zeiten von Alan Turing und den ersten Programmiersprachen. Es werden strukturiertes Programmieren, objektorientiertes Programmieren und funktionales Programmieren beschrieben. Auch das Testen wird kurz erwähnt. Es gibt Codebeispiele — diese sind in C geschrieben.

Designprinzipien

Hier wird bereits auf Muster eingegangen, genauer gesagt auf die SOLID-Regeln. Im Grunde war es das auch schon. Fünf separate Kapitel, von denen jedes ein Prinzip behandelt.

Prinzipien der Komponentenorganisation

Dieser Abschnitt behandelt das Konzept der Komponente. Unter einer Komponente kann man auch Module und andere unabhängige Codeeinheiten verstehen. Ebenso werden Themen wie Kohäsion und Kopplung von Komponenten behandelt. Es wird auf Abstraktionen, Top-Down- und Bottom-Up-Design eingegangen. Probleme wie zyklische Abhängigkeiten zwischen Komponenten werden ebenfalls angesprochen.

Architektur

Hier beginnt der interessantere und praktischere Teil. Obwohl der Anfang des Abschnitts eher theoretisch bleibt, da es um die Phasen der Softwareentwicklung geht. Bereits zu Beginn spricht der Autor ein wichtiges Thema an: die Trennung der Code-Ebenen, die in den folgenden Kapiteln dieses Abschnitts detailliert behandelt wird. Eines der schwierigsten Dinge bei der Code-Trennung, so der Autor, ist die Festlegung der Grenzen (zwischen den Komponenten), dem man schwer widersprechen kann. Es werden einige Beispiele und reale Geschichten beschrieben. Auch das Thema Monolithen wird behandelt. Schließlich, nach der Aufzählung vieler Fallstricke, kommt der Autor zum Thema Clean Architecture. In seinem Verständnis ist Clean Architecture eine schichtartige, zwiebelartige Architektur, die bei den Regeln der Geschäftslogik beginnt und bei den äußersten Schichten wie Ein-/Ausgabesystemen und verschiedenen Schnittstellen endet. Die Rolle von Datenbanken in einer solchen Architektur sowie andere Muster wie Controller, Modelle und mehr werden ebenfalls kurz angesprochen.

Details

So lautet der Titel eines der letzten Abschnitte. Hier wird ausführlicher auf die Rolle von Datenbanken im Projekt und auf Webschnittstellen eingegangen. Es wird darauf hingewiesen, dass ein Framework lediglich ein Werkzeug ist und man sich nicht starr an die empfohlene Architektur eines bestimmten Frameworks halten sollte. Das Buch schließt mit einem Anhang, in dem erzählt wird, wie Computer früher waren und wie man mit ihnen arbeiten musste.

Fazit

Beginnen wir mit den Vorteilen oder eher den Besonderheiten dieses Buches. Es lässt sich leicht und schnell lesen, da wenig Code enthalten ist, dafür aber zahlreiche Diagramme und Flussdiagramme. Jedes Kapitel ist mit Illustrationen in einem passenden einheitlichen Stil versehen. Als Nachteil ist zu nennen, dass sich das Buch eher an Anfänger richtet. Einsteiger sollten es gründlich lesen, erfahrenere Entwickler können es eher überfliegen (was nicht viel Zeit in Anspruch nimmt), aber für erfahrene Entwickler und Softwarearchitekten wird das Buch wahrscheinlich wenig Mehrwert bieten.

Вверх