Domänenmodellierung
Baue und schärfe aktiv das Domänenmodell des Projekts während des Designs. Dies ist die aktive Disziplin: Begriffe hinterfragen, Edge-Case-Szenarien erfinden und das Glossar sowie Entscheidungen in dem Moment aufschreiben, in dem sie sich kristallisieren. (Das bloße Lesen von GLOSSARY.md für Vokabeln ist nicht diese Fähigkeit: Das ist eine einzeilige Gewohnheit, die jede Fähigkeit ausführen kann. Diese Fähigkeit ist dafür da, wenn du das Modell änderst, nicht nur konsumierst.)
Dateistruktur
Die meisten Repos haben einen einzigen Kontext:
/
├── GLOSSARY.md
├── docs/
│ └── adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
Wenn eine GLOSSARY-MAP.md im Wurzelverzeichnis existiert, hat das Repo mehrere Kontexte. Die Map zeigt an, wo sich jeder befindet:
/
├── GLOSSARY-MAP.md
├── docs/
│ └── adr/ ← systemweite Entscheidungen
├── src/
│ ├── ordering/
│ │ ├── GLOSSARY.md
│ │ └── docs/adr/ ← kontextspezifische Entscheidungen
│ └── billing/
│ ├── GLOSSARY.md
│ └── docs/adr/
Dateien nur dann erstellen, wenn du etwas zu schreiben hast. Wenn keine GLOSSARY.md existiert, erstelle eine, sobald der erste Begriff geklärt ist. Wenn kein docs/adr/ existiert, erstelle es, wenn das erste ADR benötigt wird.
Während der Sitzung
Gegen das Glossar prüfen
Wenn der Benutzer einen Begriff verwendet, der mit der vorhandenen Sprache in GLOSSARY.md in Konflikt steht, weise sofort darauf hin. "Dein Glossar definiert 'Stornierung' als X, aber du scheinst Y zu meinen. Was ist es?"
Vage Sprache schärfen
Wenn der Benutzer vage oder überladene Begriffe verwendet, schlage einen präzisen kanonischen Begriff vor. "Du sagst 'Konto': meinst du den Kunden oder den Benutzer? Das sind verschiedene Dinge."
Konkrete Szenarien besprechen
Wenn über Domänenbeziehungen gesprochen wird, stress-teste sie mit spezifischen Szenarien. Erfinde Szenarien, die Edge Cases untersuchen und den Benutzer zwingen, präzise über die Grenzen zwischen Konzepten zu sein.
Querverweis mit Code
Wenn der Benutzer angibt, wie etwas funktioniert, überprüfe, ob der Code zustimmt. Wenn du einen Widerspruch findest, bringe ihn ans Licht: "Dein Code storniert ganze Aufträge, aber du hast gerade gesagt, dass eine teilweise Stornierung möglich ist. Was ist richtig?"
GLOSSARY.md inline aktualisieren
Wenn ein Begriff geklärt ist, aktualisiere GLOSSARY.md sofort. Führe diese nicht zusammen: Halte sie fest, während sie passieren. Verwende das Format in GLOSSARY-FORMAT.md.
GLOSSARY.md sollte völlig frei von Implementierungsdetails sein. Behandle GLOSSARY.md nicht als Spezifikation, Notizblock oder Repository für Implementierungsentscheidungen. Es ist ein Glossar und nichts anderes.
ADRs sparsam anbieten
Biete nur an, ein ADR zu erstellen, wenn alle drei zutreffen:
- Schwer rückgängig zu machen: Die Kosten, später deine Meinung zu ändern, sind erheblich
- Ohne Kontext überraschend: Ein zukünftiger Leser wird sich fragen "warum haben sie es so gemacht?"
- Das Ergebnis eines echten Kompromisses: Es gab echte Alternativen und du hast eine aus bestimmten Gründen gewählt
Wenn eines der drei fehlt, überspringe das ADR. Verwende das Format in ADR-FORMAT.md.