新書推薦:
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:HK$
74.8
《
思考的框架3:风靡华尔街的思维训练法
》
售價:HK$
64.9
《
被记忆的西周史(中山大学中珠学术译丛)
》
售價:HK$
151.8
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:HK$
74.8
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:HK$
185.9
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:HK$
76.8
《
世界巨变:严复的角色(王中江著作系列)
》
售價:HK$
110.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:HK$
396.0
|
編輯推薦: |
(1)作者是某大型保险公司架构师,有10余年软件架构经验,擅长DDD、中台和分布式微服务架构设计。
(2)本书为基于DDD思想的中台建设和微服务拆分与设计提供指导,给出了体系化的前、中、后台协同设计方法。
(3)注重实战,汇聚大量分布式架构的最新设计方法、思想和理念,同时包含大量的案例和代码。
(4)交互式的行文风格,文字有活力,内容不刻板,简洁易懂。
|
內容簡介: |
内容介绍
这是一部系统讲解如何基于DDD思想实现中台和微服务协同设计和落地的著作。
它将DDD、中台和微服务三者结合,一方面,它为中台的划分和领域建模提供指导,帮助企业更好地完成中台建设,实现中台的能力复用;一方面,它为微服务的拆分和设计提供指导,帮助团队提升分布式微服务的架构设计能力。给出了一套体系化的基于DDD思想的企业级前、中、后台协同设计方法。
本书注重实战,汇聚了大量分布式架构的最新设计方法、思想和理念,同时包含大量的案例和代码,是理论与实践相结合的*佳经验分享。交互式的行文风格,文字有活力,内容不刻板,简洁易懂。
本书共分为六个部分:
第壹部分 认识中台(第1~4章)内容介绍
这是一部系统讲解如何基于DDD思想实现中台和微服务协同设计和落地的著作。
它将DDD、中台和微服务三者结合,一方面,它为中台的划分和领域建模提供指导,帮助企业更好地完成中台建设,实现中台的能力复用;一方面,它为微服务的拆分和设计提供指导,帮助团队提升分布式微服务的架构设计能力。给出了一套体系化的基于DDD思想的企业级前、中、后台协同设计方法。
本书注重实战,汇聚了大量分布式架构的最新设计方法、思想和理念,同时包含大量的案例和代码,是理论与实践相结合的*佳经验分享。交互式的行文风格,文字有活力,内容不刻板,简洁易懂。
本书共分为六个部分:
第壹部分 认识中台(第1~4章)
主要从业务中台、数据中台、技术中台以及与之匹配的组织架构等多个方面分析传统企业中台转型应该具备的能力,带你初步了解DDD是如何指导中台和微服务设计,并厘清它们的协作关系。
第二部分 DDD基本原理(第5~11章)
通过浅显易懂的案例讲解DDD的核心基础知识、设计思想、原则和方法等内容,了解它们之间的协作和依赖关系,做好中台实践前的准备工作。
第三部分 中台领域建模和微服务设计(第12~19章)
首先,通过案例手把手带你用DDD方法完成中台和微服务的全流程设计,深刻理解DDD在中台领域建模和微服务设计中的步骤、方法、设计思想和价值;然后,通过一个完整案例带你了解用DDD设计方法完成领域建模与微服务设计的全流程。
第四部分 前端设计(第20~21章)
引入微前端和单元化的设计思想,通过前端微服务化和单元化设计思想,解决业务中台建设完成后前端应用仍然为单体和前后端服务集成复杂的难点。此外,还探讨了基于领域模型的单元化设计方法。
第五部分 中台设计案例(第22章)
采用自顶向下的领域建模策略,通过案例讲解中台设计的完整流程。涵盖业务领域分解、中台领域建模、微服务和微前端设计、单元化设计以及业务和数据如何融合等内容。
第六部分 总结(第23~24章)
结合作者多年的设计经验和思考,阐述单体应用向微服务架构的演进策略、如何避免陷入DDD设计的常见误区、微服务设计原则以及分布式架构下的关键设计等内容。
|
關於作者: |
欧创新
某大型保险公司架构师,拥有十多年的软件架构设计经验。热衷于DDD、中台和分布式微服务架构设计。在DDD、中台和分布式微服务架构设计方面有深厚的积累,擅长分布式微服务架构设计。
极客时间《DDD实战课》专栏作者,在InfoQ发表多篇关于DDD、中台、微服务和微前端技术实践的有深度和影响力文章。
邓頔
某大型保险公司高级工程师,全国青年岗位能手。致力于基于DDD的企业级中台微服务架构改造实践,精通前端开发相关技术栈,拥有丰富的企业级微前端实战经验。
|
目錄:
|
序1
序2 为不确定而架构
前言
绪论1
第一部分 认识中台
第1章 数字化中台初步认识与建设策略13
1.1 平台是中台吗13
1.2 中台到底是什么14
1.3 传统企业中台的建设策略15
1.4 如何实现前中后台的协同17
1.4.1 前台17
1.4.2 中台 18
1.4.3 后台 19
1.5 本章小结20
第2章 企业中台能力框架21
2.1 中台能力总体框架21
2.2 业务中台22
2.3 数据中台23
2.4 技术中台25
2.5 研发运营28
2.6 云平台29
2.7 能力聚合29
2.8 组织架构及中台建设方法30
2.9 本章小结31
第3章 微服务设计为什么要选择DDD32
3.1 软件架构的演进史32
3.2 微服务拆分和设计的困境34
3.3 为什么DDD适合微服务35
3.4 本章小结37
第4章 DDD、中台和微服务的关系39
4.1 DDD和中台的本质40
4.2 DDD、中台和微服务的协作41
4.3 如何完成中台业务建模43
4.4 本章小结46
第二部分 DDD基本原理
第5章 领域和子域:有效分解问题域49
5.1 领域的基本概念49
5.2 领域的分解过程50
5.3 子域的分类和属性52
5.4 本章小结53
第6章 限界上下文:定义领域边界的利器54
6.1 什么是通用语言54
6.2 什么是限界上下文57
6.3 进一步理解限界上下文58
6.4 限界上下文和微服务的关系59
6.5 限界上下文与子域的关系60
6.6 本章小结61
第7章 实体和值对象:领域模型的基础单元62
7.1 实体62
7.2 值对象64
7.3 实体和值对象的关系68
7.4 本章小结69
第8章 聚合和聚合根:怎样设计聚合70
8.1 聚合70
8.2 聚合根71
8.3 聚合的设计步骤73
8.4 聚合的设计原则74
8.5 聚合的设计模式75
8.5.1 仓储模式76
8.5.2 工厂模式80
8.6 本章小结81
第9章 领域事件:解耦微服务的关键83
9.1 领域事件83
9.1.1 微服务内的领域事件84
9.1.2 微服务之间的领域事件85
9.2 领域事件案例85
9.3 领域事件驱动实现机制86
9.4 领域事件运行机制89
9.5 本章小结90
第10章 DDD分层架构91
10.1 什么是DDD分层架构91
10.1.1 用户接口层92
10.1.2 应用层93
10.1.3 领域层94
10.1.4 基础层94
10.1.5 DDD分层架构的重要原则95
10.2 DDD分层架构如何推动架构演进95
10.2.1 微服务架构的演进95
10.2.2 微服务内服务的演进96
10.3 三层架构如何演进到DDD分层架构97
10.4 本章小结98
第11章 几种微服务架构模型对比分析99
11.1 洋葱架构99
11.2 六边形架构100
11.3 三种微服务架构模型的对比和分析101
11.4 从三种架构模型看中台和微服务设计103
11.4.1 中台建设要聚焦领域模型103
11.4.2 微服务要有合理的架构分层104
11.4.3 应用逻辑与基础资源的解耦105
11.5 本章小结106
第三部分 中台领域建模与微服务设计
第12章 如何用事件风暴构建领域模型109
12.1 事件风暴概述110
12.2 基于事件风暴的领域建模111
12.2.1 产品愿景分析111
12.2.2 场景分析112
12.2.3 领域建模113
12.2.4 微服务拆分与设计115
12.3 本章小结116
第13章 如何用DDD重构中台业务模型117
13.1 传统企业应用建设分析117
13.2 如何避免重复造轮子119
13.3 如何构建中台业务模型119
13.3.1 自顶向下的策略119
13.3.2 自底向上的策略120
13.4 业务模型重构过程中的领域对象126
13.5 本章小结128
第14章 如何用DDD设计微服务代码模型129
14.1 DDD分层架构与微服务代码模型129
14.2 微服务代码模型130
14.2.1 一级代码目录130
14.2.2 各层代码目录131
14.2.3 微服务总目录结构 134
14.3 本章小结135
第15章 如何保证领域模型与代码模型一致136
15.1 领域对象的整理136
15.2 从领域模型到微服务落地137
15.2.1 领域层的领域对象138
15.2.2 应用层的领域对象140
15.2.3 领域对象与代码对象的映射142
15.3 本章小结144
第16章 如何实现微服务的架构演进145
16.1 演进式架构145
16.2 我们设计的是微服务还是小单体146
16.3 微服务边界的作用147
16.4 正确理解微服务的边界149
16.5 本章小结149
第17章 服务和数据在微服务各层的协作150
17.1 服务视图150
17.1.1 服务的类型150
17.1.2 服务的调用151
17.1.3 服务的封装与组合153
17.1.4 两种分层架构的服务依赖关系155
17.2 数据视图158
17.3 本章小结160
第18章 基于DDD的微服务设计实例161
18.1 项目基本信息161
18.2 战略设计161
18.2.1 产品愿景162
18.2.2 场景分析163
18.2.3 领域建模165
18.2.4 微服务拆分166
18.3 战术设计167
18.3.1 分析微服务领域对象167
18.3.2 设计微服务代码结构171
18.4 后续的工作173
18.5 本章小结173
第19章 基于DDD的微服务代码详解174
19
|
內容試閱:
|
为何写作本书
当前基于微服务架构来构建企业级应用已成为业界趋势。微服务架构很好地实现了应用解耦,可以更好地实现应用上云,解决单体应用扩展和弹性伸缩能力不足的问题。鉴于众多互联网企业微服务架构转型后带来的成功和收益,越来越多的传统企业也开始从单体架构向微服务架构转型。但在演进的过程中,微服务到底应该怎样拆分和设计,拆多小才算合理?这已经成为业内重点关注的话题。
继阿里巴巴成功完成中台战略转型后,很多大型企业也紧随其后开启了中台数字化转型。作为中台,需要将通用的业务能力沉淀到中台业务模型,实现企业级业务能力复用。中台建设面临的首要问题是如何按照可复用原则完成企业级业务模型重构。而在中台落地时,又会面临微服务拆分和设计的问题。这两个问题一前一后,对任何企业来说都是不小的挑战。
现在市面上关于微服务开发和技术的学习资料非常多。但在中台数字化转型过程中,关于如何进行业务领域边界划分,如何完成中台领域建模实现能力复用,如何完成单体应用拆分和微服务设计,如何实现前中后台的协同设计等,可参考和借鉴的资料并不是很多,即便有一些,真正理解和实施起来也是困难重重。
中台越来越火,微服务越来越热,参与的人也越来越多,但是市面上一直没有一套体系化的理论与方法来指导中台和微服务建设。那是否有成熟的理论或方法来指导中台领域建模以及微服务拆分和设计呢?答案是肯定的,那就是DDD(Domain Driven Design,领域驱动设计)。
2003年埃里克·埃文斯(Eric Evans)出版了《领域驱动设计》,从此DDD诞生。在沉寂了十多年后,随着微服务架构的流行,DDD强势崛起,成为很多企业微服务的主流设计方法。DDD首先从业务领域入手,划分业务领域边界,采用事件风暴工作坊方法,分析并提取业务场景中的实体、值对象、聚合根、聚合、领域事件等领域对象,根据限界上下文边界构建领域模型,将领域模型作为微服务设计的输入,进而完成微服务详细设计。用DDD方法设计出来的微服务,业务和应用边界非常清晰,符合“高内聚,低耦合”的设计原则,可以轻松适应业务模型变化和微服务架构演进。
微服务与DDD的共生关系主要从两方面来体现。一方面是微服务提倡将应用进行服务化拆分,通过业务领域边界实现应用服务边界的划分。另一方面,DDD恰好提供了一种基于业务限界上下文边界来实现微服务“高内聚,低耦合”的服务构建方法。将两者合理搭配使用,研发组织可以轻松实现面向服务的设计,享受持续交付与架构演进。
DDD与微服务,乃至中台设计的结合,目前仍是一个非常新的领域。很多人可能并不清楚它们的关系,不知道该如何利用DDD来完成中台和微服务的协同设计。
基于上述背景,本书聚焦业务中台设计和建设,系统地阐述了基于DDD的中台和微服务建设的方法体系,主要包括中台业务边界划分和领域模型构建,微服务、微前端设计理念与实践,以及如何进行前中后台的协同设计和单元化设计等内容。
本书主要特点
纵观全书,本书具有以下6个显著特点。
1)深入浅出,浅显易懂。本书打破了常规采用大量理论知识堆砌来讲解DDD知识的方式,用大量场景化的案例类比和分析,带你深入理解DDD基础知识和核心设计思想,解决了DDD知识体系过于庞大而难以理解和微服务落地困难的问题。
2)结构合理,从DDD理论到微服务实践完美结合。本书从理解DDD基础理论知识和核心设计思想出发,结合多个企业级业务场景,完成了DDD全流程的领域建模和微服务设计,对服务设计与技术落地等实现细节进行了大量的示例说明。结合案例设计,完成了微服务代码的开发,并对代码实现进行了详细的代码分析和讲解,帮助你避免开发过程常见问题的发生。可以说,本书从理论中来,到实践中去,能够有效指导中台和微服务的设计和开发。
3)化繁为简,从宏观业务分析到微观技术实现面面俱到。DDD、微服务与中台三者中的任何一项,放在任何一家企业,都是一项非常庞杂且复杂度非常高的工作。本书分别从DDD设计视角和中台建设视角进行对比分析,梳理了DDD、微服务与中台三者之间的协作关系。特别强调从业务领域出发,利用DDD战略设计和战术设计方法同时指导中台领域建模和微服务设计。可以说,DDD是中台和微服务设计的最佳指导方法,而微服务则是中台的最佳技术实现,它们就是这样的铁三角协作关系。我们将三者结合,从企业领域到子域的战略设计、宏观业务领域边界划分到微服务内底层领域对象的逐级细化设计,降低软件产品建设的复杂度,实现从宏观战略到技术实现细节的无缝衔接。
4)案例翔实,建立了企业级的中台建设方法体系。本书涵盖了前台、中台和后台建设及设计的完整方法,建立了一套标准的中台领域建模和微服务设计方法及流程,可以很好地指导企业完成中台设计和微服务落地。通过大量复杂业务场景的详细案例设计和分析,将DDD、中台和微服务三者结合,以近乎手把手的方式详细介绍了中台和微服务的设计方法和步骤。在中台业务建模时,你可以利用DDD战略设计,分解业务领域,从事件风暴入手,根据限界上下文边界构建可复用的中台领域模型。在中台落地时,你可以利用DDD战术设计,根据领域模型
|
|