我正在学习领域驱动设计,但是有些实际问题令我感到困惑,我认为看到一些好的样本可能会被清除.
有没有人知道一些很好的工作代码示例,它们可以很好地建模基本的DDD概念?
特别感兴趣
说明性域模型
库
使用域/应用程序服务
价值对象
聚合根
Michael Hart.. 193
DDD样本的难点在于它们通常非常特定于域,并且所得系统的技术实现并不总是显示在域建模中所做的设计决策和转换,这实际上是DDD的核心.DDD更多地是关于流程而不是代码.(正如一些人所说,最好的DDD样本就是书本身!)
也就是说,一个评论良好的示例应用程序至少应该揭示其中的一些决策,并为您提供一些方向,使您的域模型与用于实现它的技术模式相匹配.
你没有指定你正在使用哪种语言,但我会用几种不同的语言给你一些:
DDDSample - 一个Java样本,反映了Eric Evans在他的书中谈到的例子.这已得到很好的评论,并显示了使用单独的有界上下文(即表示层)解决各种问题的许多不同方法.它正在积极开展工作,因此请定期检查更新.
dddps - Tim McCarthy的样本C#app,用于他的书,.NET域驱动设计与C#
S#arp架构 - 一个实用的C#示例,而不是"纯粹"的DDD方法,可能是因为它缺乏真正的域问题,但仍然是一个很好的干净方法.
对于所有这些示例应用程序,最好从SVN中查看最新的主干版本,以及真正了解思维和技术模式,因为它们应该定期更新.
DDD样本的难点在于它们通常非常特定于域,并且所得系统的技术实现并不总是显示在域建模中所做的设计决策和转换,这实际上是DDD的核心.DDD更多地是关于流程而不是代码.(正如一些人所说,最好的DDD样本就是书本身!)
也就是说,一个评论良好的示例应用程序至少应该揭示其中的一些决策,并为您提供一些方向,使您的域模型与用于实现它的技术模式相匹配.
你没有指定你正在使用哪种语言,但我会用几种不同的语言给你一些:
DDDSample - 一个Java样本,反映了Eric Evans在他的书中谈到的例子.这已得到很好的评论,并显示了使用单独的有界上下文(即表示层)解决各种问题的许多不同方法.它正在积极开展工作,因此请定期检查更新.
dddps - Tim McCarthy的样本C#app,用于他的书,.NET域驱动设计与C#
S#arp架构 - 一个实用的C#示例,而不是"纯粹"的DDD方法,可能是因为它缺乏真正的域问题,但仍然是一个很好的干净方法.
对于所有这些示例应用程序,最好从SVN中查看最新的主干版本,以及真正了解思维和技术模式,因为它们应该定期更新.
不是源项目,但我偶然发现了Parleys.com,它有一些很好的视频,可以很好地覆盖DDD(需要闪存):
使用丰富的域模型改进应用程序设计
获得适合域驱动设计的价值对象
我发现这些比目前可用的几乎不存在的DDD示例更有帮助.
来自Eric Evans的Domain-Driven Design Book的.NET DDD示例可以在这里找到:http://dddsamplenet.codeplex.com
干杯,
雅各布
查看Project Silk.它不仅展示了DDD,还展示了其他前沿模式.这是任何Web开发人员的优秀资源.可以在MSDN上找到该项目的完整概述.
这是一个基于域驱动设计的好例子,并解释了为什么拥有单独的域层很重要.
微软西班牙 - DDD N层架构
ddd-cqrs-sample也是一个很好的资源.用Java,Spring和JPA编写.
Code Camp Server,Jeffrey Palermo的《ASP.NET MVC in Action》一书的示例代码。在本书着重于表示层的同时,使用DDD对应用程序进行建模。