2017-02-07 6 views
0

Ich habe einige Zweifel darüber, wie DDD-Ansatz im realen Projekt zu verwenden.Groß gesagt, in meiner App habe ich zwei Arten von Operationen: einfache CRUD-Operation, die recht einfach ist, nur erstellen oder aktualisieren Datensätze in der DB und benötigen keine Viele Geschäftslogik und einige Operationen, die es erfordern. Für beide Arten von Betrieb verwende ich Dienste, um eine Art von "Asymmetrie" zu vermeiden, aber für CRUD-Operationen sieht es aus wie Overhead, weil ich nur save() -Methode in Service-Methode wrap und es ist keine Logik hinzufügen.Wie verwende ich DDD in der Praxis?

Also was ist der beste Ansatz nach Ihrer Erfahrung machen einfache (CRUD) Betrieb in Controllern oder setzen Sie es in Dienstleistungen oder haben Sie vielleicht noch andere Ideen?

+0

Haben Sie Ihre beschränkten Kontexte, Aggregate identifiziert? Was meinst du, wenn du DDD erwähnst? –

+2

Für die CRUD-Architektur sollten Sie die Dinge so einfach wie möglich halten, ohne viele unnötige Ebenen. Für die andere komplexere Anwendung könnten Sie DDD anwenden: identifizieren Sie beschränkte Kontexte, Aggregate, Entitäten, Wertobjekte. Abhängig von der Komplexität und den Geschäftsanforderungen (Skalierbarkeit, Wartbarkeit, Anzahl der Benutzer usw.) wählen Sie eine High-Level-Architektur (Onion Architecture/Ports and Adapters) und eine Low-Level-Architektur (CQRS) –

+0

DDD ist ein Ansatz zur Handhabung komplexer Domänen . In deinem Fall klingt es nicht so, als würdest du es brauchen. Check out Vaughn Vernon Score-Karte: http://www.informit.com/articles/article.aspx?p=1944876&seqNum=2 – nova

Antwort

0

DDD ist nicht gut für CRUD-Operationen geeignet, aber meiner Erfahrung nach neigen viele dieser einfachen CRUD-Anwendungen dazu, zu etwas viel Komplexerem zu werden, als ursprünglich angenommen. Seien Sie vorsichtig, wenn Sie etwas Verschwendung in Betracht ziehen, bevor Sie es wissen, Sie hätten sich gewünscht, DDD verwendet zu haben.

Was Sie jetzt tun könnten, ist, DDD für die komplexeren Teile zu verwenden und die CRUD-Operation so einfach wie möglich zu halten. Wenn es dann komplexer wird, haben Sie zumindest ein Framework zur Verwendung eines DDD-Ansatzes.