DDD中为什么要划分核心域、支撑域和通用域?

开发者应该专注于核心域

在领域驱动设计中,开发者会建立领域模型,模型中通常会划分出多个子域来。在现实生活中,资源永远是有限的,对于不同的领域,开发者应该有所取舍,把重点放在最能带来价值的领域中,这就是领域模型的核心域。

开发者应该把自己最好的资源投入到核心域的开发中,对于软件公司而言核心域应该是公司的骨干力量来实现。

支撑域可以外包

而要建立核心域需要其他子域的支持和协作,其中有些子域需要专业知识,不容易直接从市场得到,也需要自己开发,但是这些子域创造的价值不能直接被客户认可,或者价值不高,这样的子域称之为支撑域。

支撑域的优先级低于核心域,可以投入相对较低的资源,开发者可以把支撑域交给外包人员完成。

支撑域也可以变为核心域。有些支撑域可能是在公司初期投入产出比不高不值得高投入,但是随着业务的壮大,支撑域变得有利可图,支撑域就会变为核心域。比如电商开始的时候专注力会在商品展示和订单处理上,支付会直接交给像支付宝或者微信支付来解决,但是随着业务量的增大,支付本身变成了有利可图的业务,希望支付数据不被竞争对手掌握,它就可能会把支付从支撑域变成核心域做为重点项目来开发。

投入尽可能少的资源到通用域

通用域会使用众所周知的技术,或者解决方案众多,也不能给公司或者客户带来直接的价值。

通用域应该投入最少的资源,尽量不要自己开发,通常可以使用开源的第三方解决方案。很多开发者从登录开始做自己的系统,而授权和认证系统早已有众多的公开标准和方案,把成熟的授权和认证系统开源方案集成到开发者的系统中既省时省力,又更安全可靠。

和支撑域类似,通用域也可能会成为核心域,为公司创造出巨大的价值,前提是公司本身要成为业界翘楚才有这个可能。拿登录来说,只有阿里和腾讯这样有巨大用户基础的公司,才会有把登录从通用域转换为核心域的机会。

总结

本文解释了什么是核心域、支撑域和通用域。把子域划分为这 3 大类是为了把资源集中到能产生价值的核心域中。这3类子域的位置不是一成不变的,随着业务的发展,支撑域和通用域有可能也会成为核心域。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值