„Clean Architecture" klingt nach einem Konzept für 50-köpfige Konzern-Teams mit eigener Architekturabteilung — nach Diagrammen, die niemand mehr aktuell hält, und Regeln, die mehr Zeit kosten, als sie sparen. Für ein Ein-Personen- oder Drei-Personen-Team, das ein SaaS-Produkt tatsächlich shippen muss, klingt das erst einmal nach Luxus, den man sich nicht leisten kann.
In der Praxis ist es fast umgekehrt: Je kleiner das Team, desto teurer wird ein Verstoß gegen die Grundidee — weil niemand da ist, der den Kontext eines verworrenen Moduls noch im Kopf hat, wenn es sechs Monate später wieder angefasst werden muss.
Im Kern läuft es auf eine einzige Regel hinaus: Domänenlogik hängt nicht vom Framework ab — das Framework hängt von der Domänenlogik ab. Die Regeln, wie eine Rechnung berechnet wird, wie ein Abonnement aktiviert wird oder wie ein IBAN-Checksummen-Algorithmus funktioniert, leben in eigenen, framework-freien Klassen. Controller, Datenbank-Zugriff und HTTP-Routing sind austauschbare Adapter drumherum, nicht der Kern.
Das bedeutet nicht zwangsläufig sechs Schichten, Ports-and-Adapters-Diagramme und eine eigene Dependency-Injection-Zeremonie für jedes Feature. Für ein kleines Team reicht oft schon: Geschäftslogik in eigene Service-Klassen auslagern, die man ohne einen laufenden Webserver testen kann, und Datenbankzugriffe hinter Repository-Klassen verstecken, statt SQL quer über Controller zu verteilen.
Die Kehrseite ist real: Clean Architecture kann auch ein kleines Team lähmen, wenn man sie dogmatisch verfolgt. Eine eigene Value-Object-Klasse für jedes einzelne Feld, ein Interface für jede Klasse, die genau eine Implementierung hat, oder eine Event-Bus-Architektur für ein Produkt mit zehn Nutzern — das ist Aufwand ohne Gegenwert. Die pragmatische Version lautet: Trenne, wo die Trennung wirklich etwas kostet, wenn sie fehlt — Geschäftsregeln, Zahlungslogik, alles, was oft geändert oder unabhängig getestet werden muss. Für den Rest reicht einfacher, direkter Code.
Ein Beispiel aus der eigenen Praxis: In unseren SaaS-Produkten liegt die Berechnung von Rechnungsbeträgen, USt-Aufschlüsselung und IBAN-Prüfsummen vollständig in eigenständigen Service-Klassen — ohne eine einzige Abhängigkeit zu HTTP, Sessions oder dem Web-Framework. Der Controller ruft diese Klassen nur auf und übersetzt das Ergebnis in eine HTTP-Antwort. Das erlaubt, jede einzelne Regel (etwa: "Wann gilt ein Steuersatz als Standard- statt Nullsatz?") isoliert zu prüfen, ohne einen Server zu starten — und macht die Regel gleichzeitig für jeden lesbar, der die Datei öffnet.
Clean Architecture ist kein Ziel an sich und kein Ausweis von Professionalität. Sie ist ein Werkzeug gegen ein sehr konkretes Risiko: dass ein kleines Team seine eigene Codebase nach zwei Jahren nicht mehr sicher ändern kann. Angewendet mit Maß — dort, wo Trennung wirklich schützt, nicht überall aus Prinzip — ist sie für ein Zwei- oder Drei-Personen-Team oft günstiger als der technische Schuldenberg, den ihr Fehlen hinterlässt.
30 Minuten, unverbindlich — wir schauen uns Ihre Codebase an und sagen ehrlich, wo sich eine Investition lohnt und wo nicht.