我正在努力理解DDD背后的概念,但我发现通过阅读书籍很难理解,因为他们倾向于以相当抽象的方式讨论这个主题.我希望在代码中看到一些优秀的DDD实现,最好是在C#中.
在开源世界中有没有很好的DDD项目实例?
Eric Evans和一家瑞典咨询公司已经发布了一个示例应用程序,该应用程序基于Eric在整本书中使用的运输示例.它是用Java编写的,但是这些概念在项目页面上有很好的记录.
http://dddsample.sourceforge.net/
但是,请注意DDD更多的是关于旅程而不是目的地.了解您正在查看的示例代码在它成为您现在看到的之前采用了多种形式.您没有看到最初使用的笨拙模型,并且您错过了根据沿途获得的洞察力重构模型所采取的步骤.虽然构建模块在DDD中非常重要,但Eric相信它们过于强调,因此请将所有样品都加入一粒盐.
我不确定它有多完整,但我在Google Code上找到了NDDD示例.
我很惊讶没有人提到Macto,Ayende的DDD样本.关于Macto最重要的事情是在实际编码之前的洞思考过程是在一系列帖子中呈现的.DDD不是关于实现模型,而是关于建模业务领域.像"某些概念是聚合根/实体/价值对象"这样的决策远比AR如何持久化更重要.
另外,我会推荐Udi Dahan关于SOA和CQRS的视频,这些视频可能会提供更好的应用DDD的背景.