DDD概念

作者: Wu杰语 | 来源:发表于2021-03-17 15:03 被阅读0次

DDD是架构设计的一种方法论,在2004年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》,DDD一直不温不火, 随着微服务的兴起,DDD找到用武之地。

DDD 核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。

战略设计和战术设计

微服务时代我也学习过DDD,但是主要关注在战术设计上,即聚合根、实体、值对象、领域对象等,但是学习完成以后感觉比较难用,纠结与概念,不好用,不久就丢弃了。

微服务后,DDD的理论明确提到战略设计和战术设计,这一切就迎刃而解了。

  • 战略设计,从业务角度出发,建立业务领域模型,划分领域边界,建立通用语言上下文。
  • 战术设计,从技术角度出发,侧重于领域模型的实现,完成软件的开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的设计和实现。

事件风暴

  • 确定领域模型一般使用事件风暴,首先根据事件风暴梳理业务过程中的用户操作、事件以及外部领域。
  • 根据实体的业务领域关系,将业务领域相关的实体组合成聚合,同时确定聚合根,聚合对象、实体对象。
  • 根据业务以及语义边界因素,将一个或者多个聚合划分在一个界限上下文,形成领域模型。

DDD和微服务

DDD是一种架构设计方法,而微服务是架构设计风格,两者从本质上都是为了追求高响应力,而从业务角度去分离应用系统建设复杂度。

DDD主要关注从业务领域视角划分领域边界,构建通用语言进行高效沟通,通过业务抽象,建立领域模型,维持业务和代码模型的一致性。

微服务关注服务治理、服务通信、容错、Devops,让开发人员将注意力集中在业务上。

小结

这是DDD的一些基本概念,特别是战略设计和战术设计要理解清楚,不要把精力都放在战术设计上,虽然战术设计是和代码一一对应。

相关文章

  • 第一节 DDD相关概念

    什么是DDD DDD相关概念 1.1什么是DDD 领域驱动设计,即Domain Driven Design(DDD...

  • DDD概念

    DDD是架构设计的一种方法论,在2004年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》,DDD一直...

  • DDD概念

  • DDD概念

    问题空间定义:真实世界利用核心子领域、通用子领域、支撑子领域来分解问题空间问题空间:价值需求+业务需求(业务功能、...

  • ddd

    DDD理解:基本概念:DDD战略思想:领域、子领域、限界上下文、通用语言、下文映射图、架构风格DDD战术实现:聚合...

  • BOSS 应用DDD的 一些基础概念

    本文是以最简单的方式去叙述DDD的概念。DDD 与 微服务 是紧密相关的, 所以必须是先了解 DDD 的方式才比较...

  • DDD概念篇

    从18年团队开始转型微服务架构,会想起来,总结2个字,就是“生拆”。只要是能够独立的业务模块或是可复用的组件,都拆...

  • DDD的概念

    实体 有唯⼀标志的核⼼领域对象,且这个标志在整个软件⽣命周期中都不会发⽣变化。这个概念和我们平时软件模型中和数据库...

  • DDD 领域驱动设计

    DDD切入点1 - 理解概念 DDD的全称为Domain-driven Design,即领域驱动设计。下面我从领域...

  • 【吐血推荐】领域驱动设计学习输出

    一、Hello DDD 刚开始接触学习「DDD - 领域驱动」的时候,我被各种新颖的概念所吸引:「领域」、「领域驱...

网友评论

      本文标题:DDD概念

      本文链接:https://www.haomeiwen.com/subject/ubidcltx.html