前言:`
前不久,在工作中使用DDD(领域驱动设计
)完成对系统架构和功能的重构,前期参考了很多DDD文章讨论了战略设计划分好模型和领域,然后使用战术设计落实整个项目的重构,重构期间学到了很多DDD的思想,这几天有空整理了一下笔记:
DDD是什么?
DDD(英文名:Domain-Driven Design
)领域驱动设计,是一种架构设计方法,DDD主要关注业务中的领域划分领域边界,建立好的领域模型,通过抽象,持续调整架构和优化代码。
CQS规范是什么?
应用层入参的时候使用C(command)、Q(query)、E(Event)作参数接收,返回则用DTO
1.Command作为入参:
适用于对数据进行修改或删除操作,类似POST请求表单提交
2.Query作为入参:
顾名思义,适用于进行数据查询操作,类似GET查询列表数据
3.Event作为入参:
适用于事件回调的场景下使用,例如消息中间件的组内通信,下单推送消息触发事件Event对支付成功之后加积分等操作处理
领域驱动规范
DP是什么?
DP全称叫Domain Primitive
,DDD中常常被用来叫PO,具有自己特征的PO,可以拥有行为,可以参考链接:殷浩详解DDD系列 第一讲 - Domain Primitive
DDD应用架构
Repository是什么?
Repository在DDD中常常用来做仓储层,用于service层调用dao层之间加多一个中间层,让开发者更好的关注于写业务,业务层service通过repository层间接访问dao层,减少代码对数据库的“固化”(解耦)
殷浩详解DDD系列 第三讲 - Repository模式
学习分享:
其他感兴趣的同学可以参考一下: