Wo finde ich einige gute Beispiele für DDD? [geschlossen]

390

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
jlembke
quelle
42
IHMO solche Debatten werden viel helfen. Manchmal mehr als eine einfache Frage. Zum Beispiel könnten wir dies in einer Frage ändern: "Wo finde ich einige gute Beispiele für DDD?" und es funktioniert mit dem Q & A-Format.
Gizzmo
1
Ich fand das Beispiel "Agiles Management-Projekt" aus Vaughn Vernons Buch sehr lehrreich. Es zeigt die praktische Implementierung der von Ihnen aufgezählten Bausteine ​​sowie den Umgang mit verschiedenen begrenzten Kontexten. Den Code finden Sie hier: github.com/VaughnVernon/IDDD_Samples
Mehdi.
1
Ich würde dieses Beispiel empfehlen: github.com/vkhorikov/DddInAction
Vladimir
1
Sie können einen Blick hier werfen: dzone.com/storage/assets/…
Chaklader Asfak Arefe
Habe hier eine: github.com/appie2go/steal-this-code
Clark Kent

Antworten:

199

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.

Michael Hart
quelle
2
Wie bereits in der ursprünglichen Frage @Mehdi erwähnt, sollten Sie das wunderbare Beispiel von Vaughn Vernon hinzufügen. Es ist die beste Implementierung des DDD-Musters, die ich bisher gesehen habe: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Ich weiß, dass dies alt ist, aber das Beispiel von dddpsscheint 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.
David Anderson
Sie sollten jetzt das hervorragende Beispiel von Vaugnh Vernon, dem Autor von Implementing Domain Driven Design (IDDD), hinzufügen: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
23

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.

Todd Smith
quelle
Links funktionieren nicht
Sidgate
11

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 .

user996985
quelle
Quellcode nicht mehr verfügbar :(
Dherik
7

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

Thurein
quelle
1
Ich kann das nicht ablehnen, aber gehe zu Ayendes Blog, um zu sehen, warum er das für kein gutes Beispiel hält. ayende.com/blog/19457/…
Chris
1
Der von Ihnen angegebene Link funktioniert nicht, Meldungsfehler: 'Projekt' microsoftnlayerapp 'wurde nicht gefunden'
Omar AMEZOUG