开课吧:微服务与DDD解析

本文探讨了DDD(领域驱动设计)作为一种架构方法论,如何帮助简化复杂问题并划定领域边界。微服务作为架构风格,源自SOA并提供了更细粒度的服务拆分。DDD与微服务相结合,通过限界上下文确保服务间的清晰边界,防止领域混淆。同时,微服务在技术实现上加固了这些边界,促进系统的演进。尽管两者结合带来挑战,但它们在复杂系统分解和微服务定义上相辅相成。
摘要由CSDN通过智能技术生成

DDD 不是一种架构, 而是一种架构方法论, 目的就是将复杂问题领域简单化, 帮助我们设计出清晰的领域和边界, 可以很好的实现技术架构的演进。

DDD涵盖两部分:战略设计部分、战术设计。
战略设计从业务视角出发,建立业务领域模型,划分领域边界,建立通用语言的限界上下文,限界上下文可以作为微服务设计的参考边界。
战术设计从技术视角出发,侧重于领域模型的技术实现,完成软件开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的设计和实现。
DDD 看似复杂,学习起来并不困难,但是想要快速掌握 DDD 亦有很多挑战!
微服务并没有一个明确的官方定义,它可以解释为一种架构编程思维,更多地被描述为一种架构风格。微服务架构的概念可以说来源于技术专家多年的工作积累和最佳实践总结,是通过不断发展、演进逐渐形成的。
架构演进论在“技术雷达”里,微服务最早以“Micro-service”,而非“MicroService” 出 现 , 从 架 构 演 进 的 角 度 来 说 , 微 服 务 是 从SOA(Services Oriented Architecture,面向服务架构)发展演进而来的,是更先进的细粒度的SOA实现方式。

微服务与DDD
因为DDD是种软件设计思想和方法,没有强制性的技术手段做保障服务与服务之间的边界,Domain和限界上下文之间的“墙”就很容易被打破,不同的Domian和限界上下文就又混在一起,变成一锅粥了。采用微服务技术,会在实现方式上加一些限制,导致这堵“墙”足够厚实,不容易被打破。就像公司中的部门,虽然能造成部门墙,但也保证了不会把所有的事情都搀和在一起,也是有好处的。比如,现在是真的不允许你去任意修改其他模块的代码和数据库了。
微服务从软件实现说事,没有提供一套方法论来对复杂系统进行分解,从而得到一个个微服务,这个时候就可以用到DDD了。所以,在微服务的书里,基本上都会提到采用DDD的设计方法,微服务的一个特性就是具备Bounded Context,这是赤裸裸的跟DDD“暗送秋波”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值