Die saubere Architektur ist ein architektonisches Muster, das eine Anleitung für die Organisation von Anwendungen in Schichten und die Trennung der Belange der einzelnen Schichten bietet. Sie ist auch als hexagonale Architektur, Ports und Adapter oder Zwiebelarchitektur bekannt. Sie betont die Trennung von Belangen und die unabhängige Entwicklung und Prüfung von Anwendungsschichten. Dieser Artikel gibt einen Überblick über die saubere Architektur und ihre Vorteile.
Eine saubere Architektur ist vorteilhaft, weil sie eine modularere und erweiterbare Codebasis ermöglicht, die leichter zu pflegen und an Änderungen anzupassen ist. Es ist auch einfacher, Komponenten durch andere Technologien zu ersetzen, während die Kernanwendungslogik intakt bleibt. Darüber hinaus ermöglicht diese Architektur eine bessere Trennung von Belangen, was es einfacher macht, einzelne Komponenten isoliert zu testen.
Die saubere Architektur besteht aus mehreren Schichten, die jeweils spezifische Aufgaben haben. Zu diesen Schichten gehören die Domänenschicht, die Anwendungsschicht, die Infrastrukturschicht und die Datenschicht. Die Domänenschicht ist für die Geschäftslogik zuständig, während die Anwendungsschicht für die Koordinierung des Anwendungsablaufs verantwortlich ist. Die Infrastrukturebene ist für die Interaktion mit externen Diensten zuständig, und die Datenschicht ist für die Datenpersistenz verantwortlich.
Die Interaktionen zwischen den Schichten einer sauberen Architektur sind wichtig, um sicherzustellen, dass die Anwendung erweiterbar und wartbar bleibt. Die Domänenschicht interagiert mit der Anwendungsschicht, die wiederum mit der Infrastruktur- und Datenschicht interagiert. Die Infrastrukturschicht interagiert mit der Datenschicht und externen Diensten, während die Datenschicht mit der Datenbank interagiert.
Dependency Injection ist eine Schlüsselkomponente einer sauberen Architektur, die eine bessere Trennung von Belangen und Testbarkeit ermöglicht. Dies geschieht durch die Einführung eines Service Locators oder eines Dependency Containers zur Verwaltung der von der Anwendung verwendeten Objekte. Der Service-Locator ist für die Bereitstellung der Abhängigkeitsobjekte für die Anwendung verantwortlich.
Testbarkeit ist ein wichtiges Merkmal einer sauberen Architektur. Sie ermöglicht die unabhängige Testbarkeit der einzelnen Schichten und Komponenten, was die Komplexität der Tests reduziert und ihre Wartung erleichtert. Dies ermöglicht auch ein besseres Refactoring und mehr Flexibilität in der Codebasis.
Die saubere Architektur wird in der Praxis von vielen Organisationen wie Google, Microsoft und Amazon verwendet. Diese Unternehmen haben diese Architektur für ihre Anwendungen übernommen, da sie eine bessere Wartbarkeit und Erweiterbarkeit der Codebasis ermöglicht. Außerdem hilft sie ihnen, die Kosten zu senken und den Entwicklungszyklus zu verbessern.
Zusammenfassend lässt sich sagen, dass eine saubere Architektur ein Architekturmuster ist, das eine Anleitung für die Organisation von Anwendungen in Schichten und die Trennung der Belange jeder Schicht bietet. Es legt den Schwerpunkt auf die Trennung von Belangen und die unabhängige Entwicklung und Prüfung von Anwendungsschichten und ist wegen seiner Erweiterbarkeit, Wartbarkeit und Prüfbarkeit von Vorteil. In der Praxis wird es von vielen Unternehmen aufgrund seiner Vorteile und Kosteneinsparungen eingesetzt.