4

我有一份 Head First Design Patterns 的副本,我通读了其中的一些模式。现在领域驱动设计是传统设计模式的替代品还是建立在它之上?如果是后者,在我尝试学习领域驱动设计之前,我是否需要成为设计模式专家?推荐的 DDD 路径是什么?

4

3 回答 3

6

我读了蓝皮书 [Evans],红皮书 [Vernon],偶尔会在 StackOverflow 上看到这个标签。

Evans 的书在某些方面非常高水平,而且涵盖的不仅仅是代码。Vernon 的书一次涵盖了 DDD 的构建块,并以虚构软件产品中的示例为例:

领域驱动设计:解决软件核心的复杂性

实施领域驱动设计

还有视频:

Eric Evans:从这本书开始我对 DDD 的了解

至于设计模式,DDD 资料指的是很多设计模式。一些现有的设计模式与 DDD 配合得很好。你可以在遇到它们时拿起它们,你不一定需要提前知道它们。学习设计模式时要避免的一件事是,不要试图强制使用它们,它们有其用途,但是您会看到许多开发人员试图在不需要的地方强制使用新学的设计模式。

于 2013-07-16T09:12:33.290 回答
3

去做就对了。不要让任何先入为主的条件阻止你开始练习它。

于 2013-07-16T04:22:12.767 回答
2

这是一个有点晚的答案,但我想说的是,模式不是一些一成不变的、一成不变的终极解决方案。它们是通用问题的通用方法,如果您愿意,可以作为指南。

在 DDD 中,您为特定问题提供特定的解决方案。如果您能够识别实现中的模式,您将获得更深入和更有条理的理解。如果您可以看到需要某些模式的问题,您将有可能的方法来解决它。但请注意,仅通过模式来看待问题可能会导致次优解决方案。

了解和理解模式将帮助您以更有效的方式将有关实现细节的知识传达给其他开发人员。就像“这是工作单元”而不是“这个对象包含对我们在此事务中操作的对象的引用并跟踪它们的状态,以便我们可以一次提交所有更改”。

除此之外,更重要的是您了解并遵循 SOLID 和 DDD 原则来构建成功的领域模型。

于 2015-02-05T03:07:37.870 回答