*领域驱动设计实践
软件退化的原因?--》设计的迷失;
什么是DDD? 如何拆分和设计?
-》 通过领域模型来确定业务和应用的边界,保证业务模型和代码模型的一致性。
以领域为驱动力的过程体系,在这一核心驱动力的设计思想指导下,并没有死板讲话的构建过程来约束。
1.“分而治之”;2.从业务视角演进式分离应用;

结构:边界
变化:顺应变化方向
规模:分解

A. 每次变更时,先基于业务进行领域模型变更
B. 调整、重构现有程序结构,以适应新功能或变更(开放-封闭原则OCP)
C. 实现新功能或变更

为什么研发出的东西不是业务想要的?
A.认知的差异
B.统一语言

领域,自领域,核心子域,通用子域,支撑子域
Boumded Context

  • 单一抽象层次原则
  • 奥卡姆剃刀原则
  • 正交原则
  • 最小惊讶法则

4大设计原则

  • 最小完备
  • 独立进化
  • 稳定空间
  • 自我履行

A. 业务建模,价值驱动
业务价值分析,业务流程建模,业务场景建模,识别业务服务,划分子领域
B. 架构构建,领域驱动
识别系统上下文,识别业务主体,识别限界上下文,建立系统架构
C. 设计建模,服务驱动
领域建模,业务服务分解,职责分配;
D. 领域实现,测试驱动
测试驱动开发,代码模型,敏捷特性小队

场景,角色,
C4 model

  •      查询车次(地点)时间 ---》乘车人 ---〉座位选择 --》订单(车票,票种,席别) --〉付款 ,保险---》返回信息,短信

    购票人
    乘车人

业务建模- 人,愿景,目标,业务场景

  1. 角色坐标;inspection,端到端,角色有多少个?
  2. 主流程
  3. 场景

事件风暴

  1. 识别领域事件
  2. 识别决策命令
  3. 识别领域名词

识别限界上下文

限界上下文映射