2.6 KiB
2.6 KiB
| type | status | date | deciders |
|---|---|---|---|
| ADR | ACCEPTED | 2026-04-08 | Lead Architect, Backend Developer |
ADR-0023: Naming Convention für Domain-Entitäten (kein Dom-Präfix)
Status
ACCEPTED – Umgesetzt in Session 2026-04-08 (Phase 1 & 2 Domain Clean-Up).
Kontext
In der frühen Entwicklungsphase wurden Domain-Klassen mit dem Präfix Dom versehen
(z.B. DomBewerb, DomVeranstaltung, DomTurnier), um sie von DTOs und Datenbank-Entitäten
zu unterscheiden. Diese Konvention hat sich als unnötig und verwirrend erwiesen, da sie
gegen die Prinzipien der Ubiquitous Language (DDD) und der Clean Architecture verstößt.
Entscheidung
Domain-Entitäten tragen ab sofort ihren fachlichen Namen ohne Präfix.
| Schicht | Namenskonvention | Beispiel |
|---|---|---|
| Domain | <FachlicheName> |
Bewerb |
| Datenbank | <FachlicheName>Table |
BewerbTable |
| Persistence | <FachlicheName>Entity |
BewerbEntity |
| API/Transfer | <FachlicheName>Dto |
BewerbDto |
Durchgeführte Umbenennungen (Phase 1)
| Alt (Dom-Präfix) | Neu (Clean Name) | Modul |
|---|---|---|
DomBewerb |
Bewerb |
entries-domain |
DomAbteilung |
Abteilung |
entries-domain |
DomNennung |
Nennung |
entries-domain |
DomNennungsTransfer |
NennungsTransfer |
entries-domain |
DomTurnier |
Turnier |
events-domain |
DomAusschreibung |
Ausschreibung |
events-domain |
DomVeranstaltung |
Veranstaltung |
events-domain (bereits vorhanden, Duplikat gelöscht) |
Konsequenzen
- Positiv: Ubiquitous Language im Code – Fachexperten und Entwickler sprechen dieselbe Sprache.
- Positiv: Weniger kognitive Last – kein mentales Mapping zwischen
DomBewerbundBewerb. - Positiv: Entspricht Clean Architecture – die Domain-Schicht ist die "reine" Schicht.
- Negativ: Einmalige Umbenennung erfordert Anpassung aller Referenzen (wurde systemweit durchgeführt).
- Achtung: Datenbank-Migrationen (Flyway) und Repository-Mappings werden in Phase 3 separat behandelt.
Coding Guideline (verbindlich ab sofort)
Neue Domain-Klassen werden NIEMALS mit
Dom,Model,Entityoder ähnlichen technischen Präfixen/Suffixen versehen. Der fachliche Name ist der Klassenname.Ausnahmen: Datenbank-Klassen (
...Table,...Entity) und Transfer-Objekte (...Dto,...Request,...Response).