什么是领域驱动开发(domain driven development)?
注意:这里是 「DD development」,而不是「DD design」
关注者
66被浏览
28,919登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
对于大多数业务系统,我建议
1,只有需求驱动开发而没有领域驱动开发
2,可以用领域驱动设计主导业务系统架构的优化和重构
why?
如果需要需要设计,意味着,需要较宽的业务知识积累,较高的抽象设计,能覆盖昨天,今天,明天的需求;较长的思考时间;较长的实施;较多的工作量;较大的风险。
这一般和大多数需求开发周期短,系统稳定性高是矛盾的。
是业务的重要性高于设计,还是设计的重要性高于业务?到底谁服务谁?
所以,在一些情况下,牺牲的肯定是设计。
设计肯定是必要的,否则系统必将失控。
既然架构设计不能尽然在事前阶段切入开发,就必须要在事后阶段切入。
///////
另外一方面,DDD是针对领域的。而对于大多数需求而言,可能都是混沌的,可能是一个领域,可能是多个领域。可能这个领域为主,其他领域只是偶尔涉及;也可能多个领域将来都会变得非常重要,而只有一些不重要……而领域的沉淀是非常需要业务知识沉淀和设计时间、开发时间的。
大多数时候,作功要有效性高一点比较好。否则每次一个需求中能延伸出无数个业务领域,产生非常高的工作量,可能大多数工作量以后根本不会用到。
所以,不建议DDD开发,只建议DDD重构。
大多数需求,我都建议先快速实现。然后过段时间再看。
除非除非已经确定了非常非常复杂,重大的项目。先做好顶层设计。否则会变成一群无头苍蝇乱碰。