我正在学习领域驱动设计,但是有一些实际问题让我困惑,我认为看到一些好的例子可能会解决。

有没有人知道一些能够很好地对基本DDD概念建模的代码样本?

尤其对

一个说明性的领域模型 存储库 域/应用服务的使用 值对象 聚合根


DDD样本的困难在于它们通常是领域特定的,结果系统的技术实现并不总是显示在领域建模中所做的设计决策和转换,而这正是DDD的核心。DDD更多的是关于过程而不是代码。(就像一些人说的,最好的DDD样本是书本身!)

也就是说,一个评论良好的示例应用程序至少应该揭示其中的一些决策,并为您提供一些方向,使您的领域模型与用于实现它的技术模式相匹配。

你没有指定你使用的是哪种语言,但我会用几种不同的语言给你一些:

DDDSample -一个Java示例,它反映了Eric Evans在他的书中谈到的示例。这篇文章评论得很好,并展示了许多不同的方法,可以用单独的有界上下文(即表示层)解决各种问题。它正在积极地工作,所以定期检查它的更新。

dddps——Tim McCarthy为他的书《。net领域驱动的c#设计》编写的c#应用程序示例

s# arp体系结构——一个实用的c#示例,不是“纯粹的”DDD方法,可能是因为它缺乏真正的域问题,但仍然是一个很好的干净的方法。

对于所有这些示例应用程序,最好检查一下SVN/其他设备的最新主干版本,以真正了解其思想和技术模式,因为它们应该定期更新。


不是每个项目的来源,但我偶然发现Parleys.com有一些很好的视频,涵盖了DDD(需要flash):

用富域模型改进应用程序设计 为领域驱动设计获取正确的值对象(不可用)

我发现这些比目前几乎不存在的DDD示例更有帮助。


代码营服务器,Jeffrey Palermo为ASP一书编写的示例代码。NET MVC在行动。虽然本书关注的是表示层,但应用程序是使用DDD建模的。


.NET DDD样本来自Eric Evans的领域驱动设计书,可以在这里找到:http://dddsamplenet.codeplex.com

欢呼,

Jakub G


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


这是一个基于领域驱动设计的好例子,它解释了为什么拥有独立的领域层很重要。 微软西班牙- dddn层架构


Ddd-cqrs-sample也是一个很好的资源。用Java、Spring和JPA编写。

更新链接: https://github.com/BottegaIT/ddd-leaven-v2