Ich lerne etwas über Domain Driven Design, aber es gibt einige praktische Probleme, die mich verwirren, und ich denke, dass einige gute Beispiele sich klären könnten.
Kennt jemand einige gute funktionierende Codebeispiele, mit denen grundlegende DDD-Konzepte gut modelliert werden können?
Besonders interessiert an
- Ein anschauliches Domänenmodell
- Repositories
- Nutzung von Domain / Application Services
- Wertobjekte
- Aggregierte Wurzeln
domain-driven-design
jlembke
quelle
quelle
Antworten:
Die Schwierigkeit bei DDD-Beispielen besteht darin, dass sie häufig sehr domänenspezifisch sind und die technische Implementierung des resultierenden Systems nicht immer die Entwurfsentscheidungen und -übergänge zeigt, die bei der Modellierung der Domäne getroffen wurden, die wirklich den Kern von DDD bildet. Bei DDD geht es viel mehr um den Prozess als um den Code. (Wie einige sagen, ist das beste DDD-Beispiel das Buch selbst!)
Eine gut kommentierte Beispiel-App sollte jedoch zumindest einige dieser Entscheidungen aufzeigen und Ihnen eine Richtung geben, wie Sie Ihr Domain-Modell mit den technischen Mustern abgleichen können, die für die Implementierung verwendet wurden.
Sie haben nicht angegeben, welche Sprache Sie verwenden, aber ich gebe Ihnen einige in verschiedenen Sprachen:
DDDSample - ein Java-Beispiel, das die Beispiele widerspiegelt, über die Eric Evans in seinem Buch spricht . Dies ist gut kommentiert und zeigt eine Reihe verschiedener Methoden zur Lösung verschiedener Probleme mit getrennten begrenzten Kontexten (dh der Präsentationsschicht). Es wird aktiv daran gearbeitet. Überprüfen Sie es daher regelmäßig auf Aktualisierungen.
dddps - Tim McCarthys Beispiel-C # -App für sein Buch .NET Domain-Driven Design mit C #
S # arp-Architektur - ein pragmatisches C # -Beispiel , nicht als "reiner" DDD-Ansatz, möglicherweise aufgrund des Fehlens eines echten Domänenproblems, aber dennoch ein netter, sauberer Ansatz.
Bei all diesen Beispiel-Apps ist es wahrscheinlich am besten, die neuesten Trunk-Versionen von SVN / was auch immer zu lesen, um wirklich eine Vorstellung von den Denk- und Technologiemustern zu bekommen, da diese regelmäßig aktualisiert werden sollten.
quelle
dddps
scheint völlig anämisch zu sein und widerspricht tatsächlich OOP. Keines der Domänenobjekte weist ein Verhalten auf, und die Service-Layer-Klassen sind im Grunde eine 1: 1-Delegierung an die Repositorys. Ich bin mir nicht sicher, ob dies als "gutes" Beispiel für DDD angesehen werden sollte. Ich lerne immer noch selbst, aber die Beispiele in S # arp Architecture scheinen ein besseres Beispiel für diejenigen zu sein, die DDD lernen, da es sowohl den Status als auch das Verhalten umfasst, was ein gutes OOP-Design ist.Keine Quellprojekte per say, aber ich bin auf Parleys.com gestoßen, das ein paar gute Videos hat, die DDD recht gut abdecken (erfordert Flash):
Ich fand diese viel hilfreicher als die fast nicht vorhandenen DDD-Beispiele, die derzeit verfügbar sind.
quelle
Das .NET DDD-Beispiel aus dem Domain-Driven Design Book von Eric Evans finden Sie hier: http://dddsamplenet.codeplex.com
Prost,
Jakub G.
quelle
Schauen Sie sich Project Silk an . Es zeigt nicht nur DDD, sondern auch andere innovative Muster. Dies ist eine hervorragende Ressource für jeden Webentwickler. Eine vollständige Übersicht über das Projekt finden Sie auf MSDN .
quelle
Dies ist ein gutes Beispiel, das auf domänengesteuertem Design basiert und erklärt, warum es wichtig ist, eine separate Domänenschicht zu haben.
Microsoft Spanien - DDD N Layer-Architektur
quelle
ddd-cqrs-sample ist auch eine gute Ressource. Geschrieben mit Java, Spring und JPA.
Aktualisierter Link: https://github.com/BottegaIT/ddd-leaven-v2
quelle
Code Camp Server , Jeffrey Palermos Beispielcode für das Buch ASP.NET MVC in Aktion . Während sich das Buch auf die Präsentationsebene konzentriert, wird die Anwendung mithilfe von DDD modelliert.
quelle