上下文映射的团队协作模式

原则: 各司其职 权责分明

从组织角度看:

预防一个团队 权利膨胀 团队势力扩大到整个组织

从团队角度看:

避免自己权利被压缩,导致话语权减小

如何平衡?

满足合理分配职责的前提下,谨慎地确保每个限界上下文的粒度

 

领域驱动设计根据团队协作的方式与紧密程度,定义了五种团队协作模式:

 

合作关系:

合作得越多,就意味着依赖越多:二者可能存在强耦合关系,甚至是糟糕的双向依赖

 

限界上下文的“合作关系”其实是一种“反模式”,罪魁祸首是因为职责分配的不当,解决的办法通常有三种:

1 拆分的理由较为牵强,不应拆开 应该合在一起

2 找到产生依赖的职责 重新审视 造成多余依赖的 职责的正确位置

3 找到 双向依赖的 原因 将造成双向依赖的 职责 从 限界上下文中 独立出来 建立单独的 限界上下文 其他上下文依赖 这个单独的上下文(共享内核)

 

如下图示例

 

双向依赖:

 

拆分出单独的元数据:

 

共享内核:

共享内核往往被用来解决合作关系引入的问题。


共享内核是通过上下文映射识别出来的,通过它可以改进设计质量,弥补之前识别限界上下文的不足。

 

主要的驱动力就是“避免重复”,即 DRY(Don't Repeat Yourself)原则的体现。

作业与指令功能放在运输、货站或堆场都不合理,这时就是运用“共享内核”的时机。

为了避免重复,也为了避免不必要的依赖,可以提取出作业上下文。

 

ps: xml配置文件 都放在 应用层 或 实现层 都不合理 此时 可以独立出module 专门存放配置文件 避免 不必要的依赖

 

共享内核不能像其他设计部分那样自由更改,在做决定时需要与另一个团队协商

对共享内核进行修改时,需要充分评估这种修改可能带来的影响。(评估出 对下游造成的影响)

 

客户方-供应方开发:

上游需要考虑:

如何针对不同的领域需求建立统一的抽象:通用性建设

 

遵奉者:

 

下游限界上下文对上游限界上下文模型的追随:

 

  • 可以直接重用上游上下文的模型(好的)

  • 减少了两个限界上下文之间模型的转换成本(好的)

  • 使得下游限界上下文对上游产生了模型上的强依赖(坏的)

 

 

分离方式:

两个限界上下文之间没有丝毫关系

促进它们独立发展,彼此不受影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值