Antworten:
Erstens, wenn Sie nicht wissen, dass Sie es brauchen, ist es möglich, dass Sie es nicht brauchen. Wenn Sie die Probleme, die DDD löst, nicht erkennen, haben Sie diese Probleme möglicherweise nicht. Selbst DDD-Befürworter werden häufig darauf hinweisen, dass DDD nur für große Projekte (> 6 Monate) vorgesehen ist.
Angenommen, Sie lesen zu diesem Zeitpunkt noch, dann sehe ich DDD folgendermaßen:
Bei DDD geht es darum, Ihre Software zu einem Modell eines realen Systems oder Prozesses zu machen. Bei der Verwendung von DDD sollten Sie eng mit einem Domain-Experten zusammenarbeiten , der Ihnen erklären kann, wie das reale System funktioniert. Wenn Sie beispielsweise ein System entwickeln, das die Platzierung von Wetten auf Pferderennen übernimmt, ist Ihr Domain-Experte möglicherweise ein erfahrener Buchmacher.
Zwischen Ihnen und dem Domain-Experten erstellen Sie eine allgegenwärtige Sprache (UL), die im Grunde eine konzeptionelle Beschreibung des Systems darstellt. Die Idee ist, dass Sie in der Lage sein sollten, die Funktionsweise des Systems so aufzuschreiben, dass der Domänenexperte sie lesen und überprüfen kann, ob sie korrekt ist. In unserem Wettbeispiel würde die allgegenwärtige Sprache die Definition von Wörtern wie "Rasse", "Wette", "Gewinnchancen" usw. enthalten.
Die von der UL beschriebenen Konzepte bilden die Grundlage für Ihr objektorientiertes Design. DDD bietet eine klare Anleitung zur Interaktion Ihrer Objekte und hilft Ihnen, Ihre Objekte in die folgenden Kategorien zu unterteilen:
DDD empfiehlt auch mehrere Muster:
An dieser Stelle muss ich sagen, dass Sie, wenn Sie noch nichts davon gehört haben, nicht versuchen sollten, DDD für ein Projekt zu verwenden, für das Sie eine Frist haben. Bevor Sie DDD versuchen, sollten Sie mit Entwurfsmustern und Unternehmensentwurfsmustern vertraut sein . Wenn Sie diese kennen, ist DDD viel einfacher zu erfassen. Und wie oben erwähnt, gibt es eine kostenlose Einführung in DDD bei InfoQ (wo Sie auch Vorträge über DDD finden können).
Nehmen Sie als Beispiel StackOverflow. Anstatt mit dem Entwerfen einiger Webformulare zu beginnen, konzentrieren Sie sich zunächst auf die objektorientierte Modellierung der Entitäten in Ihrer Problemdomäne, z. B. Benutzer, Fragen, Antworten, Abstimmungen, Kommentare usw. Da das Design von den Details des Problems abhängt Domain heißt domänengesteuertes Design .
Sie können mehr in Eric Evans 'Buch lesen .