大话DDD-01

    到底什么是DDD(Domain-driven design)?我的理解;domain就是业务,driven围绕着业务产生的行为,design是设计也就我们所说的架构,总结起来:DDD就是围绕着业务进行的架构设计和行为。

    长久以来我们都习惯用技术去解决业务问题,不管是设计模式还是代码重构,都是用技术手段解决业务问题,从没有从业务角度去解决业务问题,而Eric的Domain-driven design(DDD),Vaughn Vernon的Implementing DDD(IDDD)等书籍,为广大的程序开发者提供了一种全新的解决问题的思路和架构体系。


1、外驱动&内驱动

    自创的名词,不要太多纠结名字,知道意思就行。看下面两个列子,意图是需要更新一个用户的姓名


    上面这个简单的例子看起来都差不多,但是当业务发生在一些复杂的业务中,极端一点我有10个入口可以修改用户的姓名,外驱动的方式也许10个地方都有一段setName和setUpdateTime方法,这只是简单的场景当属性有非常多的时候,业务模型数据的一致性(更新name必须要更新updateTime)将不能由业务模型自己保证,一致性的保证都交给了一个个service,逻辑分散和不内聚。相反,内驱动的方式很好的保证了数据一致性的问题,把之前分散的逻辑都内聚到了业务模型之中。内驱的方式能使业务模型产生行为,不再是单纯的数据载体。


2、分层


首先说明一点,单纯的分层确实可以在一定程度上减少代码的复杂度和增加结构的清晰度,但是如果还是贫血模型式的开发,并不能改变项目朝着腐坏的方向发展。<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

趣味花生牛奶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值