什么是领域驱动devise?

有人可以解释(简洁地说)究竟是域驱动devise? 我看到这个词很多,但是真的不明白它是什么或者它是什么样的。 它与非域驱动devise有何不同?

另外,有人可以解释一个域对象是什么? 域与普通对象有什么不同?

编辑:

因为这似乎是在谷歌的最高结果,我的答案不是,请参考这个更好的答案:

https://stackoverflow.com/a/1222488/1240557

老解答(不完全:))

为了创build好的软件,你必须知道这个软件是什么。 除非您对银行业务的理解有充分的理解,否则您无法创build银行业务软件系统,您必须了解银行业务领域。

来自:Eric Evans的领域驱动devise。

这本书在描述DDD方面做得相当不错。

注册下载本书 的摘要 ,或直接下载摘要 。

领域驱动devise是一个复杂系统开发的方法和过程处方,其重点是将问题域内的活动,任务,事件和数据映射到解决scheme领域的技术工件。

领域驱动devise的重点是理解问题领域,以创build问题领域的抽象模型,然后可以在一组特定的技术中实现。 领域驱动devise作为一种方法论提供了指导,说明这种模型开发和技术开发如何能够使系统满足使用它的人的需求,同时在面对问题领域的变化时也是可靠的。

领域驱动devise的过程方面涉及领域专家,知道问题领域的人员,以及知道解决scheme领域的devise/架构专家的人员之间的协作。 这个想法是build立一个共享语言的共享模型,以便来自这两个不同领域的人以两种不同的观点讨论解决scheme,他们实际上正在讨论共享的概念共享的知识库。

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

它不仅仅是一个对象模型。 重点是实现共享通信和改善协作,以便能够发现问题领域内的实际需求,并创build适当的解决scheme来满足这些需求。

领域驱动的devise:好的和有挑战性的提供了这个评论的简要概述:

DDD有助于发现顶层体系结构,并告知软件需要复制的域的机制和dynamic。 具体而言,这意味着一个干得好的DDD分析最大限度地减less了领域专家和软件架构师之间的误解,并且减less了后续的变更请求数量。 通过在较小的上下文中分割域复杂性,DDD避免了迫使项目架构师devise一个臃肿的对象模型,这是在制定实现细节时浪费了大量时间 – 部分原因是处理的实体数量往往超出会议室白板的大小。

另请参阅这篇文章域驱动devise的服务架构 ,它提供了一个简短的例子。 本文提供以下缩略图描述的域驱动devise。

领域驱动devise主张根据与我们的用例相关的业务现实进行build模。 随着现在越来越老,炒作水平越来越低,我们中的许多人忘记了DDD方法确实有助于理解手头的问题,并devise软件以达到对解决scheme的共同理解。 在构build应用程序时,DDD会将问题作为域和子域进行讨论。 它将问题的独立步骤/区域描述为有界的上下文,强调使用通用的语言来讨论这些问题,并增加许多技术概念,如实体,价值对象和聚合根规则来支持实现。

Martin Fowler撰写了许多文章,其中提到了领域驱动devise作为方法论。 例如,本文BoundedContext概述了域驱动开发中有界的上下文概念。

在那些年轻的时候,我们被build议build立一个统一的整个业务模型,但是DDD认识到我们已经了解到“大系统领域模型的完全统一将是不可行的或成本效益的” 1 。 所以DDD把一个大的系统划分成有界的上下文,每个上下文都可以有一个统一的模型 – 实质上是一个构造MultipleCanonicalModels的方法。

这是另一篇很好的文章,你可以检查域驱动devise 。 如果你的申请比大学作业严重。 基本的前提是围绕您的实体构build一切,并拥有强大的领域模型。 区分提供基础设施相关事物的服务(如发送电子邮件,保存数据)以及实际执行您的核心业务需求的服务。

希望有所帮助。

只能首先理解以下内容来了解​​领域驱动的devise:

什么是域名?

系统构build的领域。 机场pipe理,保险销售,咖啡店,轨道飞行,你的名字。

跨越多个不同域的应用程序并不罕见。 例如,在线零售系统可能在运输领域工作(根据物品和目的地select适当的交付方式),定价(包括促销和按地点定制的用户定价)以及推荐(计算相关产品按购买logging)。

什么是模型?

“对于手头的问题有一个有用的近似”。 – Gerry Sussman

员工类不是真正的员工。 它塑造了一个真正的员工。 我们知道这个模型并没有包含真正的员工的一切,这不是重点。 这只是为了捕捉我们感兴趣的当前上下文。

不同的领域可能有兴趣以不同的方式来模拟相同的事情。 例如,薪资部门和人力资源部门可以用不同的方式对员工进行build模。

什么是领域模型?

一个域的模型。

什么是域驱动devise(DDD)?

这是一个开发的方法,深深的价值领域模型,并连接到实施。 DDD是由埃里克·埃文斯(Eric Evans)创造并最初开发的。

从这里剔除