您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
悟道领域驱动设计
字数: 606000
装帧: 平装
出版社: 电子工业出版社
作者: 覃玉杰 著
出版日期: 2024-10-01
商品条码: 9787121489792
版次: 1
开本: 16开
页数: 412
出版年份: 2024
定价:
¥118
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书系统介绍领域驱动设计的理论知识与实践方法,不仅讲解领域驱动设计的战术设计(如实体、值对象、聚合、聚合根、领域服务、领域事件等)、战略设计(如限界上下文、上下文映射、子域等)、领域建模等理论知识,还探讨领域驱动设计的应用架构、类型变化链、一致性、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 DomainPrimitive/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 MavenArchetype介绍/252
14.1.2 ddd-archetype的使用/253
14.2 编码效率提升/260
14.2.1 DDD编码效率遇到的困境/260
14.2.2 GracefulRepsonse/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 reviewchecklist/329
17.3 使用文本绘制C4架构图/329
17.3.1 文本绘图工具选型/329
17.3.2 VSCode下C4-PlantUML的安装/330
17.3.3 IntelliJIdea下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 GracefulResponse/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 GracefulResponse/391
21.3.7 接口自动化测试/391
21.4 案例运行截图/393
21.4.1 创建日记接口/393
21.4.2 创建贴纸接口/394
21.4.3 根据贴纸生成日记正文接口/395
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网