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

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

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.


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.


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 .


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


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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.