我在哪里可以找到一些 DDD 的好例子? [关闭]
Posted
技术标签:
【中文标题】我在哪里可以找到一些 DDD 的好例子? [关闭]【英文标题】:Where do I find some good examples for DDD? [closed] 【发布时间】:2010-10-07 02:37:51 【问题描述】:我正在学习领域驱动设计,但是有一些让我感到困惑的实际问题,我认为看到一些好的示例可能会弄清楚。
有谁知道一些可以很好地为基本 DDD 概念建模的工作代码示例?
特别感兴趣
说明性领域模型 存储库 使用域/应用程序服务 值对象 聚合根【问题讨论】:
IHMO 这样的辩论会有很大帮助。有时不仅仅是一个简单的问题。例如。我们可以在一个问题中改变这一点:“我在哪里可以找到一些 DDD 的好例子?”它适用于问答格式。 我发现 Vaughn Vernon 书中的“敏捷管理项目”示例非常有启发性。它说明了您枚举的构建块的实际实现,以及处理不同的有界上下文,您可以在此处找到代码:github.com/VaughnVernon/IDDD_Samples 我会推荐这个例子:github.com/vkhorikov/DddInAction 你可以看这里:dzone.com/storage/assets/… 这里有一个:github.com/appie2go/steal-this-code 【参考方案1】:DDD 示例的困难在于它们通常是非常特定于领域的,并且最终系统的技术实现并不总是显示在对领域建模时做出的设计决策和转换,而这实际上是滴滴涕。 DDD 更多的是关于过程而不是代码。 (有人说,最好的 DDD 样本就是书本身!)
也就是说,一个注释良好的示例应用程序至少应该揭示其中一些决定,并在将您的域模型与用于实现它的技术模式相匹配方面为您提供一些指导。
您尚未指定您使用的是哪种语言,但我会用几种不同的语言为您提供一些:
DDDSample - 反映 Eric Evans 在his book 中谈到的示例的 Java 示例。这得到了很好的评论,并展示了许多不同的方法来解决使用单独的有界上下文(即表示层)的各种问题。它正在积极开发中,因此请定期检查以获取更新。
dddps - Tim McCarthy 的示例 C# 应用程序,用于他的书,.NET Domain-Driven Design with C#
S#arp Architecture - 一个实用的 C# 示例,不像“纯粹”的 DDD 方法可能是因为它缺乏真正的域问题,但仍然是一个不错的干净方法。
对于所有这些示例应用程序,最好查看 SVN 的最新主干版本/任何东西,以真正了解思维和技术模式,因为它们应该定期更新。
【讨论】:
正如在原始问题评论中提到的@Mehdi,您应该添加来自 Vaughn Vernon 的精彩示例。这是迄今为止我见过的最好的 DDD 模式实现:github.com/VaughnVernon/IDDD_Samples 我知道这已经过时了,但来自dddps
的示例似乎完全缺乏活力,实际上与 OOP 背道而驰。没有任何域对象有任何行为,服务层类基本上是对存储库的 1:1 委托。我不确定这是否应该被视为 DDD 的“好”示例?我自己还在学习,但是 S#arp Architecture 中的示例对于那些学习 DDD 的人来说似乎是一个更好的例子,因为它包含状态和行为,这是很好的 OOP 设计。
您现在应该添加实施领域驱动设计 (IDDD) 的作者 Vaugnh Vernon 的优秀示例:github.com/VaughnVernon/IDDD_Samples
有 c++/c 或 golang 用户的项目吗?【参考方案2】:
不是每个说的源项目,但我偶然发现了 Parleys.com,其中有一些很好的视频,很好地涵盖了 DDD(需要 Flash):
Improving Application Design with a Rich Domain Model 为领域驱动设计获取正确的值对象(不可用)我发现这些比目前可用的几乎不存在的 DDD 示例更有帮助。
【讨论】:
链接失效【参考方案3】:Code Camp Server, Jeffrey Palermo's 本书的示例代码ASP.NET MVC in Action。虽然本书侧重于表示层,但应用程序是使用 DDD 建模的。
【讨论】:
【参考方案4】:Eric Evans 的领域驱动设计书中的 .NET DDD 示例可在此处找到:http://dddsamplenet.codeplex.com
干杯,
贾库布 G
【讨论】:
很遗憾链接已损坏【参考方案5】:查看Project Silk。它不仅展示了 DDD,还展示了其他前沿模式。对于任何 Web 开发人员来说,这都是一个极好的资源。可以在MSDN 上找到该项目的完整概述。
【讨论】:
源代码不再可用:(【参考方案6】:这是一个基于领域驱动设计的好例子,并解释了为什么拥有单独的领域层很重要。Microsoft spain - DDD N Layer Architecture
【讨论】:
我不能对此投反对票,但请访问 Ayende 的博客,看看他为什么认为这不是一个好例子。 ayende.com/blog/19457/… 您提供的链接不起作用,消息错误:'Project 'microsoftnlayerapp' was not found'【参考方案7】:ddd-cqrs-sample 也是一个很好的资源。用 Java、Spring 和 JPA 编写。
更新链接: https://github.com/BottegaIT/ddd-leaven-v2
【讨论】:
以上是关于我在哪里可以找到一些 DDD 的好例子? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章