网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 复杂软件设计之道 领域驱动设计全面解析与实战
分类 教育考试-考试-计算机类
作者 彭晨阳 编
出版社 机械工业出版社
下载
简介
作者简介
彭晨阳(板桥/banq),解道(Jdon)网站创建者。具有近30年的软件系统设计与开发经验,并专注于DDD 10余年。
曾为近百家企业提供培训咨询服务,包含华为、阿里等有名企业。
擅长系统架构设计与实现,熟悉各种设计模式与框架,以及并发编程和微服务、区块链等分布式系统与事务的设计实现。
目录
前言
章领域驱动设计基础1
1.1领域驱动设计的起源与发展1
1.1.1程序员为难之处1
1.1.2技术负债与软件质量3
1.1.3ER数据建模与面向对象建模4
1.1.4DDD的诞生和发展6
1.2领域驱动设计的特点9
1.2.1发现和理解问题10
1.2.2领域即边界13
1.2.3解决复杂性15
1.2.4新的数据结构设计方式17
1.2.5需要注重产品的程序员18
1.3领域驱动设计的难点20
1.3.1业务策略和业务规则21
1.3.2统一语言与有界上下文25
1.3.3领域模型的提炼26
1.4领域驱动设计的应用场景29
1.4.1哪些应用不适合?30
1.4.2适合微服务架构30
第2章领域驱动战略设计31
2.1有界上下文31
2.1.1统一语言:统一项目中的交流语言32
2.1.2如何发现有界上下文和统一语言?34
2.1.3有界上下文之间的关系36
2.1.4核心子域、支持子域与通用子域37
2.1.5实例解析:电费结算系统38
2.2按时间线发现有界上下文40
2.2.1UML时序图40
2.2.2实例解析:电商领域之商品管理上下文41
2.3通过领域故事或流程发现有界上下文45
2.4通过事件风暴会议发现有界上下文48
2.4.1领域事件50
2.4.2命令51
2.4.3事件风暴建模法53
2.4.4实例解析:一个典型的事件风暴建模议程56
2.5业务平台与中台设计60
2.6总结与拓展62
第3章聚合设计68
3.1聚合设计的概念68
3.1.1高聚合低关联71
3.1.2聚合的逻辑一致性74
3.2设计聚合的几种方法77
3.2.1改变主谓宾顺序78
3.2.2根据领域事件设计聚合79
3.2.3根据单一职责设计聚合81
3.2.4按时间边界设计聚合83
3.2.5通过事务边界设计聚合87
3.2.6通过ER模型设计聚合89
3.3实例解析:订单系统中的聚合设计95
3.3.1信息拥有者模式97
3.3.2引用模式99
3.3.3奥卡姆剃刀原理100
3.3.4控制者模式101
3.3.5订单状态集中控制实现103
3.3.6做什么和怎么做的分离106
3.3.7在服务中验证聚合107
3.3.8SpringBoot实现110
3.4总结与拓展115
第4章实体和值对象121
4.1失血/贫血模型121
4.2实体124
4.2.1实体的标识125
4.2.2实体的设计126
4.2.3实体对象的创建128
4.3值对象131
4.3.1值对象与实体的区别134
4.3.2用值对象重构138
4.4领域服务140
4.4.1领域服务的特征141
4.4.2领域服务与应用服务144
4.5仓储147
4.5.1自行实现仓储148
4.5.2结合Builder模式实现仓储151
4.6充血模型的设计原则154
4.6.1将公有setter方法变为私有155
4.6.2注重对象的构建157
4.7实例解析:论坛系统实体和值对象设计159
4.7.1聚合根实体是什么?161
4.7.2值对象的设计164
4.7.3状态设计167
4.7.4发帖功能实现170
4.7.5双聚合根173
4.7.6分配职责行为176
4.7.7构建对象必须遵循唯一性179
4.8总结与拓展184
第5章CQRS架构186
5.1DDD架构介绍187
5.1.1MVC模式187
5.1.2传统三层架构188
5.1.3传统DDD分层架构191
5.1.4清洁架构194
5.1.5六边形架构198
5.1.6垂直切片架构201
5.2CQRS架构的特点203
5.3命令和查询分离205
5.3.1查询模型实现206
5.3.2命令模型实现210
5.3.3Command对象212
5.3.4命令和查询的协作216
5.4不同的数据访问方式219
5.4.1查询端存储实现220
5.4.2规格模式221
5.4.3命令与查询的同步224
5.5CAP定理226
5.6领域事件实现数据同步227
5.7实例解析:使用Axon框架实现CQRS231
5.7.1命令端实现233
5.7.2查询端实现236
5.8总结与拓展237
第6章事件溯源241
6.1什么是事件溯源?242
6.2基于事件溯源的聚合根设计249
6.2.1用事件替代状态249
6.2.2活动与事件253
6.3事件溯源的优点260
6.3.1替代分布式事务261
6.3.2事件日志的顺序性263
6.3.3基于事件日志的消息系统265
6.4微服务中的分布式事务实现266
6.4.1引入Saga模式267
6.4.2Saga分布式事务原理267
6.4.3实例解析:账户转账271
6.5使用ApacheKafka实现事件溯源275
6.6投射模式280
6.7更改数据捕获(CDC)282
6.8总结与拓展285
第7章货物运输系统290
7.1领域描述290
7.2从流程中发现领域事件294
7.2.1受理流程295
7.2.2作业流程298
7.3概念挖掘301
7.3.1划分有界上下文302
7.3.2预订受理上下文304
7.3.3运输作业上下文306
7.4预订受理的聚合设计309
7.4.1聚合的发现和命名309
7.4.2聚合设计313
7.4.3状态设计316
7.4.4命令与事件设计317
7.4.5代码实现320
7.4.6设计和实现的差异325
7.5运输作业的聚合设计327
7.5.1命令、事件和聚合328
7.5.2有界上下文映射331
7.5.3聚合重构设计334
7.6总结与拓展336
内容推荐
领域驱动设计简称DDD,《复杂软件设计之道:领域驱动设计全面解析与实战》前6章全面解析了DDD的分析方法和技术架构,包括领域驱动设计基础、领域驱动战略设计(有界上下文和统一语言)、聚合设计、实体和值对象、CQRS架构和事件溯源,第7章使用经典的货物运输系统案例进行了完整、详细的综合演示。
《复杂软件设计之道:领域驱动设计全面解析与实战》同时引入了DDD的*新发展成果,如事件风暴建模,并以此建模方式替代传统的DDD建模方式讲解了多个案例。还涉及大量软件系统实现相关的技术和架构,读者在学习DDD的同时,也可以掌握这些技术、架构在DDD实现中的灵活应用。
另外,每个概念或方法的讲解过程都穿插了具体实例,以方便读者结合实例进行学习;第2~7章每章*后都有总结与拓展,将本章涉及的案例和知识进行总结,并引入靠前DDD专家的心得经验,试图告诉读者一条DDD实战中行之有效的途径。
《复杂软件设计之道:领域驱动设计全面解析与实战》主要面向拥有一定实践经验的软件产品经理、领域专家、软件设计开发相关从业人员,相关初级从业者也可阅读本书。
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/20 22:13:18