第1部分 让领域模型发挥作用 7
第1章 汲取知识 7
有效建模的因素 12
知识汲取 13
持续学习 15
体现知识内涵的设计 17
深层模型 20
第2章 沟通和语言的使用 23
通用语言 24
大声读出模型 30
一个团队,一种语言 32
文档和图 35
用于解释的模型 41
第3章 将模型和实现相绑定 45
模型驱动设计 47
建模范型和工具支持 50
凸现主题:为什么模型对用户很关键 57
实践型的建模人员 60
第2部分 模型驱动设计的构造块 67
第4章 分离出领域 67
分层架构 68
领域层中存放着模型 75
智能用户界面反模式 76
其他类型的隔离 79
第5章 模型在软件中的表现形式 81
关联 82
实体(也称为引用对象) 89
值对象 97
服务 104
模块(也称为包) 109
建模范型 116
第6章 领域对象的生命周期 123
聚合 125
工厂 136
资源库 147
为关系型数据库设计对象 159
第7章 使用语言:扩展案例 163
货物运输系统简介 163
分离出领域:应用简介 166
区分实体和值对象 167
运输领域内的关联设计 169
聚合的边界 170
选择资源库 172
场景遍历 173
对象的创建 174
停下来进行重构:Cargo聚合的另一种设计 177
运输模型中的模块 179
引入新特性:配额检查 181
小结 186
第3部分 面向更深层理解的重构 193
第8章 突破 193
关于突破的故事 194
机会 201
着眼于根本 201
尾声:一连串的新思维 202
第9章 隐含概念显式化 205
挖掘概念 206
如何对不明显的概念建模 219
第10章 柔性设计 243
释意接口 246
无副作用函数 250
断言 255
概念轮廓 260
独立类 265
闭合操作 268
声明式设计 270
声明式风格的设计 273
攻击的角度 282
第11章 应用分析模式 293
第12章 关联设计模式和模型 309
战略(也称为策略) 311
组合 315
为什么不用FLYWEIGHT 320
第13章 面向更深层理解的重构 321
开始 321
探索团队 322
前期的技巧 323
针对开发人员的设计 324
时机 324
视危机为机会 325
第4部分 战略性设计 331
第14章 保持模型的完整性 331
限界上下文 335
持续集成 341
上下文图 344
限界上下文之间的关系 352
共享内核 354
顾客/供应商开发团队 356
追随者 361
防腐层 364
隔离方式 371
开放主机服务 374
公开发布的语言 375
盲人摸象 378
选择模型上下文的策略 381
转换 389
第15章 精炼 397
核心领域 400
扩大精炼的范围 404
通用子域 406
领域愿景声明 415
“高亮”的核心 417
内聚机制 422
按照声明式风格精炼 426
隔离的核心 428
抽象核心 435
深层模型的精炼 436
选择重构的目标 437
第16章 大规模结构 439
循序渐进 444
系统隐喻 447
职责分层 450
知识层级 465
可插拔的组件框架 475
结构的约束 480
重构到合适的结构 481
第17章 综合性战略应用 485
大规模结构和限界上下文结合 485
大规模结构和精炼结合 488
先评估 490
谁来制定策略 490
战略性设计决策的6个要点 492
总结 507
附录:书中的模式 507
词汇表 511
参考资料 515
图片说明 517
索引 519