《官网领域驱动设计业务建模与架构实践王红亮领域驱动设计概念原则实践方法书籍》[81M]百度网盘|pdf下载|亲测有效
《官网领域驱动设计业务建模与架构实践王红亮领域驱动设计概念原则实践方法书籍》[81M]百度网盘|pdf下载|亲测有效

官网领域驱动设计业务建模与架构实践王红亮领域驱动设计概念原则实践方法书籍 pdf下载

出版社 机械工业出版社官方旗舰店
出版年 2025
页数 390页
装帧 精装
评分 8.8(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供官网领域驱动设计业务建模与架构实践王红亮领域驱动设计概念原则实践方法书籍电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

6f4d42192e1fff25.jpg7e29aba89c34375c.jpg







内容简介

这是一本从业务和架构视角讲解DDD的基本原则、底层逻辑、落地难点、落地方法和进阶技巧的实战性著作。

DDD的理论体系复杂,学习和实践门槛较高,已有的关于DDD的著作或多或少存在理论描述难理解、案例示范难落地等问题,阻碍了DDD在实践中的应用。本书作者有20余年的软件研发经验,对DDD有深刻的理解,深谙DDD实践过程中的痛点,他在这本书中高屋建瓴、化繁为简,让读者有拨云见雾之感。

理论部分(第1~3章)

从软件工程的基本思想出发,首先分析了DDD产生的原因,并由此推论出DDD的基本原则,这些内容是学习本书的基础;紧接着分析了DDD落地的难点,帮助读者扫清障碍;然后提炼出了DDD的成熟度模型,包括DDD的战略、战术和衡量指标。这些内容极具针对性和独创性,是研发团队必须掌握的,也是目前同类书中很少讲的。

实战部分(第4~10章)

从业务建模和架构的角度切入,首先用搭积木的方式讲解和演示了DDD项目由简易到复杂的落地过程,包含大量的业务建模场景和案例,涉及如何应用通用语言、如何建模领域逻辑、如何应用上下文和子域切分系统以及如何保持语言、模型、代码的一致性等重要内容;然后讲解了如何将各种设计模式应用到DDD中,以及如何设计出能让DDD更好落地的系统架构。这些内容兼具实操性和思想性,充满经验和智慧,在同类书中同样也不多见。






目 录 Contents 

前言

第1章 DDD的基本原则与价值分析1

1.1 DDD的初心1

1.1.1 软件项目成败的关键1

1.1.2 两个亟须验证的事实3

1.2 DDD的基本原则6

1.2.1 DDD的两个基本原则7

1.2.2 原则的底层逻辑10

1.3 DDD的价值分析12

1.3.1 复杂度控制12

1.3.2 架构原则16

1.3.3 团队协作20

1.4 关于DDD原则的案例23

第2章 DDD落地难点分析35

2.1 DDD的适用范围35

2.1.1 领域特性36

2.1.2 团队成熟度38

2.1.3 适用性评分表39

2.2 5个常见误区39

2.3 文化的变革44

2.3.1 领域专家的边界44

2.3.2 设计师的锤子46

2.3.3 开发人员的轮子47

2.4 团队的挑战48

2.4.1 管理者的责任48

2.4.2 开发团队的意识和技能50

2.4.3 角色重新定位51

2.5 测试、过程和架构的最佳搭档52

2.5.1 测试的最佳搭档:TDD和

   单元测试52

2.5.2 过程的最佳搭档:敏捷过程

   和DevOps54

2.5.3 架构的最佳搭档:六边形、

   洋葱和分层架构56

第3章 DDD成熟度模型59

3.1 成熟度模型的目的及特殊性59

3.2 5个度量维度60

3.3 3级成熟度模型63

第4章 模型的要素—用例、

    视图和构造块68

4.1 模型的构建步骤68

4.2 模型的场景:用例69

4.2.1 用例的定义69

4.2.2 用例的目的70

4.2.3 发现用例72

4.2.4 用例的编写73

4.3 模型的数据:类图76

4.3.1 属性77

4.3.2 方法78

4.3.3 注释、约束和关键字79

4.3.4 依赖和限定关联80

4.3.5 聚合与组合82

4.4 模型的行为:交互图83

4.4.1 时序图84

4.4.2 协作图89

4.4.3 交互图与类图的关系91

4.5 模型的变化:操作契约92

4.5.1 作用93

4.5.2 后置条件94

4.5.3 准则94

4.6 模型的构造块:实体、值对象、

   领域服务95

4.6.1 实体95

4.6.2 值对象99

4.6.3 实体与值对象的比较103

4.6.4 领域服务105

第5章 从语言到模型—基础

  模型构建108

5.1 设计目标108

5.2 设计之前的准备工作110

5.2.1 语言110

5.2.2 角色111

5.2.3 沟通111

5.2.4 方法113

5.2.5 工具113

5.2.6 时间115

5.3 领域模型的构建115

5.3.1 发掘领域概念116

5.3.2 创建关联118

5.3.3 定义属性123

5.3.4 分配职责125

5.3.5 触发事件128

5.3.6 处理异常134

5.4 典型的领域逻辑建模137

5.4.1 规则与约束137

5.4.2 流程与分支140

5.4.3 验证与筛选142

5.4.4 算法与计算144

5.4.5 时间与空间146

5.4.6 有状态与无状态149

5.4.7 同步与异步150

5.5 典型案例151

5.5.1 案例1:在线购物网站152

5.5.2 案例2:汽车租赁系统153

5.5.3 案例3:银行系统154

第6章 精炼模型—深入模型设计156

6.1 模型引力场:聚合156

6.1.1 聚合的定义及作用157

6.1.2 聚合规则158

6.1.3 聚合设计法则158

6.1.4 实现方法161

6.2 模型装配线:工厂163

6.2.1 为什么需要工厂163

6.2.2 厂址选择169

6.3 模型货架:存储库171

6.3.1 为什么需要存储库171

6.3.2 存储库接口175

6.3.3 存储库与工厂的区别176

6.3.4 存储库与数据访问对象的区别177

6.3.5 存储库实现的注意事项177

6.4 富二代的烦恼:基类与继承178

6.4.1 抽象、泛化与DDD178

6.4.2 通用语言与基类179

6.4.3 为多态去继承181

6.4.4 合格的子类、自然的继承关系:

   Liskov原则182

6.4.5 抽象类与接口的选择183

6.5 模型质量:优秀的开发组件 184

6.5.1 精心设计领域模型的特征184

6.5.2 模型设计的基本原则186

6.5.3 为扩展性而设计188

第7章 分而治之—上下文、

    模块和子域191

7.1 分离用例、模型和团队:上下文191

7.1.1 什么是上下文191

7.1.2 为什么需要上下文193

7.1.3 上下文的识别方法195

7.1.4 识别上下文的步骤199

7.1.5 同一上下文工作法200

7.1.6 跨上下文团队工作法202

7.2 重用性和稳定性:模块207

7.2.1 包的内聚性原则207

7.2.2 包的耦合性原则209

7.3 区别特殊性与一般性:子域211

7.3.1 核心竞争力:核心域211

7.3.2 周边业务:支撑域215

7.3.3 通用能力:通用域215

7.4 上下文、模块和子域之间的关系216

7.4.1 上下文和子域的关系216

7.4.2 上下文和模块的关系216

7.4.3 子域和模块的关系217

第8章 关键细节—从模型到代码218

8.1 DDD 中的代码要求218

8.2 忠于模型:从模型到代码219

8.2.1 领域相关概念及对应实现219

8.2.2 一个逻辑匹配多种实现227

8.3 表达通用语言:命名的力量229

8.3.1 方法命名:揭示业务而非实现229

8.3.2 属性和变量命名:可读性231

8.3.3 其他类型的命名233

8.3.4 通用命名规则234

8.4 健壮性与灵活性:决定成败的

   细节236

8.4.1 优先使用无状态和无副

   作用函数236

8.4.2 优先使用值对象237

8.4.3 查询函数和修改函数分离241

8.4.4 增加参数和减少依赖 242

8.4.5 移除标记参数244

8.4.6 聚合根私有化属性设置函数245

8.4.7 以多态取代条件表达式245

8.4.8 以工厂取代构造函数248

8.4.9 保持对象完整性与通过标识

   引用对象250

8.4.10 引入断言252

8.4.11 闭环操作函数253

8.5 良好的注释:完善代码表达254

8.5.1 注释的原则254

8.5.2 注释的目的254

8.5.3 注释的技巧256

8.5.4 领域模型注释法256

8.6 完备的单元测试:即时验收

   领域逻辑258

8.6.1 价值258

8.6.2 测试用例设计261

8.6.3 FIRST原则265

第9章 智慧模型—将设计模式

    应用于模型设计267

9.1 算法装配器:策略模式268

9.1.1 应用场景268

9.1.2 共性特征269

9.1.3 领域模型270

9.1.4 实现代码271

9.1.5 收益分析275

9.1.6 建模步骤276

9.2 只见树木,不见森林:组合模式276

9.2.1 应用场景276

9.2.2 共性特征277

9.2.3 领域模型278

9.2.4 实现代码278

9.2.5 收益分析281

9.2.6 建模步骤281

9.3 用户的操作面板:门面模式281

9.3.1 应用场景281

9.3.2 共性特征282

9.3.3 领域模型282

9.3.4 实现代码283

9.3.5 收益分析284

9.3.6 建模步骤284

9.4 为工作流建模:模板模式284

9.4.1 应用场景284

9.4.2 共性特征285

9.4.3 领域模型285

9.4.4 实现代码286

9.4.5 收益分析288

9.4.6 建模步骤289

9.5 全局协调人:单例模式289

9.5.1 应用场景289

9.5.2 共性特征290

9.5.3 领域模型290

9.5.4 实现代码291

9.5.5 收益分析292

9.5.6 建模步骤292

9.6 消息传播者:观察者模式293

9.6.1 应用场景293

9.6.2 共性特征293

9.6.3 领域模型294

9.6.4 实现代码294

9.6.5 收益分析297

9.6.6 建模步骤298

9.7 陌生人的翻译:适配器模式298

9.7.1 应用场景298

9.7.2 共性特征299

9.7.3 领域模型299

9.7.4 实现代码300

9.7.5 收益分析301

9.7.6 建模步骤302

9.8 完美的替身:代理者模式302

9.8.1 应用场景302

9.8.2 共性特征304

9.8.3 领域模型304

9.8.4 实现代码304

9.8.5 收益分析306

9.8.6 建模步骤306

9.9 互补的伙伴:访问者模式307

9.9.1 应用场景307

9.9.2 共性特征308

9.9.3 领域模型308

9.9.4 实现代码309

9.9.5 收益分析313

9.9.6 建模步骤313

9.10 状态决定表现:状态模式314

9.10.1 应用场景314

9.10.2 共性特征314

9.10.3 领域模型315

9.10.4 实现代码316

9.10.5 收益分析320

9.10.6 建模步骤321

9.11 分工流水线:职责链模式321

9.11.1 应用场景321

9.11.2 共性特征322

9.11.3 领域模型322

9.11.4 实现代码323

9.11.5 收益分析326

9.11.6 建模步骤326

9.12 组装搭配车间:桥接模式326

9.12.1 应用场景326

9.12.2 共性特征327

9.12.3 领域模型327

9.12.4 实现代码328

9.12.5 收益分析333

9.12.6 建模步骤334

9.13 模式场景对应表334

第10章 和谐生态—DDD 与

     系统架构338

10.1 DDD和架构生态338

10.1.1 DDD 对企业架构的价值338

10.1.2 DDD需要什么样的架构339

10.1.3 上下文、子域与架构的关系 340

10.2 天作之合:六边形架构342

10.2.1 六边形架构解析342

10.2.2 六边形架构的设计思想346

10.2.3 六边形架构的测试策略347

10.2.4 六边形架构与其他相关

    架构的比较348

10.3 完美伴侣:分层架构352

10.3.1 基础设施为底座:传统

    分层架构352

10.3.2 依赖反转:依赖倒置架构353

10.3.3 高级课题:细分领域层356

10.4 给子域赋能:微服务架构357