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