50

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

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

4

7 回答 7

46

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

于 2008-09-19T10:42:01.683 回答
23

InfoQ 有一本免费的电子书:

领域驱动设计快速

这是一本很好的读物,有很多例子。

于 2008-09-19T10:56:38.543 回答
9

在发现“领域”的过程中,您形成了一种通用语言,开发人员和项目中的所有其他利益相关者都可以理解。

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

于 2008-09-19T10:47:51.453 回答
4

DDD 的一个重要部分是所谓的泛在语言;即说与业务专家相同的语言。并使您的代码/架构能够反映这种语言以避免阻抗问题。

于 2008-09-19T10:44:40.633 回答
4

尝试理解你正在编写的软件是关于什么的,并在模型中反映这种理解。

于 2008-09-19T10:55:16.973 回答
2

域驱动设计是关于在域模型中管理应用程序的复杂性,它最容易被提炼出来。

很难用几句话来描述,但我会推荐InfoQ的书作为一个很好的介绍。我还听说很多人用 Evans 的 DDD 书建立了一个读书俱乐部,这对理解它有很大帮助。

于 2008-09-23T20:40:02.110 回答
2

对我来说是 OOD/OOP 的下一个级别,其中封装完全是关于用户描述和理解的问题空间,而不是技术实现。

于 2008-10-18T01:24:32.753 回答