领域驱动设计DDD

Published on with 0 views and 0 comments

领域驱动设计 DDD

Domain-Driven Design

DDD 设计完成之后,才能划分微服务,不然无法确定每一个微服务里头都包含哪一些功能。

1.概括

战略设计
战术设计

2.战略设计之限界上下文

限界上下文是语义和语境上的边界。这意味着边界内的每个代表软件模型的组件都有着特定的含义并处理特定的事务。限界上下文中的这些组件有特定的上下文语境和语义理据。 当限界上下文被当作组织的关键战略举措进行开发时,即被称之为核心域。

限界上下文应该由领域专家来主导划分,而不是让开发人员来划分,大泥球 往往是开发人员无视业务专家的建议,一意孤行所导致的结果。领域专家的心智模型将成为团队通用语言的坚实基础。

限界上下文包括:输入适配器,例如用户界面;编排用例和管理事务的应用服务;领域模型;输出适配器,如持久化管理和消息发送器;

3.战略设计之子域

理想情况下,一个限界上下文对应一个子域,子域是整个业务领域的一部分。

子域类型

  1. 核心域
  2. 支撑子域(定制开发)
  3. 通用子域

4.战略设计之上下文映射

核心域必须与其他限界上下文进行集成。这种集成关系在 DDD 中称为上下文映射。

映射的种类

  1. 合作关系
  2. 共享内核
  3. 客户-供应商
  4. 跟随者
  5. 防腐层
  6. 开放主机服务(RESTFul HTTP)
  7. 已发布语言
  8. 各行其道

更可靠的三种上下文映射

  1. 基于 SOAP 的 RPC
  2. RESTFul HTTP
  3. 消息机制

5.战术设计之聚合

聚合由一个或多个实体组成,其中一个实体被称为聚合根,聚合的组成还能包括值对象。

每个聚合的根实体控制着所有聚集在其中的其他元素。

每个聚合都会形成保证事务一致性的边界。

聚合的四条基本规则

  • 在聚合边界内保证业务规则不变性。
  • 聚合要设计的小巧。
  • 只能通过标识符引用其他聚合。
  • 使用最终一致性更新其他聚合。

6.战术设计之运用领域事件

通过消息机制来实现领域事件,要保证事件的顺序性,同时要可以事件溯源。

7.加速和管理工具

事件风暴

事件风暴是一种快速的设计技术,让领域专家和开发人员都可以参与到这个快节奏的 学习过程中 它聚焦于业务和业务流程,而非名词概念和数据

运用 SWOT 分析法

建模 Spike 和建模债务

任务识别与工作量估算

限制建模时间


标题:领域驱动设计DDD
作者:cuijianzhe
地址:https://cjzshilong.cn/articles/2022/05/16/1652693849412.html