首页  软件  游戏  图书  电影  电视剧

请输入您要查询的图书:

 

图书 悟道领域驱动设计
内容
内容推荐
本书系统介绍领域驱动设计的理论知识与实践方法,不仅讲解领域驱动设计的战术设计(如实体、值对象、聚合、聚合根、领域服务、领域事件等)、战略设计(如限界上下文、上下文映射、子域等)、领域建模等理论知识,还探讨领域驱动设计的应用架构、类型变化链、一致性、CQRS、事件溯源、编码指南、架构可视化(基于C4模型)等工程实践,探索如何将领域驱动设计与当前业界流行的开发方法(如低代码、敏捷开发、测试驱动开发等)融合,使领域驱动设计成为真正可落地的开发方法。本书在介绍概念时,为概念提供了代码层面的讲解,这样可以极大地降低读者对概念的理解门槛。此外,书中还提供两个热门领域的项目案例――开发视频直播服务和AIGC产品,帮助读者理解、掌握、应用领域驱动设计。
目录
第1 章   领域驱动设计预热 / 1
1.1   初步理解领域驱动设计 / 1
1.1.1   领域驱动设计的简史 / 1
1.1.2   领域驱动设计的基本内容 / 1
1.1.3   领域驱动设计的意义 / 3
1.1.4   领域驱动设计的困境 / 5
1.2   如何学习领域驱动设计 / 6
1.2.1   学习难点 / 6
1.2.2   学习路线 / 6
1.3   领域驱动设计常见争议探讨 / 8
1.3.1   领域驱动设计的适用范围 / 8
1.3.2   贫血模型与充血模型的选择 / 10
1.3.3   领域驱动设计落地的认知差异 / 10
1.3.4   领域驱动设计的技术选型 / 11
1.3.5   领域驱动设计与面向对象编程 / 12
1.3.6   不要过度迷信领域驱动设计 / 13
第2 章   应用架构 / 14
2.1   贫血模型和充血模型 / 14
2.1.1   对象的属性和行为 / 14
2.1.2   贫血模型 / 14
2.1.3   充血模型 / 15
2.1.4   领域驱动设计对模型的要求 / 15
2.2   经典贫血三层架构 / 16
2.2.1   解读贫血三层架构 / 16
2.2.2   贫血三层架构的优点 / 17
2.2.3   贫血三层架构的问题 / 17
2.3   DDD 常见的应用架构 / 18
2.3.1   经典的四层架构 / 18
2.3.2   端口和适配器架构 / 19
2.4   应用架构演化 / 22
2.4.1   合并数据模型 / 22
2.4.2   抽取领域模型 / 22
2.4.3   维护领域对象生命周期 / 24
2.4.4   泛化抽象 / 26
2.4.5   完整的项目结构 / 28
2.5   领域对象的生命周期 / 29
2.5.1   领域对象的生命周期介绍 / 29
2.5.2   领域对象的创建过程 / 29
2.5.3   领域对象的保存过程 / 31
2.5.4   领域对象的重建过程 / 31
2.5.5   领域对象的归档过程 / 33
2.6   应用架构的类型变化链 / 33
2.6.1   应用架构各层的对象类型 / 33
2.6.2   查询过程的类型变化 / 36
2.6.3   创建过程的类型转换 / 40
2.6.4   修改过程的类型转换 / 43
第3 章   实体和值对象 / 45
3.1   实体 / 45
3.1.1   实体的概念 / 45
3.1.2   实体的建模 / 45
3.1.3   实体的创建 / 48
3.1.4   实体的重建 / 48
3.2   值对象 / 49
3.2.1   值对象的概念 / 49
3.2.2   值对象的实现 / 49
3.2.3   值对象的建模 / 50
3.2.4   无副作用的值对象方法 / 51
3.2.5   值对象的创建 / 52
3.2.6   Domain Primitive / 53
3.3   无副作用函数 / 54
3.3.1   无副作用函数的定义 / 54
3.3.2   无副作用函数的实现 / 56
第4 章   聚合与聚合根 / 57
4.1   领域模型相关概念梳理 / 57
4.2   聚合与聚合根的定义 / 58
4.3   聚合与聚合根的作用 / 59
4.4   聚合设计的原则 / 62
4.4.1   设计小而全的聚合 / 62
4.4.2   通过专享标识引用其他聚合根 / 62
4.4.3   一个事务只更新单个聚合 / 63
4.4.4   跨聚合采用最终一致性 / 64
4.5   聚合的拆分 / 64
4.5.1   第一次拆分 / 65
4.5.2   第二次拆分 / 65
4.6   聚合根的配套组件 / 66
第5 章   Factory、Repository 和领域服务 / 67
5.1   Factory / 67
5.1.1   Factory 的定义 / 67
5.1.2   Factory 的实现 / 67
5.1.3   Factory 的职责辨析 / 68
5.2   Repository / 68
5.2.1   Repository 的定义 / 68
5.2.2   Repository 的实现 / 68
5.2.3   Repository 实战 / 69
5.3   领域服务 / 79
5.3.1   领域服务的基本概念 / 79
5.3.2   领域服务的特点 / 80
5.3.3   领域服务实战 / 80
5.3.4   领域服务与应用服务的区别 / 81
第6 章   设计模式 / 82
6.1   设计模式与领域驱动设计 / 82
6.2   责任链模式 / 82
6.2.1   责任链模式的定义 / 82
6.2.2   责任链的案例代码 / 83
6.2.3   责任链框架?模式 / 89
6.2.4   在领域驱动设计中使用责任链
6.3   策略模式 / 90
6.3.1   策略模式的定义 / 90
6.3.2   策略模式的案例代码 / 91
6.3.3   在领域驱动设计中使用策略
模式 / 92
6.4   桥接模式 / 96
6.4.1   桥接模式的定义 / 96
6.4.2   桥接模式的案例代码 / 97
6.4.3   在领域驱动设计中使用桥接
模式 / 100
6.5   规约模式 / 106
6.5.1   规约模式的定义 / 106
6.5.2   规约模式的应用场景 / 107
6.5.3   规约模式的案例代码 / 107
6.5.4   在领域驱动设计中使用规约模式 / 111
6.5.5   规约模式的使用误区 / 112
第7 章   防腐层 / 113
7.1   防腐层的概念理解 / 113
7.2   防腐层的实现方案 / 115
7.2.1   适配器模式的定义 / 115
7.2.2   适配器模式的实现 / 116
7.2.3   使用适配器模式实现防腐层 / 118
7.3   防腐层的实现要点总结 / 121
7.3.1   封装技术细节 / 121
7.3.2   尽量简单且稳定 / 121
7.3.3   入参和出参为本地上下文值对象或基本数据类型 / 122
7.3.4   将外部异常转为本地异常 / 122
7.3.5   将外部错误码转为本地异常 / 123
7.3.6   按需返回 / 123
7.3.7   不在实体和值对象中调用防腐层 / 124
第8 章   领域事件 / 126
8.1   幂等设计 / 126
8.1.1   幂等设计的定义 / 126
8.1.2   写操作的幂等性 / 126
8.1.3   幂等设计的实现方案 / 127
8.2   领域事件建模 / 130
8.2.1   领域事件的概念 / 130
8.2.2   领域事件的应用 / 131
8.2.3   领域事件的消息体 / 131
8.2.4   领域事件的建模实现 / 132
8.3   领域事件生成 / 132
8.3.1   应用层创建领域事件 / 133
8.3.2   聚合根创建领域事件 / 134
8.3.3   领域事件生成总结 / 137
8.4   领域事件发布 / 137
8.4.1   事件存储 / 137
8.4.2   可靠地发布领域事件 / 139
8.5   领域事件订阅 / 142
8.5.1   应用层 / 142
8.5.2   领域事件订阅者案例代码 / 143
第9 章   CQRS / 144
9.1   引入CQRS 的契机 / 144
9.2   CQRS 概念理解 / 145
9.3   CQRS 中的对象命名 / 146
9.4   实现CQRS / 147
9.4.1   方法级的CQRS / 147
9.4.2   相同数据源的CQRS / 148
9.4.3   异构数据源的CQRS / 151
9.5   CQRS 的优缺点 / 153
9.5.1   CQRS 的优点 / 153
9.5.2   CQRS 的缺点 / 154
第10 章   事件溯源 / 155
10.1   事件溯源概念理解 / 155
10.2   第一种事件溯源实现方案 / 157
10.2.1   整体方案介绍 / 157
10.2.2   组件调整总结 / 164
10.2.3   案例运行展示 / 167
10.3   第二种事件溯源实现方案 / 170
10.3.1   整体方案介绍 / 170
10.3.2   组件调整总结 / 172
10.3.3   案例运行展示 / 175
10.4   第三种事件溯源实现方案 / 177
10.4.1   拉链表介绍 / 177
10.4.2   整体方案介绍 / 178
10.4.3   组件调整总结 / 182
10.4.4   案例运行展示 / 182
第11 章   一致性 / 185
11.1   聚合内事务实现 / 185
11.1.1   聚合内事务的实现误区 / 185
11.1.2   聚合内事务的实现思路 / 186
11.1.3   乐观锁 / 187
11.1.4   数据库读写的性能思考 / 192
11.2   跨聚合事务实现 / 193
11.2.1   跨聚合事务的实现思路 / 193
11.2.2   二阶段提交 / 193
11.2.3   本地消息表 / 197
11.2.4   优选努力通知 / 197
11.2.5   TCC 事务方案 / 198
11.2.6   Saga 事务方案 / 207
11.2.7   跨聚合事务的方案总结 / 219
第12 章   战略设计 / 220
12.1   战略设计概述 / 220
12.1.1   战略设计的概念 / 220
12.1.2   战略设计的误区 / 221
12.2   通用语言 / 221
12.2.1   通用语言的概念 / 221
12.2.2   通用语言的构建 / 222
12.2.3   通用语言的维护 / 222
12.3   限界上下文 / 223
12.3.1   限界上下文的定义 / 223
12.3.2   上下文划分依据 / 223
12.3.3   划分限界上下文的实践经验 / 224
12.4   上下文映射 / 224
12.4.1   上下文映射的概念 / 224
12.4.2   上下文映射的类型 / 225
12.5   子域 / 227
12.5.1   子域的定义 / 227
12.5.2   子域的类型 / 227
12.5.3   子域划分 / 229
12.5.4   子域的演化 / 231
12.5.5   子域思想的应用 / 233
第13 章   领域建模 / 237
13.1   领域建模的基本理解 / 237
13.2   事件风暴法介绍 / 237
13.2.1   建模前准备 / 237
13.2.2   核心概念 / 238
13.2.3   建模过程 / 240
13.3   事件风暴法建模案例实战 / 244
13.3.1   案例描述 / 244
13.3.2   案例建模过程 / 245
第14 章   研发效能 / 252
14.1   脚手架 / 252
14.1.1   Maven Archetype 介绍 / 252
14.1.2   ddd-archetype 的使用 / 253
14.2   编码效率提升 / 260
14.2.1   DDD 编码效率遇到的困境 / 260
14.2.2   Graceful Repsonse / 260
14.2.3   代码生成器 / 266
14.2.4   对象转换工具 / 267
14.3   代码静态分析工具 / 268
14.3.1   SpotBugs / 269
14.3.2   PMD / 271
14.3.3   CheckStyle / 272
14.3.4   SonarLint / 272
14.4   低代码 / 274
14.4.1   低代码介绍 / 274
14.4.2   低代码平台核心流程 / 274
14.4.3   低代码核心技术 / 275
14.4.4   低代码反思 / 278
14.5   持续集成/ 持续交付 / 281
14.5.1   概念理解 / 281
14.5.2   实现方案 / 282
14.5.3   持续集成与领域驱动设计 / 282
第15 章   测试驱动开发 / 283
15.1   TDD 基本理解 / 283
15.2   TDD 常见的误区 / 284
15.3   TDD 技术选型 / 286
15.4   TDD 案例实战 / 287
15.4.1   奇怪的计算器 / 287
15.4.2   贫血模型三层架构的TDD 实战 / 297
15.4.3   DDD 下的TDD 实战 / 304
第16 章   敏捷开发 / 309
16.1   敏捷开发介绍 / 309
16.1.1   敏捷开发价值观 / 309
16.1.2   敏捷开发十二个原则 / 310
16.2   敏捷开发常用实践方法 / 312
16.2.1   Scrum / 312
16.2.2   看板 / 314
16.2.3   极限编程 / 315
16.3   DDD+ 敏捷开发 / 318
16.3.1   以通用语言作为互动的基础 / 318
16.3.2   从最小可行产品开始迭代 / 319
16.3.3   简化文档 / 319
16.3.4   使用子域的思想指导确定需求
优先级 / 319
16.3.5   持续反馈和改进 / 319
第17 章   架构可视化 / 320
17.1   架构可视化与C4 模型 / 320
17.1.1   系统上下文图 / 322
17.1.2   容器图 / 323
17.1.3   组件图 / 324
17.1.4   代码图 / 325
17.1.5   系统全景图 / 325
17.1.6   动态图 / 326
17.1.7   部署图 / 327
17.2   C4 模型规范和review
checklist / 329
17.2.1   C4 模型规范 / 329
17.2.2   review checklist / 329
17.3   使用文本绘制C4 架构图 / 329
17.3.1   文本绘图工具选型 / 329
17.3.2   VS Code 下C4-PlantUML 的
安装 / 330
17.3.3   IntelliJ Idea 下C4-PlantUML 的
安装 / 332
17.3.4   案例实战及C4-PlantUML 语法
介绍 / 332
17.4   使用绘图工具绘制C4 架构图 / 338
17.4.1   绘图工具的选择 / 338
17.4.2   架构图绘制实战 / 338
17.4.3   架构图绘制心得 / 342
第18 章   使用DDD 进行系统重构 / 343
18.1   系统重构的基本了解 / 343
18.2   系统重构的模式 / 343
18.2.1   修缮者模式 / 344
18.2.2   绞杀者模式 / 345
18.2.3   推翻重建模式 / 345
18.3   系统重构的基本流程 / 346
18.3.1   启动 / 346
18.3.2   规划 / 349
18.3.3   执行 / 351
18.3.4   监控 / 356
18.3.5   收尾 / 357
第19 章   布道领域驱动设计 / 358
19.1   为团队引入领域驱动设计 / 358
19.2   编码指南 / 360
19.2.1   核心概念 / 360
19.2.2   应用架构 / 361
19.2.3   事务控制 / 364
19.2.4   研发效率 / 364
19.2.5   代码质量 / 364
19.2.6   过程文档 / 364
19.3   能力成熟度模型 / 365
19.3.1   软件能力成熟度模型 / 365
19.3.2   领域驱动设计能力成熟度模型 / 365
第20 章   使用DDD 开发视频直播服务 / 367
20.1   视频直播技术介绍 / 367
20.2   视频直播服务案例介绍 / 368
20.2.1   案例背景 / 368
20.2.2   核心业务逻辑 / 369
20.2.3   技术选型 / 369
20.3   使用DDD 实现视频直播服务 / 370
20.3.1   领域建模 / 370
20.3.2   系统架构 / 371
20.3.3   代码工程初始化 / 372
20.3.4   CQRS / 372
20.3.5   ACL / 374
20.3.6   Graceful Response / 374
20.3.7   接口自动化测试 / 376
20.4   案例运行截图 / 377
20.4.1   直播间管理 / 377
20.4.2   主播管理 / 377
20.4.3   直播管理 / 378
第21 章   使用DDD 开发AIGC产品 / 382
21.1   AIGC 与DDD / 382
21.2   AIGC 案例介绍 / 382
21.2.1   案例背景 / 383
21.2.2   核心业务逻辑 / 383
21.2.3   系统架构 / 385
21.2.4   技术选型 / 385
21.3   DDD 开发AIGC 产品 / 385
21.3.1   领域建模 / 386
21.3.2   代码工程初始化 / 387
21.3.3   CQRS / 387
21.3.4   领域服务 / 388
21.3.5   ACL / 390
21.3.6   Graceful Response / 391
21.3.7   接口自动化测试 / 391
21.4   案例运行截图 / 393
21.4.1   创建日记接口 / 393
21.4.2   创建贴纸接口 / 394
21.4.3   根据贴纸生成日记正文接口 / 395
标签
缩略图
书名 悟道领域驱动设计
副书名
原作名
作者 覃玉杰
译者
编者
绘者
出版社 电子工业出版社
商品编码(ISBN) 9787121489792
开本 其他
页数 412
版次 1
装订
字数
出版时间 2024-10-01
首版时间
印刷时间 2024-10-01
正文语种
读者对象
适用范围
发行范围
发行模式 实体书
首发网站
连载网址
图书大类 教育考试-考试-计算机类
图书小类
重量
CIP核字
中图分类号 TP311.1
丛书名
印张
印次 1
出版地
整理
媒质
用纸
是否注音
影印版本
出版商国别
是否套装
著作权合同登记号
版权提供者
定价
印数
出品方
作品荣誉
主角
配角
其他角色
一句话简介
立意
作品视角
所属系列
文章进度
内容简介
作者简介
目录
文摘
安全警示 适度休息有益身心健康,请勿长期沉迷于阅读小说。
随便看

 

兰台网图书档案馆全面收录古今中外各种图书,详细介绍图书的基本信息及目录、摘要等图书资料。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/11 7:46:43