组成

限界上下文与子域

界限上下文

限界上下文是一种显示边界,领域模型便存在于边界之内,在边界内,通用语言中的所有词语和术语都具有特定的定义。

正如部门划分:技术部,人力部门,销售部门就是一种限界上下文的实现。

在银行上下文中,Account表示储蓄账户或者信用卡账户。

在文学上下文中,Account表示作者,作家账户。

子域

子域通常分为:

a.核心子域

可以产生业务价值和竞争力的域,需要分配最优秀的技术人员去完成。

b.支撑子域

与业务的某些重要的方面相关的上下文,比如购买功能。

c.通用子域

如果一个域被用作整个业务系统,那便是通用子域,比如用户权限资源管理。

上下文映射图

先看一个例子:零售商在线销售产品。

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

抽象出来的一种上下文映射图。

集成限界上下文

1.一个通用的上下文之间的集成。

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

2.一个具有防腐层的上下文集成。

上下文之间通常有3中集成方式:

a.RPC远程方法调用。

b.通过REST资源。

c.通过消息机制。

ACL

功能:

  1. 适配

    很多时候,三方依赖的数据并不符合我们内部的规范,通过适配将其转化符合规范的对象。

  2. 缓存

    在统一入口添加缓存,减少三方的调用,降低接口请求的压力,同时也会把原本写到业务逻辑中的缓存提取出来。

  3. 兜底

    在接口异常或者出错的情况下,返回上一次缓存的数据或者给出默认值。

  4. 易于测试

    方便mock

  5. 功能开关

    可以在特殊场景下控制接口的开关。

注:当你在河边喝水时,如果水里有垃圾,要么去更高的上游去喝水,要么把水净化下(ACL)。

Last updated

Was this helpful?