Ich sehe immer wieder, dass DDD (Domain Driven Design) häufig in Artikeln verwendet wird. Ich habe den Wikipedia-Eintrag über DDD gelesen, kann aber immer noch nicht herausfinden, was es tatsächlich ist und wie ich es bei der Erstellung meiner Websites implementieren würde.
Erstens, wenn Sie nicht wissen, dass Sie es brauchen, ist es möglich, dass Sie es nicht brauchen. Wenn Sie die von DDD gelösten Probleme nicht erkennen, haben Sie diese Probleme möglicherweise nicht. Selbst DDD-Befürworter weisen häufig darauf hin, dass DDD nur für große Projekte (> 6 Monate) gedacht ist.
Angenommen, Sie lesen zu diesem Zeitpunkt noch. Meine Einstellung zu DDD lautet wie folgt:
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 Domänenexperten zusammenarbeiten, der die Funktionsweise des realen Systems erklären kann. Wenn Sie beispielsweise ein System entwickeln, das das Platzieren von Wetten auf Pferderennen regelt, 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 Systemaktivitäten so aufzuschreiben, dass der Domänenexperte sie lesen und überprüfen kann, ob sie korrekt sind. In unserem Wettbeispiel würde die allgegenwärtige Sprache die Definition von Wörtern wie "Rennen", "Wette", "Gewinnchancen" usw. enthalten.
Die von der UL beschriebenen Konzepte bilden die Grundlage für Ihr objektorientiertes Design. DDD bietet klare Anleitungen 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 nie von diesen Dingen gehört haben, DDD nicht für Projekte verwenden sollten, für die Sie eine Frist haben. Bevor Sie DDD versuchen, sollten Sie mit Entwurfsmuster und nternehmensentwurfsmuster vertraut sein. Wenn Sie diese kennen, ist DDD viel leichter zu verstehen. Und, wie oben erwähnt, gibt es eine kostenlose Einführung in DDD von InfoQ (wo Sie auch Vorträge über DDD finden können).
Nehmen Sie als Beispiel StackOverflow. Anstatt mit dem Entwurf 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, Stimmen, Kommentare usw. Da der Entwurf von den Details des Problems bestimmt wird Domäne heißt es domänengesteuertes Design .
Sie können mehr in Eric Evans 'Buch lesen.