组成
限界上下文与子域
界限上下文
限界上下文是一种显示边界,领域模型便存在于边界之内,在边界内,通用语言中的所有词语和术语都具有特定的定义。
正如部门划分:技术部,人力部门,销售部门就是一种限界上下文的实现。

在银行上下文中,Account表示储蓄账户或者信用卡账户。
在文学上下文中,Account表示作者,作家账户。
子域
子域通常分为:
a.核心子域
可以产生业务价值和竞争力的域,需要分配最优秀的技术人员去完成。
b.支撑子域
与业务的某些重要的方面相关的上下文,比如购买功能。
c.通用子域
如果一个域被用作整个业务系统,那便是通用子域,比如用户权限资源管理。
上下文映射图
先看一个例子:零售商在线销售产品。

零售商需要从库存上架产品,提供购买,发货,同时还要对客户进行管理。

抽象出来的一种上下文映射图。
集成限界上下文
1.一个通用的上下文之间的集成。

A上下文是上游,C是下游。对于下游来说,需要添加ACL防腐层,将上游的数据转换为其上下文中的领域对象。
2.一个具有防腐层的上下文集成。

上下文之间通常有3中集成方式:
a.RPC远程方法调用。
b.通过REST资源。
c.通过消息机制。
ACL
功能:
适配
很多时候,三方依赖的数据并不符合我们内部的规范,通过适配将其转化符合规范的对象。
缓存
在统一入口添加缓存,减少三方的调用,降低接口请求的压力,同时也会把原本写到业务逻辑中的缓存提取出来。
兜底
在接口异常或者出错的情况下,返回上一次缓存的数据或者给出默认值。
易于测试
方便mock
功能开关
可以在特殊场景下控制接口的开关。
注:当你在河边喝水时,如果水里有垃圾,要么去更高的上游去喝水,要么把水净化下(ACL)。
Last updated
Was this helpful?