Dirk Richter
Software-Entwicklung und Architektur

Die Entity Falle und die Auswirkungen


Inhaltsverzeichnis

Einleitung

In vielen Softwareprojekten begegnet man dem Antipattern der sogenannten Entity Falle. Es beschreibt die Situation, in der ein System hauptsächlich auf generischen CRUD-Operationen (Create, Read, Update, Delete) für Entitäten basiert und dabei die eigentliche Geschäftslogik vernachlässigt wird. Dieser Ansatz kann für einfache Anwendungen funktionieren, stößt jedoch schnell an seine Grenzen, sobald fachliche Anforderungen steigen.

Was ist die Entity Falle?

Die Entity Falle tritt dann auf, wenn das Design einer Anwendung sich ausschließlich um die Datenbankentitäten und deren direkte Manipulation dreht. Statt konkrete Anwendungsfälle (Usecases) und Geschäftsprozesse zu modellieren, werden lediglich universelle Methoden wie createEntity, getEntity, updateEntity, oder deleteEntity bereitgestellt. Die eigentliche Logik, warum und wann etwas geändert werden darf, fehlt.

Beispiel:
Statt einer dedizierten Methode wie approveInvoice(invoiceId) gibt es nur ein generisches updateInvoice(invoiceId, fields), das keinerlei fachliche Regeln oder Abläufe abbildet.

Warum ist das problematisch?

1. Fehlende Geschäftslogik

Spezifische Regeln und Abläufe, wie z.B. Prüfungen oder Genehmigungen, werden nicht explizit implementiert, sondern oft „irgendwie“ im Frontend oder verteilt im Code umgesetzt. Dadurch geht die eigentliche Fachlichkeit verloren.

2. Schlechte Wartbarkeit

Die Logik ist nicht zentral nachvollziehbar. Änderungen an Anforderungen führen zu schwer nachvollziehbaren Anpassungen an vielen Stellen im Code.

3. Sicherheitsrisiken und Inkonsistenzen

Ohne explizite Methoden für Usecases ist es schwierig, Berechtigungen, Validierungen und Korrektheit sicherzustellen.

4. Geringe Flexibilität

Wenn sich die Geschäftslogik weiterentwickelt, wird das System schwierig anzupassen, da die Regeln nicht klar abgegrenzt sind.

Wann reichen CRUD-Operationen nicht mehr aus?

CRUD ist für sehr einfache Anwendungen und reine Datenhaltung ausreichend. Sobald jedoch eine der folgenden Anforderungen auftritt, sollten explizite Usecases und Methoden modelliert werden:

Best Practices – Ausweg aus der Entity Falle

Fazit

Die Entity Falle ist ein typisches Problem in datenbankzentrierten Designs. Sie führt dazu, dass die eigentliche Geschäftslogik und die Anforderungen des Fachbereichs nicht ausreichend abgebildet werden. Die Lösung liegt darin, Usecases und Prozesse explizit im Code umzusetzen, um Wartbarkeit, Sicherheit und Flexibilität zu erhöhen.

#Bom #Architecture #Technicaldebt