DDD中领域划分经验总结

IT公司在利用DDD进行开发时经常会出现扯皮的情景,例如:某个子功能,或者某个“跨多个领域”的业务服务如何提供时,就会产生开发人员相互踢皮球的情况。这里说一下领域服务划分的主要原则与处理技巧

1、邀请业务专家参与。业务专家对业务理解是最深刻的,你可以与业务专家一起,共同熟悉业务流程、业务关键活动。对业务有全面与深入的了解后,也需你就知道这个职责该交给谁了

2、数据专家原则。某个领域服务肯定会以来数据,核心或者主要数据属于哪个业务实体,业务实体属于哪个Domain,你就可以判断该服务所属于的业务领域了。也需会有一些辅助数据需要另外的业务域来提供,这个时候可以要求其提供一个查询数据的子服务,这样你就把一个外部领域服务成功拆解成多个服务了,并且核心数据域服务承担服务编排与组合的原则。

3、反向思考,原有的业务域是否划分的合理。职责划分讲究高内聚低耦合,原有的领域是否做到了这一点。

例如:A公司每个财年都会进行年终考核,基于考核结果直接调薪与分配年终奖,此时会冻结一份“员工汇报关系”(也就是主数据在某个时间点的快照),该汇报关系决定了“绩效考核关系”,即OD域;也决定了“奖金分配的审批流程”,即CB域。OD域与CB域都依赖“冻结的员工汇报关系”。 “冻结的员工汇报关系”无论放在OD域,还是放在CB域都有问题, 导致OD域与CB域经常扯皮。“冻结的员工汇报关系”属于主数据(MD),应该考虑单独独立成一个域,为OD域或CB域提供服务。

4、该服务如果不提供,谁最痛,谁要为此担责。 问责下去,必然会有相关人员收到惩罚。被惩罚者就是服务提供者。

5、还有其他吗?  领域划分本质是职责的划分。某个开发/开发组既然承担职责了,是不是相关的数据、权利都到位了呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值