- 上下文映射DDD最终一致性模型
- 形成上下文映射图
- 问题空间
- 领域 # 与公司组织关联
- 子域 # 最好对应一个限界上下文
- 核心域(core domain) # 项目动机, 公司核心竞争力, 尽量小, 最高优先级
- 通用子域(generic subdomain) # 作用于整个系统的支撑子域
- 支撑子域 # 重要非核心
- 集成
- 合作关系(partnership) # 同时成功失败
- 共享内核(shared kernel) # 小型内核, 持续集成功能
- 客户/供应(customer-supplier development) # 上下游
- 遵从(conformist) # 下游遵从上游
- 防腐层(anticorruption layer) # 翻译转换领域服务
- 开放主机服务(open host service) # 公开协议,子系统访问
- 发布语言(published language) # dsl, 通常与开放主机服务一起
- 分隔(separate way) # 声明无关联
- 大泥球(big ball of mud) # 已有纠缠的系统,隔离出来
- 解决方案空间
- 通用语言
- 一个限界上下文一个通用语言
- 清晰(概念无二义性), 简洁 # 如卖家和买家都叫用户,就是不清晰。如用type标记用户是卖家或买家,就是不简洁。所以直接用两个对象
- 限界上下文 # 条件的集合
- 目的
- 确保术语含义明确
- 切分规模, 易于保持领域纯洁
- 设定进化框架而非模块,包含模块
- 考虑因素
- 挑战
- 团队开发碎片化 # 写重复的代码,由于不知道或怕改错
- 持续集成
- 模块
- 作用
- 设计
- 通信性内聚(communicational cohesion)
- 功能性内聚(functional cohesion)
- 每模块统一接口
- 名称反映深层理解
- 灵活性,进化性