Was ist Domain Driven Design DDD?
Domain Driven Design ist ein Ansatz zur Entwicklung komplexer Software. Der Fokus liegt auf der Fachdomäne und ihrer Sprache. Fachlichkeit und Technik werden eng verzahnt.
Was ist eine Domäne im DDD?
Die Domäne beschreibt den fachlichen Problemraum. Sie enthält Regeln Prozesse und Begriffe. Entwickler und Fachexperten arbeiten gemeinsam daran.
Was ist Ubiquitous Language?
Ubiquitous Language ist eine gemeinsame Fachsprache. Sie wird in Code Dokumentation und Gesprächen genutzt. Dadurch entstehen weniger Missverständnisse.
Was ist ein Bounded Context?
Ein Bounded Context definiert die Grenze eines fachlichen Modells. Innerhalb der Grenze gelten klare Begriffe und Regeln. Zwischen Contexts sind Übersetzungen nötig.
Was ist ein Aggregate im DDD?
Ein Aggregate ist eine Konsistenzgrenze. Es besteht aus einer Root-Entität und abhängigen Objekten. Änderungen erfolgen immer über die Aggregate Root.
Was ist der Unterschied zwischen Entity und Value Object?
Entities haben eine Identität. Value Objects sind durch ihre Werte definiert. Value Objects sind meist immutable.
Was ist ein Domain Service?
Ein Domain Service enthält fachliche Logik. Er wird genutzt, wenn Verhalten nicht zu einer Entität passt. Er gehört zur Domänenschicht.
Was ist Anemic Domain Model?
Ein anämisches Modell enthält nur Daten. Fachliche Logik liegt außerhalb der Domäne. DDD versucht dies zu vermeiden.
Was ist Test Driven Development TDD?
TDD ist eine Entwicklungsmethode. Tests werden vor dem Code geschrieben. Der Zyklus lautet Red Green Refactor.
Was bedeutet Red Green Refactor?
Red bedeutet ein fehlschlagender Test. Green bedeutet minimale Implementierung. Refactor verbessert den Code ohne Funktionsänderung.
Was sind Vorteile von TDD?
TDD verbessert Codequalität und Design. Fehler werden früh erkannt. Refactoring wird sicherer.
Was sind Nachteile von TDD?
Der initiale Entwicklungsaufwand ist höher. Nicht jeder Code eignet sich gut für TDD. Es erfordert Disziplin und Erfahrung.
Was ist Behavior Driven Development BDD?
BDD erweitert TDD um fachliche Sicht. Tests beschreiben Verhalten statt Implementierung. Fachsprache steht im Mittelpunkt.
Was ist der Unterschied zwischen TDD und BDD?
TDD ist technisch testgetrieben. BDD ist verhaltensgetrieben und fachlich orientiert. BDD nutzt oft natürliche Sprache.
Was sind Given When Then?
Given beschreibt den Kontext. When die Aktion. Then das erwartete Ergebnis.
Was sind Akzeptanztests?
Akzeptanztests prüfen fachliche Anforderungen. Sie werden oft in BDD eingesetzt. Sie sind für Fachbereiche verständlich.
Wie ergänzen sich DDD und TDD?
DDD liefert das fachliche Modell. TDD hilft bei sauberer Implementierung. Zusammen entsteht wartbarer Code.
Wie ergänzt BDD DDD?
BDD nutzt die Ubiquitous Language. Fachliche Szenarien werden direkt getestet. Das stärkt die Kommunikation.
Was ist ein Mock und wann nutzt man ihn?
Mocks simulieren Abhängigkeiten. Sie isolieren Tests. Sie werden bei Unit-Tests genutzt.
Wann sind DDD TDD und BDD besonders sinnvoll?
Bei komplexen fachlichen Systemen. Wenn Qualität und Wartbarkeit wichtig sind. Besonders in großen Teams.
Last changeda month ago