- 分析模型
- 业务领域分析, 不考虑代码
- 问题
- 含意不完整,不可图形或文字表达,错误假设
- 会深入某细节
- 忽略某细节直到设计或实现, 如持久化、性能
- 目标
- 领域模型
- 架构设计
- 前提
- 流程
- 限界上下文全局规划业务模块
- 事件风暴逐步细化,每个模块领域建模
- 逐步落地模块数据库设计、微服务设计、技术、部署
- 步骤
- 领域模型一开始就结合编码设计
- 设计围绕模型, 模型受设计反馈改善
- 面向对象更易于建模, 过程化易于流程,如数学
- 开发
- 开发时意识到模型变更, 会保持完整性
- 每个开发在修改前需要了解模型
- 重构
- 要求
- 设计灵活
- 使用经过验证的构造
- 目标
- 领域理解更深、更清晰
- 深刻(incisive)、深层(deep)的模型
- 技术的动机的代码转换
- 领域理解更深、更清晰
- 实现
- 小幅可控
- 基于测试
- 突破
- 新的概念或抽象
- 隐含的概念被凸显
- 倾听领域语言
- 过分复杂是因为关键点被替代
- 领域文献
- 深层视图
- 约束
- 表达不变量
- 过程(process)
- 面向对象中的面向过程, 多个过程时用策略
- 规约
- 测试对象返回布尔值, 重构成对象而非写在application
- 要求