2008-09-30 8 views
25

J'essaie de comprendre les concepts derrière DDD, mais je trouve difficile à comprendre simplement en lisant des livres car ils ont tendance à discuter du sujet d'une manière plutôt abstraite. Je voudrais voir quelques bonnes implémentations de DDD dans le code, de préférence en C#.Existe-t-il des projets open source utilisant DDD (Domain Driven Design)?

Existe-t-il de bons exemples de projets pratiquant DDD dans le monde de l'open source?

Répondre

15

Eric Evans et une société de conseil suédoise ont publié un exemple d'application basé sur l'exemple d'expédition qu'Eric utilise tout au long du livre. C'est en Java, mais les concepts sont bien documentés sur la page du projet.

http://dddsample.sourceforge.net/

Cependant, sachez que DDD est plus sur le voyage que la destination. Comprenez que l'exemple de code que vous recherchez a pris plusieurs formes avant de devenir ce que vous voyez maintenant. Vous n'avez pas vu les modèles maladroits qui ont été utilisés au départ et vous manquez les mesures prises pour refactoriser le modèle en fonction des connaissances acquises en cours de route. Bien que les blocs de construction soient importants dans DDD, Eric croit qu'ils sont trop soulignés, alors prenez tous les échantillons avec un grain de sel.

+0

L'exemple a été porté sur C#. Voir les réponses de Lance Fisher pour le lien. –

+2

+1 @stefan est juste sur l'argent, ddd n'est pas sur les modèles de blocs de construction, ce n'est pas sur l'utilisation du cadre x sur le cadre y. Il est constamment question de ce modèle qui m'aide à résoudre les problèmes de base dans mon domaine. les modèles ne sont pas des représentations universelles de «vérité» ou de «réalité», ils existent pour résoudre un problème spécifique. obtenir ce droit et ne vous inquiétez pas du reste, c'est juste des détails. –

+0

Je crois que ce projet est mort aussi. C'est dommage car c'est celui que j'aime le plus. Très simple, droit, concis, bien qu'il comporte quelques violations du livre (comme référencer un objet de valeur dans un agrégat, à un autre objet de valeur dans un agrégat différent), c'est globalement un excellent guide. –

2

Je crains que http://www.codeplex.com/domaindrivendesign est bien mort, mais si quelqu'un est intéressé à contribuer, ne hésitez pas à me contacter. Dans l'ensemble, je recommande de ne pas trop compter sur des exemples de DDD, au mieux des exemples peuvent montrer les résultats de la modélisation de domaine et/ou une approche pour la mise en œuvre des modèles. Je recommande donc de lire le livre et de poser ensuite des questions au forum.

+0

bien, merci pour le lien du forum. – PositiveGuy

10

Je ne sais pas à quel point c'est complet, mais j'ai trouvé le NDDD Sample sur Google Code.

+0

Je crois que ce projet est mort aussi. C'est dommage car c'est celui que j'aime le plus. Très simple, droit, concis, bien qu'il comporte quelques violations du livre (comme référencer un objet de valeur dans un agrégat, à un autre objet de valeur dans un agrégat différent), c'est globalement un excellent guide. –

1

Je sais que ce n'est pas C#, mais c'est un méta-cadre java qui suit une approche axée sur le domaine: Je ne sais pas grand-chose à ce sujet, mais je suis prêt à l'étudier dans un avenir proche: Roma Framework

5

Je suis surpris personne n'a mentionné Macto, l'échantillon de DDD de Ayende. La chose la plus importante à propos de Macto est que le processus de réflexion avant le codage est présenté dans un series of posts. DDD ne concerne pas la mise en œuvre d'un modèle, mais la modélisation d'un domaine métier. Des décisions telles que «un concept est un objet agrégat racine/entité/valeur» sont beaucoup plus importantes que la façon dont un RA sera conservé.

Aussi je recommanderais les vidéos de Udi Dahan sur SOA et CQRS qui pourraient fournir un meilleur contexte sur lequel appliquer DDD.

+0

Macto est incomplet. Il n'a jamais fini. Il se vantait à ce sujet, après une série de blogs (critique très destructeur) sur NLayerApp de Microsoft Espagne ... mais à la fin de la journée, il est sorti court. Il a dit qu'il était trop occupé, ce dont je ne doute pas, le gars est vraiment bon dans ce qu'il fait, et son arrogance (une "sainteté") est également proportionnelle. –

Questions connexes