Das Clean Architecture-Prinzip

Clean Architecture organisiert Software in vier konzentrischen Schichten – von den stabilen Geschäftsregeln der „Entities“ über anwendungsspezifische „Use Cases“ bis hin zu „Interface Adapters“ und äußeren „Frameworks & Drivers“.

by Thilo Barth

Das Clean Architecture-Prinzip
Photo by Muhamad Rizal Firmansyah / Unsplash

Share

In modernen Softwareprojekten sorgen unstrukturierte Architekturen häufig für unübersichtlichen, schwer wartbaren Code. Clean Architecture, entwickelt von Uncle Bob (Robert C. Martin), begegnet diesem Problem mit einem klaren, schichtenbasierten Ansatz. Ziel ist es, die fachliche Logik (Domain) in den Mittelpunkt zu stellen und Abhängigkeiten zu entkoppeln – für mehr Wartbarkeit, Testbarkeit und Skalierbarkeit.

Die vier Schichten im Überblick

  1. Entities
    – Kapseln die unternehmensweiten Geschäftsregeln (Domain-Modelle).
    – Sind stabil gegenüber Änderungen an externen Faktoren (Datenbank, UI, Frameworks).
  2. Use Cases
    – Enthalten anwendungsspezifische Geschäftsregeln.
    – Koordinieren den Ablauf: Sie rufen Entities auf, verarbeiten Daten und liefern Ergebnisse an die obereren Schichten.
  3. Interface Adapters
    – Übersetzen Datenformate zwischen Use Cases/Entities und externen Systemen (DB, Web, UI).
    – Typische Bausteine: Controller, Presenter, Gateways, Repositories.
  4. Frameworks & Drivers
    – Äußere Schicht mit allen technischen Details: Web-Server, ORMs, externe Bibliotheken, UI-Frameworks.
    – Soll austauschbar bleiben, um z. B. Datenbank oder Web-Framework ohne Einfluss auf die Core-Schichten zu wechseln.

Die Dependency Rule besagt: Pfeile zeigen immer von außen nach innen. Innere Schichten kennen keine Details der äußeren.

Vorteile und Herausforderungen

Vorteile

Herausforderungen

Wann Clean Architecture Sinn macht

Fazit

Clean Architecture bietet einen bewährten Rahmen, um Komplexität beherrschbar zu machen. Sie stellt die Domain-Logik in den Mittelpunkt und schützt sie vor äußeren Abhängigkeiten. Zwar ist der initiale Aufwand höher, doch langfristig profitieren Teams von besserer Wartbarkeit, Testbarkeit und Flexibilität.


Quelle:
Luc Wyns: „Breaking Down Clean Architecture – Core Ideas, Benefits, Drawbacks and Use Cases“, Level Up Coding Blog
https://blog.levelupcoding.com/p/luc-65-breaking-down-clean-architecture-core-ideas-benefits-drawbacks-and-use-cases