DDD落地分层架构

DDD战术设计要素

DDD的战术设计6个要素:值对象、实体、聚合、领域服务、仓储、工厂 每个要素的描述链接: 值对象:值对象 实体:实体 聚合:聚合 领域服务:领域服务 仓储:仓储 工厂:工厂

分层架构

分层架构一般是:UI层、应用层、领域层、基础设施层 UI层,可以理解为接口层 应用层,承接用户业务需求,串联领域功能特性 领域层,包含所有的领域对象、领域逻辑、领域流程 基础设施层,业务领域之外,给业务完成需要的支撑能力 这四层的关系是,UI层面向外部用户呈现、APP层面向用户服务、领域层则是业务底层逻辑以及这些业务逻辑实现的功能、基础设施是为领域层提供支撑。 依赖关系是:

  • UI层依赖APP层
  • APP层依赖领域层
  • 基础设施通过实现领域层的接口,反转依赖,依赖领域层
  • 领域层不依赖任何外部逻辑

DDD战术落地前的准备

在进行战术落地到分层架构前所需的前提条件是:

  • 完成统一语言
  • 确定BC,开发对象
  • 确定BC内的要素分解,明确有哪些应用事件等
  • 明确了各流程在分层架构中的交互

落地步骤和要点

将前期分析的DDD要素,落地为分成架构的代码,可以遵循以下步骤:

  1. 首先,需要找到对架构全局具有影响的一个业务逻辑
  2. 明确这个业务逻辑涉及到的、依赖的子流程
  3. 进行子流程递归分解,直到子流程只涉及到一个领域对象
  4. 编写测试用例驱动这个领域对象的实现
  5. 层层向上测试驱动,直到这个子流程实现
  6. 然后驱动所有子流程的实现
  7. 最后驱动出这个业务流程实现

上面步骤中,需要详细说明几点: 1.

落地过程例子

参考

  1. DDD进阶站训营: — 中兴通讯技术交练组组长,丁辉


blog comments powered by Disqus
—  原创作品许可 — 署名-非商业性使用-禁止演绎 3.0 未本地化版本 — CC BY-NC-ND 3.0   —