DDD是什么?
Evans DDD
2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计 )简称Evans DDD
领域建模是一种艺术的技术,它是用来解决复杂软件快速应付变化的解决之道
DDD定义
DDD是一种设计思想,它是基于事件风暴,使用通用语言,对业务进行领域建模,通过限界上下文对业务进行合理的领域拆分,使得领域模型更好地转向微服务和落地,从而解决复杂系统难以理解,难以演进,也可以解决服务业务界限难以界定的问题。
DDD由战略设计和战术设计两部分组成
战略设计:建立领域模型,划分服务边界,建立通用的限界上下文
战术设计:侧重于领域模型的实现,从领域模型转向微服务的设计和落地
DDD 的核心知识体系,具体包括:领域、子域、核心域、通用域、支撑域、限界上下文、实体、值对象、聚合和聚合根等概念。
以下是DDD战略设计和战术设计分析流程,及其相关的关键步骤,及每个步骤需要的输入,分析方法,输出的关键成果物。
TOGAF是什么?
TOGAF 即 The Open Group Architecture Framework (开放组体系结构框架),是由致力于技术标准制定和推广的非盈利组织 The Open Group 制定的用于开发企业架构(Enterprise Architecture)的一套方法和工具。
TOGAF标准是The Open Group标准之一,企业架构标准,TOGAF为标准、方法论和企业架构专业人士之间的沟通提供一致性保障。
TOGAF范围
TOGAF架构开发方法(ADM):ADM是一个可靠的,行之有效的方法,以发展能够满足商务需求的企业架构,它是TOGAF的关键。
TOGAF架构内容框架:提供了一个详细的架构工件模型,包括交付物、交付物的工件和架构构建块
TOGAF参考模型:提供了两个参考模型,Technical Reference Model (TRM) 和Integrated Information Infrastructure Model (III-RM)
ADM指引和技术:提供应用ADM的一些指导(迭代、安全等)和技术(定义原则、业务场景、差距分析、迁移计划、风险管理等)
企业连续统一体:EA 专业人员和涉众的资源库,例如,模型、解决方案模式,和其他可以在企业架构实现和裁减过程中用作构建块的资产。
TOGAF能力框架:一套资源、指导、模板、背景信息等等,帮助在组织中进行架构实践
它们之前的关系
下面用一张表格来说明一下它们的关系, 方便你理解和类比学习
编号 | DDD | DDD补充说明 | 举例 | TOGAF | 举例 |
1 | 领域 | 电商领域 | 整个大的系统边界或者多个系统的边界, 定义了系统范围 | 电商 | |
2 | 问题域 | 下单问题,支付问题,商品问题,物流问题, 用户问题,库存问题 | 要解决的业务需求问题 | 下单的需求 | |
3 | 子域 | 商品,订单,支付,库存 | 这个业务需求有哪些大的功能模块 | 商品功能,订单功能,支付功能,库存功能 | |
4 | 核心子域 | 业务的核心, 主要竞争力 | 商品,订单,支付,库存 | 核心功能 | 商品功能,订单功能,支付功能,库存功能 |
5 | 支撑子域 | 支撑核心 | 物流 | 支撑功能 | 物流功能 |
6 | 通用子域 | 业务系统的公用部分 | 用户 | 通用功能 | 用户功能 |
7 | 限界上下文 | 一个限界上下文中有多个领域对象,将哪些放在一起还是单独放 | 比如商品+库存 构成商品上下文, 或者单独商品上下文, 单独库存上下文 | 实现层面的应用, 系统, 服务, 要划分哪些功能放到一个系统中实现 | 比如商品+库存 构成商品服务, 或者单独商品服务, 单独库存服务 |
8 | 领域对象(Domain Object Model) | 就是领域模型,子域决定领域对象, 实体, 值对象,聚合,事件,服务 | 实体: 商品,sku 聚合根: 商品 服务: 购买商品,查看商品sku 事件:减少商品库存事件,商品库存已减少事件 | 对数据对象的增删改查 | 实体: 商品实体, sku实体, 库存实体 操作: 商品增删改查, sku增删改刹 |