Où puis-je trouver de bons exemples pour DDD? [fermé]

390

J'apprends la conception pilotée par domaine, mais il y a des problèmes pratiques qui me déroutent et je pense que voir de bons échantillons pourrait s'éclaircir.

Quelqu'un connaît-il de bons exemples de code de travail qui font du bon travail de modélisation des concepts DDD de base?

Particulièrement intéressé par

  • Un modèle de domaine illustratif
  • Dépôts
  • Utilisation des services de domaine / d'application
  • Objets de valeur
  • Racines agrégées
jlembke
la source
42
De tels débats de l'IHMO seront très utiles. Parfois plus qu'une simple question. Par exemple, nous pourrions changer cela dans une question: "Où puis-je trouver de bons exemples pour DDD?" et cela fonctionne avec le format Q&A.
Gizzmo
1
J'ai trouvé l'exemple du «projet de gestion agile» du livre de Vaughn Vernon très instructif. il illustre la mise en œuvre pratique des blocs de construction que vous énumérez, ainsi que la gestion de différents contextes bornés, vous pouvez trouver le code ici: github.com/VaughnVernon/IDDD_Samples
Mehdi.
1
Je recommanderais cet exemple: github.com/vkhorikov/DddInAction
Vladimir
1
Vous pouvez jeter un œil ici: dzone.com/storage/assets/…
Chaklader Asfak Arefe
J'en ai
Clark Kent

Réponses:

199

La difficulté avec les échantillons DDD est qu'ils sont souvent très spécifiques au domaine et l'implémentation technique du système résultant ne montre pas toujours les décisions de conception et les transitions qui ont été faites dans la modélisation du domaine, qui est vraiment au cœur de DDD. DDD concerne beaucoup plus le processus que le code. (comme certains le disent, le meilleur échantillon DDD est le livre lui-même!)

Cela dit, un exemple d'application bien commenté devrait au moins révéler certaines de ces décisions et vous donner des indications en termes de mise en correspondance de votre modèle de domaine avec les modèles techniques utilisés pour le mettre en œuvre.

Vous n'avez pas spécifié la langue que vous utilisez, mais je vais vous en donner quelques-unes dans différentes langues:

DDDSample - un exemple Java qui reflète les exemples dont Eric Evans parle dans son livre . Ceci est bien commenté et montre un certain nombre de méthodes différentes pour résoudre divers problèmes avec des contextes délimités séparés (c'est-à-dire la couche de présentation). Il est activement travaillé, alors vérifiez-le régulièrement pour les mises à jour.

dddps - Exemple d' application C # de Tim McCarthy pour son livre, .NET Domain-Driven Design with C #

Architecture S # arp - un exemple pragmatique en C #, pas aussi "pure" qu'une approche DDD peut-être en raison de son absence d'un vrai problème de domaine, mais toujours une belle approche propre.

Avec tous ces exemples d'applications, il est probablement préférable de consulter les dernières versions de tronc de SVN / quoi que ce soit pour vraiment avoir une idée des modèles de pensée et de technologie car ils devraient être mis à jour régulièrement.

Michael Hart
la source
2
Comme mentionné @Mehdi dans le commentaire original de la question, vous devez ajouter le merveilleux exemple de Vaughn Vernon. C'est la meilleure implémentation du modèle DDD jusqu'à présent que j'ai jamais vue: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Je sais que c'est vieux, mais l'exemple de dddpssemble complètement anémique et contraire à la POO en fait. Aucun des objets de domaine n'a de comportement et les classes de la couche de service sont essentiellement une délégation 1: 1 aux référentiels. Je ne sais pas si cela devrait être considéré comme un "bon" exemple de DDD? J'apprends encore moi-même, mais les exemples de l'architecture S # arp semblent être un meilleur exemple pour ceux qui apprennent le DDD car il englobe à la fois l'état et le comportement, ce qui est une bonne conception de POO.
David Anderson
Vous devez maintenant ajouter l'excellent échantillon de Vaugnh Vernon, l'auteur de la mise en œuvre de la conception pilotée par le domaine (IDDD): github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
23

Pas des projets sources à proprement parler mais je suis tombé sur Parleys.com qui a quelques bonnes vidéos qui couvrent assez bien DDD (nécessite flash):

Je les ai trouvés beaucoup plus utiles que les exemples DDD presque inexistants actuellement disponibles.

Todd Smith
la source
liens ne fonctionnent pas
sidgate
11

Découvrez Project Silk . Non seulement il démontre le DDD, mais aussi d'autres modèles de pointe. Il s'agit d'une excellente ressource pour tout développeur Web. Un aperçu complet du projet est disponible sur MSDN .

user996985
la source
Le code source n'est plus disponible :(
Dherik
7

Ceci est un bon exemple basé sur une conception pilotée par domaine et explique pourquoi il est important d'avoir une couche de domaine distincte.
Microsoft Espagne - Architecture DDD N Layer

Thurein
la source
1
Je ne peux pas voter contre, mais allez sur le blog d'Ayende pour voir pourquoi il pense que ce n'est pas un bon exemple. ayende.com/blog/19457/…
Chris
1
le lien que vous fournissez ne fonctionne pas, erreur de message: «Le projet« microsoftnlayerapp »est introuvable»
Omar AMEZOUG