谈谈自己对领域驱动设计的理解

本文探讨了领域驱动设计的三个核心概念:领域划分、驱动机制和设计策略。通过实际案例和餐馆例子阐述了领域间的交互与驱动的作用,提出在应用层和domain层间引入协议来降低耦合。作者强调技术如何定义规则,并展望未来智能框架在简化服务复杂性中的潜力。
摘要由CSDN通过智能技术生成

1.领域驱动设计的咬文嚼字

        对于领域驱动设计这四个字,我一般将其分为三段来思考,领域,驱动,设计这三个词语。

        领域这一词往往会让人联想到地域这一词汇。在一次我坐车去西安的途中,打开了百度地图,我看见了地图上标注的中风险地区。这一下让我想到了,这个地区挂掉了不能去那。再细想一下,整个城市的运行像是一个微服务系统的运行,某个楼、某个店、某个街区就看成是一个单独的领域,它们为这个社会也就是这个系统提供着服务。但当一个地区出现病例,就相当于领域瘫痪,不能进行对系统的服务了。但领域之间有着明显的隔阂,这就对应着领域边界的上下文。

        当我们有了领域之后,就有了一个重要的问题是如何让各个领域之间搭配起来干活。这便是需要驱动来解决问题了,驱动的存在是来磨合领域与领域之间的摩擦的。摩擦指的是领域与领域之间产生了业务冲突。很简单,举一个餐馆的例子来说。两个不同的小区里面都有面馆,都是做刀削面的。这时小区A因为一些原因被封后了,我们就要及时的知道小区B依旧可以吃面的信息。寻求小区B问我们提供服务。这就是领域的摩擦,当然,在两个小区都是解封状态下,谁家面好,去谁家。驱动一次要体现出快速切换服务,提供服务的运行动作。

        设计嘛,就要贯穿领域和驱动这个词了,它们都需要合理的设计才能完成庞杂或细致的工作。对于设计我理解不多,但是设计领域的时候,个人认为领域之间应该存在嵌套关系。更能体现出多样性嘛。

2.对于领域驱动框架思考

        在此我直接点出个人认为application层和domain层中间应该点出一层来调和应用层和领域层之间的调用。在上面我提到了,如果A小区封了,要知道B小区也有面馆的这一操作来看。这两层之间不能只是接口隔离了。在此我想出使用协议来解决调用问题了,将业务协议到一个平台上,领域去关注这个平台公告板,领取任务,将服务结果返回服务层。这样就可以解决很多框架耦合问题,让开发人员在服务层的开发过程中不在关注领域层的接口设计。

3.用技术来定义规则

        我曾经看肖臻老师讲区块链的视频中好像提到这句话,用技术来定义规则。我喜欢这句话,因为我认为它将会是判断一个系统是否智能的关键点。领域驱动设计的初衷是为了解决软件设计的复杂之道,将系统划分,组合,在划分,在组合。将其打磨的更加具有扩展性,高可用,那便是每一个软件工程师应该做的。我相信未来一定会有智能框架来解决服务复杂的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值