什么是领域驱动开发(domain driven development)?

注意:这里是 「DD development」,而不是「DD design」
关注者
66
被浏览
28,919
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

对于大多数业务系统,我建议

1,只有需求驱动开发而没有领域驱动开发

2,可以用领域驱动设计主导业务系统架构的优化和重构


why?

如果需要需要设计,意味着,需要较宽的业务知识积累,较高的抽象设计,能覆盖昨天,今天,明天的需求;较长的思考时间;较长的实施;较多的工作量;较大的风险。

这一般和大多数需求开发周期短,系统稳定性高是矛盾的

是业务的重要性高于设计,还是设计的重要性高于业务?到底谁服务谁?

所以,在一些情况下,牺牲的肯定是设计。


设计肯定是必要的,否则系统必将失控。

既然架构设计不能尽然在事前阶段切入开发,就必须要在事后阶段切入。

///////

另外一方面,DDD是针对领域的。而对于大多数需求而言,可能都是混沌的,可能是一个领域,可能是多个领域。可能这个领域为主,其他领域只是偶尔涉及;也可能多个领域将来都会变得非常重要,而只有一些不重要……而领域的沉淀是非常需要业务知识沉淀和设计时间、开发时间的。

大多数时候,作功要有效性高一点比较好。否则每次一个需求中能延伸出无数个业务领域,产生非常高的工作量,可能大多数工作量以后根本不会用到。


所以,不建议DDD开发,只建议DDD重构。


大多数需求,我都建议先快速实现。然后过段时间再看。


除非除非已经确定了非常非常复杂,重大的项目。先做好顶层设计。否则会变成一群无头苍蝇乱碰。