Clean Architecture

Details
Vollständiger Name

Clean Architecture nach Robert C. Martin

Kernkonzepte:

Die Abhängigkeitsregel

Abhängigkeiten zeigen nur nach innen

Konzentrische Kreise

Entities → Use Cases → Interface Adapters → Frameworks & Drivers

Unabhängig von Frameworks

Architektur hängt nicht von Bibliotheken ab

Testbar

Geschäftsregeln testbar ohne UI, Datenbank oder externe Elemente

Unabhängig von UI

UI kann sich ändern, ohne Geschäftsregeln zu ändern

Unabhängig von Datenbank

Geschäftsregeln nicht an Datenbank gebunden

Unabhängig von externen Stellen

Geschäftsregeln wissen nichts über die Außenwelt

Screaming Architecture

Architektur offenbart die Absicht des Systems

SOLID-Prinzipien

Grundlage der Architektur

Schlüsselvertreter

Robert C. Martin ("Uncle Bob")

Wann zu verwenden:

  • Unternehmensanwendungen mit komplexer Geschäftslogik

  • Systeme, die langfristige Wartbarkeit erfordern

  • Wenn Teamgröße und Fluktuation hoch sind

  • Projekte, bei denen Geschäftsregeln vor Technologieänderungen geschützt werden müssen

Kritik:

  • Jimmy Bogard, "Vertical Slice Architecture" (2018) — nennt die "traditionelle Layered/Onion/Clean Architecture" monolithisch im Ansatz und nur für eine Minderheit der Requests angemessen; er kritisiert mock-lastige Tests und Abstraktionen "um Konzepte, die nicht abstrahiert gehören"; seine Alternative ist Vertical Slice Architecture

  • Derek Comartin, "'Clean Architecture' and indirection. No thanks." (CodeOpinion) — tut kanonische Clean-Architecture-Beispiele als "nutzlose Indirektion" ab: Die Schichtung kostet, ohne sich in typischen Systemen zu bezahlen

  • Die Kritiken laufen zusammen: Die Dependency Rule erhebt auf jedes Feature eine fixe Indirektions-Steuer, während die meisten Änderungen ohnehin durch alle Schichten schneiden — genau die Kopplung, um die Vertical Slice Architecture stattdessen organisiert