DDD的两种基本战略设计工具:
限界上下文(Bounded Context)和通用语言(UML)
限界上下文架构:
六边形架构,事件驱动架构,命令和查询职责分离(CQRS),REST,SOA
子域
限界上下文与子域一一对应。虽然不有时可以一对多
子域类型:核心域(Core Domain/Sub Domain),支撑子域(Supporting subdomain),通用子域(Generic Subdomain)
上下文映射图(Context Map)
映射总类:合作关系,共享内核,客户-供应商,跟随者,防腐层(Anticorruption Layer),开放主机服务(OHS),已发布语言(PL),各行其道(Separate Way),大泥球
例子:基于SOAP的RPC,RESTful HTTP,消息机制
问题空间和解决方案空间
问题空间:上下文映射图,限界上下文
解决方案空间:核心域(Core domain)
DDD战术设计工具:聚合
聚合(Aggregate),实体,值对象
每个聚合都会形成保证事务一致性的边界
只能在一次事务种修改一个聚合实例并提交
建立聚合模型
贫血模型(要考虑函数式编程的特例)
领域模型