什么是 DDD ?
领域驱动设计(Domain Driven Design,DDD)它提供的是一种开展业务建模和软件设计的方法论。
随着微服务架构火热,DDD 成为了构建微服务系统的主流设计思想和模式。
DDD 非常强调开发人员与业务领域专家一起进行高效的协作。
针对业务领域,DDD 通过对业务架构和技术架构进行整合,提出了一组核心概念,包括:
- 用于描述业务的通用语言(Ubiquitous Language)
- 用于对业务进行拆分的限界上下文(Boundary Context)
- 用于设计业务对象的领域模型对象(Domain Model Object)
- 用于实现业务规则的领域服务(Domain Service)
- 用于管理业务状态的领域事件(Domain Event)
- 用于保存业务数据的资源库(Repository)
- 用于实现业务交互的应用服务(Application Service)
DDD 案例设计思路
关注业务抽象而不重复业务实现
- 基于核心逻辑抽象业务:关注系统的主流程,而选择性忽略子流程。
- 基于复杂度抽象业务:关注具有一定复杂度的业务功能,而不要过多夹杂简单而又重复的功能。
- 基于完整性抽象业务:关注业务体系的覆盖范围,确保具有一定广度,不要陷入过多的细节。
// TODO 待补充