2012-08-06 14 views
7

Eine allgemeine Reaktion, die ich für viele Fragen sehe, die hier und in anderen Foren gestellt werden, sind wie "Du brauchst DDD dafür nicht zu tun. Es ist eine einfache CRUD-Anwendung, DDD ist ein Over-Engineering".Ist DDD für alle Arten von Anwendungen geeignet?

Nun, ich bin neu zu DDD und ich denke, es gibt viele Elemente in DDD, die universelle Anziehungskraft hat und kann auf der ganzen Linie verwendet werden, unabhängig davon, ob Ihre Anwendung komplex ist, DDD zu beauftragen. Zum Beispiel, Layering der Anwendung, verschiedene Artefakte, die DDD erkennt etc. Kann mit den Grundlagen und zugegebenermaßen anämischen Modellen beginnen und dann zu so viel Reinheit wie möglich arbeiten.

Klingt dieser Ansatz gut?
Oder würden Sie sagen, dass es eine grundlegende Wahl im Design jeder Anwendung in Bezug darauf gibt, ob DDD gehen oder nicht, Art von "alles oder nichts" Wahl?

UPDATE(mehr Kontext, in Reaktion auf den Kommentar unten hugh)
  ich um eine bestehenden RuleEngine Art der Anwendung eine Webapp am Bau, im Grunde CRUD und einige Validierungen, Invarianten und dann ein Prozess der Bereitstellung. Die Regelautorisierung und die semantische Prüfung werden durch einen eigenständigen Codeabschnitt ausgeführt, den ich als Teil der CRUD nenne, und keine dieser semantisch spezifischen Logik ist in meinem Code vorhanden. Ich versuche, DDD für diese Anwendung zu verwenden, aber ich sehe es nicht kompliziert genug, um in das DDD-Paradigma zu passen. Für die Domäne ist keine allgegenwärtige Sprache definiert, d. H. Die Sprache ist nicht spezialisiert genug, um die Menge der beteiligten Entitäten zu benennen. Ich höre meinen Domänenexperten beim Erstellen, Bearbeiten und Löschen von Entitäten.

+2

Ihre Frage ist unwahrscheinlich, viele Antworten zu entlocken, da Sie nicht wirklich einer bestimmten Herausforderung gegenüberstehen, sondern auch versuchen, eine allgemeine Diskussion über die Eignung eines bestimmten Ansatzes zu starten, auf den die Antwort normalerweise lautet: "Es kommt darauf an". –

+1

danke hugh! Für den pointierten Kommentar und den Downvote, siehe das obige Update, versuchte einen Kontext hinzuzufügen, hoffentlich wird es helfen, über den Punkt "es kommt auf" zu kommen :). – redzedi

+0

Ich war in diesem Fall nicht der Downvoter. +1 für mehr Details. –

Antwort

5

DDD ist nicht alles oder nichts. Außerdem sind viele der in DDD beschriebenen Muster nicht neu und können überall gefunden werden. Eric Evans (der Autor des DDD-Buches) hat sie gerade zusammengestellt, sie formalisiert, wo nötig, und sie in Beziehung zueinander gesetzt. Sie können frei wählen, was zu Ihrem Problembereich passt.

Was oft übersehen wird: DDD beschreibt Implementierungsmuster sowie Analysemuster. Die Analysemuster können in vielen (wenn nicht den meisten) Anwendungen übertrieben sein, aber die Implementierungsmuster (d. H. Einheiten Spezifikationen, Dienste) können auch in weniger komplexen Szenarien von großem Nutzen sein.

2

Kurz,

Wenn es nur CRUD ist, würde ich nicht stören.

Auf der anderen Seite,

Wenn es Verhalten bekommt ist, wo der nächste Zustand von etwas auf dem vorherigen Zustand beruht, dann ist DDD etwas, das Sie wahrscheinlich zu betrachten.

Verwandte Themen