DDD设计和开发

讲解领域驱动设计的概念,实现方法。DDD领域驱动设计是目前企业应用设计的最佳方法,经过10多年体系知识的不断完善和编程语言的改进适配,如今已经可以很有效的指导复杂的企业应用的设计开发过程。 本课程同时对CQRS(命令查询职责分离模式),DCI(数据Data 场景Context 交互Interactions)等相关知识进行讲述。

时间2~3天。

DDD Overview

  • DDD基本介绍,Ubiquitous Language通用语言的重要性
  • Domain, Subdomain和Bounded Context(上下文边界)。领域是核心概念,上下文边界的定义是软件设计的重点所在。
  • Context Mapping(上下文映射),领域建模后,需要把相关概念映射到编程实现语言中。
  • 架构设计,观察设计方法如层的划分,依赖注入,SOA等

DDD concept

  • Entity实体,是领域模型的核心概念
  • Value Object值对象
  • Aggregates聚合,多个实体和值对象组合,聚合根是软件设计的关键点
  • Domain Service,领域服务,对实体对象的逻辑处理
  • Module模块,应用分解为若干模块
  • Factory工厂类,对象的创造者
  • Repository仓库,数据存放场所,数据库是主要方式

Domain Events

  • Event事件,系统内部的解耦方式
  • EventStore,事件存储,可以进行回滚和重放
  • Message & Event,消息和事件的区别和适用场景

CQRS & DCI

  • (Command and Query Responsibility Segregation)命令查询职责分离
  • 当前主流编程语言对DDD实现能力的分析
  • DCI(数据Data 场景Context 交互Interactions)知识讲述
  • 分析Java和Ruby语言的DCI实现