Wissen von A bis Z

Clean Architecture

Die Kunst, den Kern Ihrer Software so zu isolieren, dass er von der nächsten Framework-Modeerscheinung unberührt bleibt.

Clean Architecture ist ein Architekturstil, der Geschäftsregeln (Domäne und Anwendungsfälle) konsequent von technischen Details wie UI, Datenbank oder Frameworks trennt. Abhängigkeiten zeigen ausschließlich nach innen: Innere Schichten kennen keine äußeren, sondern werden über Interfaces adressiert (Dependency Inversion).

In Projekten wird Clean Architecture meist in konzentrischen Ringen realisiert: Im Kern stehen Entities und Use Cases, darum herum Adapter (Controller, Presenter, Gateways) und ganz außen Frameworks und Treiber. Implementierungen finden sich in zahlreichen Sprachen - etwa C#-Lösungen mit Projekten wie Domain, Application, Infrastructure und Presentation.

Einsatzzweck ist die langfristige Testbarkeit und Austauschbarkeit. Geschäftslogik wird unabhängig von Frameworks, Datenbanken und UI getestet, und technische Entscheidungen können später revidiert werden, ohne den Kern anzufassen. Das adressiert das klassische Problem stark gekoppelter, schwer modernisierbarer Anwendungen.

Clean Architecture wurde 2012 von Robert C. Martin in einem Blogpost und ausführlich 2017 in seinem Buch "Clean Architecture: A Craftsman's Guide to Software Structure and Design" beschrieben. Sie steht in einer Linie mit Hexagonaler Architektur (Alistair Cockburn) und Onion Architecture (Jeffrey Palermo) und konsolidiert deren Kernidee.

Bei bluehands gehört dieser Architektur-Stil zum Standard. In der Softwaremodernisierung dient es als Zielbild für die Entkopplung von Systemen, um schrittweise Testbarkeit und Evolvierbarkeit zu erreichen.

Zurück