Domain-Driven Design
DDD 设计完成之后,才能划分微服务,不然无法确定每一个微服务里头都包含哪一些功能。
战略设计
战术设计
限界上下文是语义和语境上的边界。这意味着边界内的每个代表软件模型的组件都有着特定的含义并处理特定的事务。限界上下文中的这些组件有特定的上下文语境和语义理据。 当限界上下文被当作组织的关键战略举措进行开发时,即被称之为核心域。
限界上下文应该由领域专家来主导划分,而不是让开发人员来划分,大泥球 往往是开发人员无视业务专家的建议,一意孤行所导致的结果。领域专家的心智模型将成为团队通用语言的坚实基础。
限界上下文包括:输入适配器,例如用户界面;编排用例和管理事务的应用服务;领域模型;输出适配器,如持久化管理和消息发送器;
理想情况下,一个限界上下文对应一个子域,子域是整个业务领域的一部分。
子域类型
核心域必须与其他限界上下文进行集成。这种集成关系在 DDD 中称为上下文映射。
映射的种类
更可靠的三种上下文映射
聚合由一个或多个实体组成,其中一个实体被称为聚合根,聚合的组成还能包括值对象。
每个聚合的根实体控制着所有聚集在其中的其他元素。
每个聚合都会形成保证事务一致性的边界。
聚合的四条基本规则
通过消息机制来实现领域事件,要保证事件的顺序性,同时要可以事件溯源。
事件风暴
事件风暴是一种快速的设计技术,让领域专家和开发人员都可以参与到这个快节奏的 学习过程中 它聚焦于业务和业务流程,而非名词概念和数据
运用 SWOT 分析法
建模 Spike 和建模债务
任务识别与工作量估算
限制建模时间