ddd中的子域和界限上下文

原创
2019/04/23 17:00
阅读数 666

我们先来说说子域是什么?子域在我的理解是在一个庞大的系统中可以明显感知的不同的区块,如果在电商模块中,商品目录,订单,物流,库存,发票等等都可以感知他们明显的不同,可以认为是子域。那么二手车领域,我的感觉,汽车目录,汽车检测,汽车预约,个人汽车购买,个人汽车售卖可以认为是子域。

那么界限上下文是什么?上下文的意思就是说一个概念在一个上下文中所关注的是一种意思,到了另一个上下文中所关注的是另一种意思。任何互联网产品都会有用户这个概念,但是这个概念在不同的上下文中可能就完全不一样,比如买家和卖家就是在不同上下文中的意义。如果一个概念在两个子域中都一样,那就有可能这两个子域属于同一个上下文。

先来说一下一个概念在不同的子域属于不同上下文的例子,比如顾客在电商系统中,在购买时,可能表示的是他过往的购买记录,消费水平,折扣这些。而购买之后可能表示名字,地址,购买价格等等。二手车中,汽车在用户检索时可能包含品牌,型号,价格。在用户看车的时候可能包含发动机,油耗,外观,内饰等等各种东西。如果区分不清楚界限上下文,我们可能把不同子域的相同概念给建模成了同一个东西,这样就把事情搞复杂了。

一般系统中都有用户和权限的东西,但这种东西在界限上下文中都可能在子域中与各种协作人员发生耦合。用户和权限与协作活动没有任何关系,并且与协作的通用语言也风马牛不相及。在协作上下文中出现的每一种概念都必须与协作存在语言层面上的关联。我们应该关注的是协作概念,比如作者和主持者,这些才是协作活动中的正确概念和语言。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部