DDD 实战课
欧创新
人保资深架构师
55517 人已学习
新⼈⾸单¥59
登录后,你可以任选2讲全文学习
课程目录
已完结/共 26 讲
开篇词 (1讲)
DDD 实战课
15
15
1.0x
00:00/00:00
登录|注册

10 | DDD、中台和微服务:它们是如何协作的?

DDD的设计方法与其他方法的比较
使用什么方法做中台业务建模?
企业是否在做中台?
DDD与中台的完美结合
DDD的战术设计可指导中台微服务设计
DDD的战略设计可用于中台业务建模
微服务设计和系统落地
中台业务建模的过程
系统抽象的过程
中台业务抽象的过程
映射关系:领域模型对应微服务
通用中台和核心中台属于业务中台的范畴
传统企业中台建设的模式
前台业务可以直接找中台,不需要每次都去改动自己的底层
中台的本质是提炼各个业务板块的共同需求,进行业务和系统抽象
中台来源于阿里的中台战略
领域模型的重要性和功能属性
子域分为核心域、支撑域和通用域
DDD按照一定规则将业务领域进行细分
DDD领域、子域、核心域、通用域和支撑域等概念
思考题
总结
中台如何建模?
DDD、中台和微服务的协作模式
中台的本质
DDD的本质
DDD、中台和微服务的协作关系

该思维导图由 AI 生成,仅供参考

你好,我是欧创新。今天我一起来聊聊 DDD、中台和微服务的关系。
DDD 和微服务来源于西方,而中台诞生于中国的阿里巴巴。DDD 在二十多年前提出后一直默默前行,中台和微服务的理念近几年才出现,提出后就非常火爆。这三者看似风马牛不相及,实则缘分匪浅。中台是抽象出来的业务模型,微服务是业务模型的系统实现,DDD 作为方法论可以同时指导中台业务建模和微服务建设,三者相辅相成,完美结合。
你可能会问:凭什么 DDD 可以指导中台和微服务建设,究竟起到了什么作用呢?
DDD 有两把利器,那就是它的战略设计和战术设计方法。
中台在企业架构上更多偏向业务模型,形成中台的过程实际上也是业务领域不断细分的过程。在这个过程中我们会将同类通用的业务能力进行聚合和业务重构,再根据限界上下文和业务内聚的原则建立领域模型。而 DDD 的战略设计最擅长的就是领域建模。
那在中台完成领域建模后,我们就需要通过微服务来完成系统建设。此时,DDD 的战术设计又恰好可以与微服务的设计完美结合。可以说,中台和微服务正是 DDD 实战的最佳场景。

DDD 的本质

我们先简单回顾一下 DDD 领域、子域、核心域、通用域和支撑域等概念,后面会用到。
在研究和解决业务问题时,DDD 会按照一定的规则将业务领域进行细分,领域细分到一定的程度后,DDD 会将问题范围限定在特定的边界内,并在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。领域可分解为子域,子域可继续分为子子域,一直到你认为适合建立领域模型为止。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了DDD(领域驱动设计)、中台和微服务之间的协作模式。DDD作为方法论可以指导中台业务建模和微服务建设,三者相辅相成,完美结合。文章详细阐述了中台业务建模的过程,包括按业务流程或功能属性细分业务域、选取中台并完成事件风暴、领域模型设计等步骤。同时,强调了DDD战略设计在中台业务建模中的应用,以及领域模型映射为微服务的过程。总结指出,DDD与中台的完美结合可以为企业架构转型提供有力支持。读者可以通过本文快速了解传统企业中台建设的思路,以及DDD、中台和微服务之间的关系,为企业架构转型提供有力支持。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《DDD 实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(37)

  • 最新
  • 精选
  • 肖大保健
    我们做的跨境物流下单系统,涉及到用户,商品,支付,订单一些服务,用户,商品,支付相当于通用中台,订单这一块我有点矛盾,不知该归于核心还是通用,订单有,数据流的一些扭转,其他服务都是服务于订单,订单有核心的条件,但是从另外一方面讲,用户增删查改,这些操作订单,感觉也是比较通用型的,我该如何划分出核心中台

    作者回复: 订单可能既是通用中台,又是核心中台,个人感觉订单在电商领域偏通用多一些,它就是一个很常见的公共能力中台。其实还是要看企业的战略,订单对电商企业太常见了,应该不会给企业带来太大的核心竞争力吧,除非这种订单模式是跟其它企业不太一样,而这种能力可以给公司带来非常大的优势。划分核心中台要看你的企业核心竞争力是否在这个领域?

    2019-11-16
    6
    24
  • 钱晟龙🐲龍🐉
    用户管理+用户组织架构管理+认证&鉴权,我们都做到一个微服务里面了~~, 这样看来可以拆3个出来 =。= 不过那样拆得太细的话,程序员写代码快速迭代期,项目来回切换发布,挺痛苦。 前后分离一个repository 一个前端部署, 用户sso单点登录一个api层服务 一个部署, 服务层用一个服务把三种领域包圆了。 老师怎么看这个问题,太细了会不会反而让系统变得维护时间变长。

    作者回复: 其实在不具备微服务的自动化运维条件的时候,不建议你拆的太细,你可以按照DDD的设计思想,做好微服务内部聚合之间的解耦,等运维条件具备后再拆分。其实这些聚合运行在同样一个微服务内部也是没有关系的,但是你要做好各种依赖的解耦,避免等你想拆的时候因为耦合度过高拆起来困难。

    2020-02-22
    3
    13
  • hunter
    对照着图看,感觉中台和微服务没啥区别,感觉中台就是整合了通用微服务

    作者回复: 中台是业务概念,很多同类功能的集合。微服务是这些功能的实现。差异还是挺大的。

    2019-11-05
    3
    7
  • 若水
    老师,我想咨询一下,画领域驱动设计图一般用什么样的工具

    作者回复: 你说的设计图不知道是指哪类设计图。 DDD似乎还没有什么太好的用于设计的工具,有的话也就是UML之类的工具,很多工具用的也不是特顺手。DDD还缺少一些自动化的代码生成工具以及设计工具,这是它的短板。 我作图一般用visio,费点劲,但是可以自由发挥。

    2019-11-04
    4
    7
  • 阿玛铭
    欧老师好,我在搞一个DDD代码目录结构规范。大概做法:1. 列出DDD的术语表 2. 规定resources目录和包目录下的结构。3.拿一个子子域作为示例给出完整的目录结构。 这件事工作量比较小,但我觉得比较有必要,不建立可执行的规范后面代码管理必然走向混乱。还有就是我担心有一些考虑不周到的地方,这块有可以提供的一些参考吗?

    作者回复: 后面有一节专门讲代码目录。

    2019-11-05
    4
    5
  • 发飙的蜗牛
    感觉讲的有点抽象,没有相关经验有些理解不了,DDD讲个人觉得要循序渐进,还没讲到如何使用DDD去落地微服务,就讲到中台微服务之间的关系这些了,跳跃有点大。

    作者回复: 中台跟DDD的战略设计比较接近,所以从这个角度出发,就先讲了。后面实战的技术部分跟微服务设计有比较大的相关性。

    2020-02-24
    2
    3
  • Kian.Lee
    中台的业务模型和 DDD 的领域模型,我个人觉得只是两种设计思想对同一事物的不同描述,两者都是应对复杂软件系统的构建方法论。

    作者回复: 是的。 据说阿里中台业务建模时,有些采用的就是DDD的设计方法。

    2019-11-04
    3
  • 我们现在的系统建设是按照中台的目标建设的全流程的子服务,也就是各玩各的,服务之间几乎无交互,被新的CTO说的一文不值

    作者回复: 中台内的服务应该遵循单一职责原则的。在业务方面,我们需要在前台将这些服务组合和编排起来,形成企业级的业务流程。在数据方面,通过数据中台将各个单一职责的业务中台的数据汇总,加工,并对前台提供统一的服务。所以在进行中台设计时,离不开前中后台的协同设计。

    2020-11-06
    1
  • zygfengyuwuzu
    这一讲彻底搞明白了DDD,中台和微服务的关系了

    作者回复: 很好!

    2020-10-24
    1
  • 如水
    一个领域的服务,还需要分前台与管理后台吗?

    作者回复: 微服务的领域层的业务逻辑需要面向前端和基础资源进行解耦,将它们进行分层主要是为了适配和解耦。 适配能力分为主动适配和被动适配。主动适配主要实现外部用户、网页、批处理和自动化测试等对内层业务逻辑访问适配。被动适配主要是实现核心业务逻辑对基础资源访问的适配,比如数据库、缓存、文件系统和消息中间件等。 主动适配主要是通过用户接口层。用户接口层的主要服务形态是Facade接口服务。Facade接口服务分为接口和实现两个部分,完成服务定向。通过assembler组装器,完成DO与DTO数据的转换和组装,完成前端应用与应用层数据的转换和交换。 被动适配主要通过基础层的仓储来实现,领域逻辑面向接口编程,实现依赖倒置。仓储服务包括仓储接口和仓储实现两部分。仓储接口服务可以供应用层或者领域层服务或方法调用。仓储实现服务完成领域对象的持久化或提供数据初始化所需要的PO数据。

    2020-08-29
    1
收起评论
显示
设置
留言
37
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部