DDD领域驱动设计
2022-02-25 18:46:48 1 举报
AI智能生成
DDD领域驱动设计
作者其他创作
大纲/内容
通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。
从技术思维主观设计系统 转变为客观描述业务形态
DDD是什么
用例分析
场景分析
用户旅程分析
事件风暴
实现方式
战略设计
战术设计
如何实现DDD思想
分离技术实现的复杂度
围绕业务概念构造领域模型来控制业务的复杂性
为什要用DDD
拆分
模块化
化整为零
面对复杂问题如何思考
DDD是面向业务,对业务领域的划分和整合,是逻辑层面
微服务是面向物理落地,是对应用的物理形态进行拆分和整合
从面向层面来看
DDD的战略设计输出是微服务的输入
领域模型
划分的区域
DDD的战略设计输出举例
从软件过程的过程来看
DDD和微服务有什么区别
领域是用来限定业务边界和范围的
领域
同一个领域下继续根据业务进行细分,称为子域
子域
域
在事件风暴中,团队中达成共识能够简单清晰的描述业务含义和规则的语言
通用语言
限定通用语言的使用范围
范围中只有聚合和实体
限界上下文(Bound Context)
具有唯一标识符,并且标识符随着生命周期的改变不会变化
基于多个价格配置计算出来的折扣实体
0个
不解释
1对1
权限实体(用户和角色持久化对象)
1对多
客户实体和账户实体存到同一个表中
多对一
一个实体可以是0个、1个、多个持久化对象
实体和数据库持久化对象的关系
PO
DO
DTO
实体在不同层有不同的表现关系
实体
若干个属性的集合
值对象
领域模型中最底层的边界
由业务和逻辑紧密关联的实体和值对象组合而成
聚合是一个逻辑概念
在一个聚合中是由聚合根来管理其所有实体的生命周期
聚合的构建过程
聚合
聚合根本质上是一个实体
一个聚合内只有一个聚合根
聚合根和聚合根之间通过唯一id进行跨聚合联系
聚合根
领域事件
领域服务是聚合内部的。它主要实现多个实体组合出来的能力。单个实体的功能在实体方法里实现
领域服务
核心名词
数据对象
接口层
领域服务的编排
权限控制
安全校验
领域事件发布
作用
应用层
DO(Domain Object)
核心业务的实现
领域层
PO(Persistent Object)
接口实现分离
利用仓储设计模式
数据库解耦
基础层
四层分层
层级之间可以互相依赖
松耦合分层
每层只能与位于其下方的层发生耦合
严格分层(推荐使用)
种类
传统MVC和DDD四层对应关系
DDD分层
DDD分层模型
六边形架构模型
整洁架构模型(洋葱模型)
三种架构的区别
微服务架构模型
领域驱动设计
0 条评论
回复 删除
下一页