DDD(Domain Driven Design)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过 DDD 完成的设计恰恰就是软件的工作方式。
微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统,提供更好的软件伸缩性以及提高组织的敏捷性,然而微服务架构从一出来就没有很好的理论支撑如何合理的划分服务边界,人们常常为服务要划分多大而争吵不休。而 DDD 被发现恰好可以弥补微服务的营养不良:通过战略设计可以确定子域并在子域内划分 BC(Bounded Context),一个微服务一般对应一个 BC,同时 BC 内成熟的分层架构和战术设计可以应用在微服务上。
很多团队在微服务内实践 DDD 时,经常会为如何分包而纠结来纠结去,折腾了很长时间也很难满意,同时不同团队,甚至同一团队的不同开发人员的分包原则和方式也大不相同,非常不利于产品代码的开发和维护。我们说的物理设计,主要就是目录和文件设计,可以很好的解决分包问题。
本场 Chat 首先会带领大家回顾 DDD 的分层架构模式,然后根据 DDD 的实践经验给出微服务的物理设计规范,接着分享两个进阶话题,分别是 DCI(Data,Context and Interactive)和 Domain Event 驱动物理设计演进,最后结合代码讲解案例。
本场 Chat 你将学到以下内容:
- DDD 分层架构模式。
- 微服务物理设计规范。
- DCI 和 Domain Event 驱动物理设计演进。
- 代码如何落地。
阅读全文: http://gitbook.cn/gitchat/activity/5b3f43e3c6002d10bd3db970
一场场看太麻烦?订阅GitChat体验卡,畅享300场chat文章!更有CSDN下载、CSDN学院等超划算会员权益!点击查看