请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于DDD

老师,你好,关于DDD,我是初次认识,看完DDD这节后也搜索了一些资料查看,我个人理解是这样的,不知是否正确,DDD是否可以理解为在Service层会和传统的开发模式有不同,而其他层其实是差不多的,比如Controller这些,Service层则是把一些业务处理逻辑抽离出来封装到领域模型里,然后在Service调用领域模型的业务方法,最后再持久化数据,然后在后续这些业务逻辑也会更加好复用,也就是充血模型。传统的开发模式,也就是基于表设计来驱动开发,则是模型类那些都是不包含业务方法的,也就是贫血模型,业务逻辑全部在Service进行处理,开发起来不用考虑对象里该封装什么业务,简单粗暴,有点使用面向对象进行面向过程编程的感觉。然后就是在真实的企业级开发中,是更多的使用基于表为驱动开发还是DDD,又或者是两者结合使用。最后则是什么时候该用DDD理念去设计,有什么原则么?

正在回答

1回答

同学你好:

    你这个问题提出的还是非常好的,而且从问题的描述能够看出,你学习过 DDD 的相关理论知识点,但是,我个人觉得似乎太偏向于理论,需要扭转下这个思维。我来解释下我对 DDD 的理解,以及如何应用:

    (1)DDD 讲究的是领域知识模型,说白了,就是要垂直于某一个领域去学习之后,再去落地实践。简单而言,你要做一个音乐 App,那么,你最好是调研下 QQ 音乐、网易云音乐有哪些功能点,大概猜测它们是怎么实现的。之后,你再去设计你自己的音乐 App;也就是所谓的借鉴,站在巨人的肩膀上去做事

    (2)所谓的传统开发模式,基于数据表来做开发,我们的业务就是对这张表做 CRUD,我个人觉得这没什么不好,没什么不对的地方;有时候,理论过于夸大了;如果你的业务需求需要大改,那么,无论是 DDD 还是表驱动,肯定都需要大规模的改动的

    所以,不要拘泥于理论,现实的业务场景往往都是有单独定制的,结合自己的经验,并不断试错,你才有更深刻的理解。

5 回复 有任何疑惑可以回复我~
  • 提问者 但为君故乚 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-07-23 10:34:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信