什么是域驱动设计?

时间:2008-09-19 10:33:35

标签: domain-driven-design

所以我从团队中的一位开发人员那里得到了这个问题:什么是域驱动设计?我当然可以指出埃文斯的这本书,但这实际上是一个答案吗?

您如何用几句话向团队中的初级软件工程师解释DDD?

7 个答案:

答案 0 :(得分:44)

我想说这种做法促使你把精力集中在'问题空间'而不是'解决方案空间'上。通过学习并真正了解和理解领域来推动紧急解决方案(设计)。其中一种做法(取自XP)将是编写问题域中出现的故事。通过这些,您可以确定您的设计的用例和对象。它们“出现”并告诉您解决方案需要什么,以及它们如何相互交互。

答案 1 :(得分:22)

InfoQ有一本免费电子书:

Domain Driven Design Quickly

这是一个很好的阅读,有很多例子。

答案 2 :(得分:9)

在发现“域”的过程中,您构成了一种共同语言,即开发人员和项目中所有其他利益相关者都能理解。

域模型及其“术语”在成品的源代码中是非常明显的。这至少是我的经历

答案 3 :(得分:4)

DDD的一个重要部分是所谓的普遍存在的语言;即说与商业专家相同的语言。并制作您的代码/架构,以便它反映这种语言,以避免阻抗问题。

答案 4 :(得分:4)

试图了解您正在编写的软件是什么,并在模型中反映出这种理解。

答案 5 :(得分:2)

Domain Driven Design旨在管理域模型中应用程序的复杂性,以便最容易地将其提取出来。

用几句话来描述是非常困难的,但我会推荐InfoQ书作为一个很好的介绍。我也听说很多人用Evans的DDD书做了一个读书俱乐部,这本书帮助了解了很多。

答案 6 :(得分:1)

对我而言,OOD / OOP的下一级是封装是关于问题空间的,如用户所描述和理解的,而不是技术实现。