DDD-6- 限界上下文
是什么
是一个显示的边界,在边界内维护概念一致性,一个限界上下文对应一套统一语言
概念的一致性是通过语义上的一致性来表达的
在大型系统中保持概念一致性非常困难,而概念一致性是所有的基础
在每个子系统的内部实现概念的严格一致性,而不同系统内部之间则没有必要一致。
表示一个子系统、子模型或者维护这个子系统的团队
是一种分而治之的手段,可以起到分离关注点的作用
价值
指导系统科学地拆分
解决规模大的带来的挑战
规模大的挑战
沟通变困难了
系统的代码质量变差了
系统的外在质量问题也跟着变多了
不同需求的互相等待
想通过横向扩展来提高性能
关键点
不同上下文的同一个名词,有可能概念已经不完全一致了
两个上下文之间的这种映射关系,做上下文映射(context map)
聚焦一个上下文时,应聚焦在什么样的模型对实现当前上下文功能最有利,而不是受其他上下文影响
与微服务的关系
限界上下文为微服务的划分奠定了基础
限界上下文可以解决因为模型划分不合理,没有找到内聚的业务边界,导致的“分布式单体”现象
一个限界上下文或者几个限界上下文对应一个微服务,取决于维护该微服务的团队认知负载
注意:避免一个限界上下文分布在不同的微服务中,造成业务概念以及实现高耦合、松内聚导致的需求变更涉及改动范围大
限界上下文集成
集成原则
不论采用哪种策略,概念层面的映射关系都是一样的,只是实现层面不同。
集成策略
数据同步(同步调用+异步调用)
API 调用(同步调用+异步调用)
转换逻辑实现
防腐层
评论