在哪里可以找到DDD的良好示例?[关闭]


390

我正在学习域驱动设计,但是有一些实际问题使我感到困惑,我认为看到一些好的样本可能会解决这些问题。

有谁知道一些可以很好地完成基本DDD概念建模的良好工作代码示例?

特别感兴趣

  • 说明性领域模型
  • 储存库
  • 域/应用程序服务的使用
  • 价值对象
  • 汇总根

42
IHMO这样的辩论将有很大帮助。有时不仅仅是一个简单的问题。例如,我们可以在一个问题中对此进行更改:“我在哪里可以找到DDD的一些好例子?” 并与问答格式配合使用。
Gizzmo 2014年

1
我发现沃恩·弗农(Vaughn Vernon)这本书中的“敏捷管理项目”示例非常有启发性。它说明了您枚举的构建块的实际实现以及处理不同的有界上下文,您可以在此处找到代码:github.com/VaughnVernon/IDDD_Samples
Mehdi。

1
我会推荐这个例子:github.com/vkhorikov/DddInAction
Vladimir

1

在这里找到了
Clark Kent

Answers:


199

DDD示例的困难在于它们通常是特定于领域的,并且最终系统的技术实现并不总是显示在建模领域时所做的设计决策和转换,而这实际上是DDD的核心。DDD与其说是代码,不如说是关于流程的更多内容。(有人说,最好的DDD示例是本书本身!)

就是说,一个经过良好评价的示例应用程序至少应揭示其中的一些决策,并为您将领域模型与实现该模型的技术模式进行匹配提供指导。

您尚未指定使用哪种语言,但我将以几种不同的语言为您提供一些信息:

DDDSample-一个Java示例,反映了Eric Evans在书中谈到的示例。对此进行了很好的评论,并显示了使用不同的受限上下文(即表示层)解决各种问题的多种不同方法。它正在积极进行中,因此请定期检查其更新。

dddps-蒂姆·麦卡锡(Tim McCarthy)的示例C#应用程序,他的书《使用C#进行.NET域驱动的设计》

S#arp体系结构 -一个实用的C#示例,可能由于缺乏实际领域问题而不是“纯粹”的DDD方法,但仍然是一种不错的简洁方法。

使用所有这些示例应用程序,最好检查一下SVN /任何版本的最新主干版本,以真正了解其思想和技术模式,因为应该定期进行更新。


2
如原始问题注释中提到的@Mehdi,您应该添加来自Vaughn Vernon的精彩示例。这是迄今为止我所见过的最好的DDD模式实现:github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy

我知道这很旧,但是示例dddps似乎完全贫乏,实际上与OOP相反。没有任何域对象具有任何行为,并且服务层类基本上是对存储库的1:1委派。我不确定这是否应该视为DDD的“好”示例?我仍在学习自己,但是S#arp Architecture中的样本对于那些学习DDD的人来说似乎是一个更好的例子,因为它同时包含状态和行为,这是一个很好的OOP设计。
David Anderson

现在,您应该添加实现域驱动设计(IDDD
Sylvain Lecoy,



11

查看Project Silk。它不仅展示了DDD,而且展示了其他前沿模式。对于任何Web开发人员来说,这都是极好的资源。可以在MSDN上找到该项目的完整概述。


源代码不再可用:(
Dherik '18年



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.