对于领域,业务,业务模型,解决方案,BC,领域模型,微服务这些概念常常分不清,可是这些知识在进行领域建模及DDD落地过程当中又比较重要。设计模式
进行DDD实践时,回进行需求分析,领域划分,领域建模等工做,系统落地则须要一套解决方案,若是实现一个电商平台,须要一个复杂的系统解决方案,若是方案设计的过大,各模块,组件柔和在一块儿,就不利于整个系统维护-演进-伸缩等需求。因此须要对解决方案进行拆分,成为一个个独立的小的解决方案。微服务
领域表明问题域,解决方案表明解空间性能
解决方案的拆分每每没有捷径,仍是须要经验,对系统的熟悉程度等状况。利用软件设计的各类原则,最佳实践,设计模式,非功能特性需求,及团队状况来指导咱们解决方案的拆分和落地。设计
拆分有时能够从性能角度切入,有时能够从业务角度切入,有时能够借助CQRS,或者伸缩性角度考虑,找到适合本身团队和项目自己状况,最合适的就是最好的。对象
BC做为界限上下文,是DDD的核心概念,有Bounded和Context两个概念,一个场景纠缠多种上下文,是一个时空感的概念。 经过上下文边界能够对边界内的领域模型进行对象概念的明确,若是没有这个上下文边界,同一个概念可能存在歧义,理解上产生误差。好比商品在商品中心的BC中是聚合根,而在订单的BC中含义不一样,只是一个值对象。原型
领域模型是DDD中的核心概念,是业务拆分,软件设计的综合结果,任何一个领域模型,都是在特定的BC边界内才有意义。电商
业务模型是对业务概念及其关系的表达,领域模型在业务模型基础上,采用OOA/D的思想进行进一步抽象的设计模型,领域模型中有聚合,实体,值对象的区分。多个业务模型能够杂糅到某个领域模型之中。基础
进行领域建模大体的过程:软件
微服务出现以后,对于微服务的划分和DDD中BC有很大的契合点,有相同的探寻边界的原则。方法