关于DDD
来源:3-1 认识领域驱动设计 DDD

但为君故乚
2021-07-22
老师,你好,关于DDD,我是初次认识,看完DDD这节后也搜索了一些资料查看,我个人理解是这样的,不知是否正确,DDD是否可以理解为在Service层会和传统的开发模式有不同,而其他层其实是差不多的,比如Controller这些,Service层则是把一些业务处理逻辑抽离出来封装到领域模型里,然后在Service调用领域模型的业务方法,最后再持久化数据,然后在后续这些业务逻辑也会更加好复用,也就是充血模型。传统的开发模式,也就是基于表设计来驱动开发,则是模型类那些都是不包含业务方法的,也就是贫血模型,业务逻辑全部在Service进行处理,开发起来不用考虑对象里该封装什么业务,简单粗暴,有点使用面向对象进行面向过程编程的感觉。然后就是在真实的企业级开发中,是更多的使用基于表为驱动开发还是DDD,又或者是两者结合使用。最后则是什么时候该用DDD理念去设计,有什么原则么?
1回答
-
同学你好:
你这个问题提出的还是非常好的,而且从问题的描述能够看出,你学习过 DDD 的相关理论知识点,但是,我个人觉得似乎太偏向于理论,需要扭转下这个思维。我来解释下我对 DDD 的理解,以及如何应用:
(1)DDD 讲究的是领域知识模型,说白了,就是要垂直于某一个领域去学习之后,再去落地实践。简单而言,你要做一个音乐 App,那么,你最好是调研下 QQ 音乐、网易云音乐有哪些功能点,大概猜测它们是怎么实现的。之后,你再去设计你自己的音乐 App;也就是所谓的借鉴,站在巨人的肩膀上去做事
(2)所谓的传统开发模式,基于数据表来做开发,我们的业务就是对这张表做 CRUD,我个人觉得这没什么不好,没什么不对的地方;有时候,理论过于夸大了;如果你的业务需求需要大改,那么,无论是 DDD 还是表驱动,肯定都需要大规模的改动的
所以,不要拘泥于理论,现实的业务场景往往都是有单独定制的,结合自己的经验,并不断试错,你才有更深刻的理解。
512021-07-23
相似问题