在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例Clojure → 领域驱动设计:软件核心复杂性应对之道

领域驱动设计:软件核心复杂性应对之道

Clojure

下载此实例
  • 开发语言:Others
  • 实例大小:59.12M
  • 下载次数:17
  • 浏览次数:66
  • 发布时间:2023-01-12
  • 实例类别:Clojure
  • 发 布 人:小白的犬
  • 文件格式:.pdf
  • 所需积分:2

实例介绍

【实例简介】领域驱动设计DDD:软件核心复杂性应对之道

【实例截图】

【核心代码】
目 录
第一部分 运用领域模型
第 1 章 消化知识 ................................................ 5
1.1 有效建模的要素 ...................................... 9
1.2 知识消化 ................................................ 10
1.3 持续学习 ................................................ 11
1.4 知识丰富的设计 .................................... 12
1.5 深层模型 ................................................ 15
第 2 章 交流与语言的使用 ............................. 16
2.1 模式:U BIQUITOUS L ANGUAGE .............. 16
2.2 “大声地”建模 ...................................... 21
2.3 一个团队,一种语言 ............................ 22
2.4 文档和图 ................................................ 24
2.4.1 书面设计文档 ............................ 25
2.4.2 完全依赖可执行代码的情况 ..... 27
2.5 解释性模型 ............................................ 27
第 3 章 绑定模型和实现 ................................. 29
3.1 模式:M ODEL -D RIVEN D ESIGN .............. 30
3.2 建模范式和工具支持 ............................ 32
3.3 揭示主旨:为什么模型对用户至
关重要 .................................................... 38
3.4 模式:H ANDS -O N M ODELER .................. 39
第二部分 模型驱动设计的构造块
第 4 章 分离领域 .............................................. 43
4.1 模式:L AYERED A RCHITECTURE ............ 43
4.1.1 将各层关联起来 ........................ 46
4.1.2 架构框架 .................................... 47
4.2 领域层是模型的精髓 ............................ 48
4.3 模式:T HE S MART UI
“反模式” ............................................ 48
4.4 其他分离方式 ........................................ 50
第 5 章 软件中所表示的模型 ........................ 51
5.1 关联 ........................................................ 52
5.2 模式:E NTITY (又称为
R EFERENCE O BJECT ) ............................. 56
5.2.1 E NTITY 建模 ................................ 59
5.2.2 设计标识操作 ............................ 60
5.3 模式:V ALUE O BJECT ............................ 62
5.3.1 设计 V ALUE O BJECT ................... 64
5.3.2 设计包含 V ALUE O BJECT 的
关联 ............................................ 67
5.4 模式:S ERVICE ....................................... 67
5.4.1 S ERVICE 与孤立的领域层 ........... 69
5.4.2 粒度 ............................................ 70
5.4.3 对 S ERVICE 的访问 ..................... 70
5.5 模式:M ODULE (也称为 P ACKAGE ) .... 71
5.5.1 敏捷的 M ODULE ......................... 72
5.5.2 通过基础设施打包时存在的
隐患 ............................................ 73
5.6 建模范式 ................................................ 75
5.6.1 对象范式流行的原因 ................. 76
5.6.2 对象世界中的非对象 ................. 77
5.6.3 在混合范式中坚持使用
M ODEL -D RIVEN D ESIGN .............. 78
第 6 章 领域对象的生命周期 ........................ 80
6.1 模式:A GGREGATE ................................. 81
2 目 录
6.2 模式:F ACTORY ..................................... 89
6.2.1 选择 F ACTORY 及其应用位置 .... 91
6.2.2 有些情况下只需使用构造
函数 ............................................ 93
6.2.3 接口的设计 ................................ 94
6.2.4 固定规则的相关逻辑应放置在
哪里 ............................................ 94
6.2.5 E NTITY F ACTORY 与 V ALUE
O BJECT F ACTORY ........................ 95
6.2.6 重建已存储的对象 .................... 95
6.3 模式:R EPOSITORY ................................ 97
6.3.1 R EPOSITORY 的查询 .................. 101
6.3.2 客户代码可以忽略 R EPOSITORY 的
实现,但开发人员不能忽略 ... 102
6.3.3 R EPOSITORY 的实现 .................. 103
6.3.4 在框架内工作 .......................... 104
6.3.5 R EPOSITORY 与 F ACTORY 的
关系 .......................................... 104
6.4 为关系数据库设计对象 ...................... 106
第 7 章 使用语言:一个扩展的示例 ......... 108
7.1 货物运输系统简介 .............................. 108
7.2 隔离领域:引入应用层 ...................... 110
7.3 将 E NTITY 和 V ALUE O BJECT 区别开 ... 110
7.4 设计运输领域中的关联 ...................... 112
7.5 A GGREGATE 边界 .................................. 113
7.6 选择 R EPOSITORY ................................. 113
7.7 场景走查 .............................................. 115
7.7.1 应用程序特性举例:更改
Cargo 的目的地 ........................ 115
7.7.2 应用程序特性举例:重复
业务 .......................................... 116
7.8 对象的创建 .......................................... 116
7.8.1 Cargo的 F ACTORY 和构造
函数 .......................................... 116
7.8.2 添加 Handling Event ................ 117
7.9 停一下,重构:Cargo A GGREGATE 的
另一种设计 .......................................... 118
7.10 运输模型中的M ODULE ...................... 120
7.11 引入新特性:配额检查 .................... 122
7.11.1 连接两个系统 ...................... 123
7.11.2 进一步完善模型:划分
业务 ...................................... 124
7.11.3 性能优化 .............................. 125
7.12 小结 .................................................... 126
第三部分 通过重构来加深理解
第 8 章 突破 ..................................................... 131
8.1 一个关于突破的故事 .......................... 131
8.1.1 华而不实的模型 ...................... 132
8.1.2 突破 .......................................... 133
8.1.3 更深层模型 .............................. 135
8.1.4 冷静决策 .................................. 137
8.1.5 成果 .......................................... 138
8.2 机遇 ...................................................... 138
8.3 关注根本 .............................................. 138
8.4 后记:越来越多的新理解 .................. 139
第 9 章 将隐式概念转变为显式概念 ......... 140
9.1 概念挖掘 .............................................. 140
9.1.1 倾听语言 .................................. 140
9.1.2 检查不足之处 .......................... 144
9.1.3 思考矛盾之处 .......................... 148
9.1.4 查阅书籍 .................................. 148
9.1.5 尝试,再尝试 .......................... 150
9.2 如何为那些不太明显的概念建模 ...... 150
9.2.1 显式的约束 .............................. 151
9.2.2 将过程建模为领域对象 ........... 153
9.2.3 模式:S PECIFICATION ............... 154
9.2.4 S PECIFICATION 的应用和实现 .... 156
第 10 章 柔 性 设 计 ...................................... 168
10.1 模式:I NTENTION -R EVEALING
I NTERFACES ......................................... 169
10.2 模式:S IDE -E FFECT -F REE F UNCTION .... 173
10.3 模式:A SSERTION .............................. 177
10.4 模式:C ONCEPTUAL C ONTOUR ........... 181
10.5 模式:S TANDALONE C LASS ................ 184
10.6 模式:C LOSURE O F O PERATION ......... 186
10.7 声明式设计 ........................................ 188
目 录 3
1
2
4
6
9
5
3
7
8
10.8 声明式设计风格 ................................ 190
10.9 切入问题的角度 ................................ 197
10.9.1 分割子领域 .......................... 197
10.9.2 尽可能利用已有的形式 ...... 198
第 11 章 应用分析模式 ................................. 206
第 12 章 将设计模式应用于模型 ............... 217
12.1 模式:S TRATEGY (也称为
P OLICY ) ............................................ 218
12.2 模式:C OMPOSITE .............................. 221
12.3 为什么没有介绍 F LYWEIGHT ............. 226
第 13 章 通过重构得到更深层的理解 ....... 227
13.1 开始重构 ............................................ 227
13.2 探索团队 ............................................ 227
13.3 借鉴先前的经验 ................................ 228
13.4 针对开发人员的设计 ........................ 229
13.5 重构的时机 ........................................ 229
13.6 危机就是机遇 .................................... 230
第四部分 战略设计
第 14 章 保持模型的完整性 ........................ 233
14.1 模式:B OUNDED C ONTEXT ................. 235
14.2 模式:C ONTINUOUS I NTEGRATION ...... 239
14.3 模式:C ONTEXT M AP ......................... 241
14.3.1 测试 C ONTEXT 的边界 .......... 247
14.3.2 C ONTEXT M AP 的组织和
文档化 .................................. 247
14.4 B OUNDED C ONTEXT 之间的关系 ........ 248
14.5 模式:S HARED K ERNEL ...................... 248
14.6 模式:C USTOMER /S UPPLIER
D EVELOPMENT T EAM ........................... 250
14.7 模式:C ONFORMIST ............................ 253
14.8 模式:A NTICORRUPTION L AYER ......... 255
14.8.1 设计 A NTICORRUPTION L AYER
的接口 .................................. 256
14.8.2 实现 A NTICORRUPTION
L AYER ................................... 256
14.8.3 一个关于防御的故事 .......... 259
14.9 模式:S EPARATE W AY ....................... 260
14.10 模式:O PEN H OST S ERVICE .............. 261
14.11 模式:P UBLISHED L ANGUAGE .......... 262
14.12 “大象”的统一 .............................. 264
14.13 选择你的模型上下文策略 .............. 267
14.13.1 团队决策或更高层决策 ... 268
14.13.2 置身上下文中 .................. 268
14.13.3 转换边界 .......................... 268
14.13.4 接受那些我们无法更改的
事物:描述外部系统 ...... 269
14.13.5 与外部系统的关系 .......... 269
14.13.6 设计中的系统 .................. 270
14.13.7 用不同模型满足特殊
需要 .................................. 270
14.13.8 部署 .................................. 271
14.13.9 权衡 .................................. 271
14.13.10 当项目正在进行时 ........ 272
14.14 转换 .................................................. 272
14.14.1 合并 C ONTEXT :S EPARATE
W AY →S HARED K ERNEL .... 273
14.14.2 合并 C ONTEXT :S HARED
K ERNEL →C ONTINUOUS
I NTEGRATION ..................... 274
14.14.3 逐步淘汰遗留系统 .......... 275
14.14.4 O PEN H OST S ERVICE →
P UBLISHED L ANGUAGE ...... 276
第 15 章 精炼 ................................................... 277
15.1 模式:C ORE D OMAIN ......................... 278
15.1.1 选择核心 .............................. 280
15.1.2 工作的分配 .......................... 280
15.2 精炼的逐步提升 ................................ 281
15.3 模式:G ENERIC S UBDOMAIN .............. 282
15.3.1 通用不等于可重用 .............. 286
15.3.2 项目风险管理 ...................... 287
15.4 模式:D OMAIN V ISION
S TATEMENT ............................. 287
15.5 模式:H IGHLIGHTED C ORE ................. 289
15.5.1 精炼文档 .............................. 289
15.5.2 标明 C ORE ............................ 290
4 目 录
15.5.3 把精炼文档作为过程工具 .... 291
15.6 模式:C OHESIVE M ECHANISM ............ 292
15.6.1 G ENERIC S UBDOMAIN 与 C OHE -
SIVE M ECHANISM 的比较 ...... 293
15.6.2 M ECHANISM 是 C ORE D OMAIN
一部分 .................................. 294
15.7 通过精炼得到声明式风格 ................ 294
15.8 模式:S EGREGATED C ORE .................. 295
15.8.1 创建 S EGREGATED C ORE 的
代价 ...................................... 296
15.8.2 不断发展演变的团队决策 .... 296
15.9 模式:A BSTRACT C ORE ...................... 301
15.10 深层模型精炼 .................................. 302
15.11 选择重构目标 .................................. 302
第 16 章 大型结构 .......................................... 303
16.1 模式:E VOLVING O RDER .................... 306
16.2 模式:S YSTEM M ETAPHOR ................. 308
16.3 模式:R ESPONSIBILITY L AYER ........... 309
16.4 模式:K NOWLEDGE L EVEL ................. 321
16.5 模式:P LUGGABLE C OMPONENT
F RAMEWORK ....................................... 328
16.6 结构应该有一种什么样的约束 ........ 332
16.7 通过重构得到更适当的结构 ............ 333
16.7.1 最小化 ................................. 333
16.7.2 沟通和自律 .......................... 334
16.7.3 通过重构得到柔性设计 ...... 334
16.7.4 通过精炼可以减轻负担 ...... 334
第 17 章 领域驱动设计的综合运用 ........... 336
17.1 把大型结构与 B OUNDED C ONTEXT
结合起来使用 .................................... 336
17.2 将大型结构与精炼结合起来
使用 .................................................... 339
17.3 首先评估 ............................................ 339
17.4 由谁制定策略 .................................... 341
17.4.1 从应用程序开发自动得出
的结构 ................................. 341
17.4.2 以客户为中心的架构团队 ... 341
17.5 制定战略设计决策的 6个要点 ......... 342
17.5.1 技术框架同样如此 .............. 344
17.5.2 注意总体规划 ...................... 345
结束语
附录 ....................................................................... 351
术语表 .................................................................. 354
参考文献 .............................................................. 357
图片说明 .............................................................. 359
索引 ....................................................................... 360

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警