Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Domain driven design 什么是领域驱动设计?_Domain Driven Design - Fatal编程技术网

Domain driven design 什么是领域驱动设计?

Domain driven design 什么是领域驱动设计?,domain-driven-design,Domain Driven Design,有人能解释一下(用简洁的术语)什么是领域驱动设计吗?我经常看到这个词,但真的不明白它是什么或它看起来像什么。它与非领域驱动设计有何不同 另外,有人能解释什么是域对象吗?域与普通对象有何不同?编辑: 由于这似乎是谷歌的最佳结果,而我下面的答案并非如此,请参考这个更好的答案: 旧答案(不太完整:) 为了创建好的软件,您必须知道该软件是什么 这就是一切。您不能创建银行软件系统,除非您 必须充分了解银行业的内涵 了解银行业的领域 来源:Eric Evans的领域驱动设计 这本书很好地描述了DDD ,或

有人能解释一下(用简洁的术语)什么是领域驱动设计吗?我经常看到这个词,但真的不明白它是什么或它看起来像什么。它与非领域驱动设计有何不同

另外,有人能解释什么是域对象吗?域与普通对象有何不同?

编辑:

由于这似乎是谷歌的最佳结果,而我下面的答案并非如此,请参考这个更好的答案:

旧答案(不太完整:)

为了创建好的软件,您必须知道该软件是什么 这就是一切。您不能创建银行软件系统,除非您 必须充分了解银行业的内涵 了解银行业的领域

来源:Eric Evans的领域驱动设计

这本书很好地描述了DDD


,或。

这里是另一篇好文章,您可以在上面查看。如果你的申请比大学作业更重要。基本前提是围绕实体构建所有内容,并拥有强大的域模型。区分提供与基础架构相关的服务(如发送电子邮件、持久化数据)和实际执行核心业务需求的服务


希望这会有所帮助。

领域驱动设计是一种方法和过程处方,用于开发复杂系统,其重点是将问题领域内的活动、任务、事件和数据映射到解决方案领域的技术构件中

领域驱动设计的重点是理解问题领域,以便创建问题领域的抽象模型,然后在一组特定的技术中实现。领域驱动设计作为一种方法论,为该模型开发和技术开发如何产生一个满足使用它的人的需求的系统提供了指导,同时在面对问题领域的变化时也具有健壮性

领域驱动设计的过程方面涉及领域专家(了解问题领域的人员)和设计/架构专家(了解解决方案领域的人员)之间的协作。我们的想法是用共享的语言建立一个共享的模型,这样当来自这两个不同领域的人们以他们两种不同的视角讨论解决方案时,他们实际上是在讨论一个共享概念的共享知识库

需要特定系统的人员与设计和实施该系统的人员之间缺乏对共同问题领域的理解,这似乎是成功项目的一个核心障碍。领域驱动设计是解决这一障碍的一种方法

这不仅仅是拥有一个对象模型。重点实际上是共享通信和改进协作,以便发现问题领域内的实际需求,并创建适当的解决方案来满足这些需求

简要概述此评论:

DDD有助于发现顶级体系结构并告知 软件所需领域的力学和动力学 复制。具体来说,这意味着做得好的DDD分析 最大限度地减少领域专家和软件之间的误解 它减少了后续昂贵请求的数量 为了改变。通过在更小的上下文中拆分域复杂性, DDD避免了强制项目架构师设计膨胀的对象 模型,这是在工作中浪费大量时间的地方 实施细节——部分原因是要 处理的问题往往超出了会议室白板的大小

另请参阅本文,其中提供了一个简短的示例。本文提供以下领域驱动设计的缩略图描述

领域驱动设计提倡基于现实的建模 与我们的用例相关的业务。因为它现在越来越老了 炒作水平下降,我们中的许多人忘记了DDD方法真的 有助于理解手头的问题并设计软件 对解决方案的共同理解。在构建应用程序时, DDD将问题分为域和子域。它描述了 作为有界上下文的独立步骤/问题区域,强调 共同语言来谈论这些问题,并添加了许多技术 概念,如实体、值对象和聚合根规则 支持实施

Martin Fowler已经写了许多文章,其中提到了领域驱动设计作为一种方法。例如,本文概述了域驱动开发中的有界上下文概念

在那些年轻的日子里,我们被建议建立一个统一的模型 整个业务,但DDD认识到我们已经了解到“总体 大型系统的领域模型的统一将不会受到影响 可行或成本效益高”。因此,DDD划分了一个大的 将系统转换为有界上下文,每个上下文都可以有一个统一的模型- 本质上是构造多个非线性模型的一种方法


只有首先了解以下内容,您才能理解领域驱动设计:

什么是域?

为其构建系统的字段。机场管理,保险销售,咖啡馆,轨道飞行,随便你说

一个应用程序跨越几个不同的域并不罕见。例如,在线零售系统可能在以下领域工作:配送(根据商品和目的地选择适当的配送方式)、定价(包括促销和用户特定的定价,例如,根据地点)和推荐(根据购买历史计算相关产品)

什么是模型?

“一个有用的近似值