《MICROSOFT.NET企业级应用架构设计 第2版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(意)DINO ESPOSITO,ANDRES SALTARELLO著;李永伦译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:7115413710
  • 页数:282 页
图书介绍:

第1部分 基础 2

第1章 今天的架构师和架构 2

1.1 软件架构到底是什么 2

1.1.1 把架构原则应用到软件中 3

1.1.2 确认需求 5

1.1.3 什么是架构,什么不是 8

1.1.4 架构流程 10

1.2 谁是架构师 12

1.2.1 架构师的职责 12

1.2.2 架构师的角色 14

1.2.3 关于架构师的常见误解 15

1.3 总结 17

1.4 笑到最后 17

第2章 为成功而设计 18

2.1 “大泥球” 18

2.1.1 “大泥球”的成因 19

2.1.2 “大泥球”的征兆 21

2.1.3 使用指标检测BBM 23

2.2 软件项目的机制 24

2.2.1 组织文化 24

2.2.2 帮助团队更好地写代码 26

2.3 走出混乱 29

2.3.1 有一种奇怪的东西叫作“遗留代码” 30

2.3.2 在3招之内将杀(checkmate) 30

2.3.3 决定是否添加人手 33

2.4 总结 34

2.5 笑到最后 35

第3章 软件设计的原则 36

3.1 软件设计的通用原则 36

3.1.1 从意大利面代码到千层饼代码 37

3.1.2 关注点分离 38

3.1.3 隔离 39

3.2 面向对象设计 39

3.2.1 相关类 40

3.2.2 对接口编程 40

3.2.3 组合与继承 42

3.2.4 反思面向对象 43

3.3 开发和设计向量 44

3.3.1 SOLID原则 44

3.3.2 处理依赖的模式 48

3.3.3 编码向量 50

3.3.4 使用模式 52

3.4 防御性编程 54

3.4.1 “如果—那么—抛出”模式 55

3.4.2 软件契约 55

3.5 总结 59

3.6 笑到最后 59

第4章 编写优质软件 60

4.1 编写可测试代码的艺术 60

4.1.1 什么是可测试性 61

4.1.2 测试你的软件 62

4.1.3 软件测试的常见实践 69

4.2 代码可扩展性的实践 73

4.2.1 基于接口的设计 74

4.2.2 插件架构 74

4.2.3 状态机 74

4.3 写出别人看得懂的代码 74

4.3.1 把可读性看作软件特性 75

4.3.2 一些改善可读性的实用规则 77

4.4 总结 79

4.5 笑到最后 79

第2部分 设计架构 82

第5章 发现领域架构 82

5.1 领域驱动设计的真正附加价值 82

5.1.1 DDD里有什么为我所用 83

5.1.2 使用DDD开展分析 83

5.1.3 策略模型设计 84

5.2 统一语言 85

5.2.1 统一语言的目的 85

5.2.2 统一语言的结构 86

5.2.3 如何定义统一语言 86

5.2.4 保持语言与模型同步 87

5.3 绑定上下文 88

5.3.1 发现上下文 88

5.3.2 把领域分割成绑定上下文 89

5.3.3 上下文映射 91

5.3.4 给予每个上下文它自己的架构 92

5.4 分层架构 94

5.4.1 分层架构的起源 94

5.4.2 表现层 96

5.4.3 应用程序层 96

5.4.4 领域层 98

5.4.5 基础设施层 98

5.5 总结 98

5.6 笑到最后 99

第6章 表现层 100

6.1 用户体验优先 100

6.1.1 关注交互 101

6.1.2 用户体验不是用户界面 102

6.1.3 如何创建有效的体验 104

6.2 真实场景 107

6.2.1 ASPNET网站 107

6.2.2 Web Foms与AS P.NET MVC 111

6.2.3 给网站添加设备支持 113

6.2.4 单页应用程序 117

6.2.5 桌面富客户端 120

6.3 总结 122

6.4 笑到最后 122

第7章 神秘的业务层 123

7.1 用来组织业务逻辑的模式 123

7.1.1 CRUD童话与架构白马王子 124

7.1.2 事务脚本模式 124

7.1.3 领域模型模式 127

7.1.4 贫血领域模型(反)模式 128

7.2 把焦点从数据移到任务 129

7.2.1 ASP.NET MVC里的任务编排 130

7.2.2 在领域里编排任务 133

7.3 跨越边界传输数据 134

7.3.1 分层架构里的数据流 134

7.3.2 共享领域模型实体 135

7.3.3 使用数据传输对象 136

7.4 总结 138

7.5 笑到最后 138

第3部分 支撑架构 140

第8章 领域模型导论 140

8.1 从数据到行为的转变 140

8.1.1 模型和领域背后的基本原理 140

8.1.2 数据库是基础设施 142

8.2 领域层的内部 143

8.2.1 领域模型 143

8.2.2 聚合 145

8.2.3 领域服务 150

8.2.4 领域事件 152

8.2.5 横切关注点 155

8.3 总结 157

8.4 笑到最后 157

第9章 实现领域模型 158

9.1 在线商店示例项目 158

9.1.1 入选的用例 158

9.1.2 入选的方案 159

9.1.3 “买买买”项目的结构 160

9.1.4 入选的技术 161

9.1.5 在线商店的绑定上下文 162

9.1.6 “买买买”应用程序的上下文映射 163

9.2 领域建模实用指南 164

9.2.1 行为是游戏规则的变革者 164

9.2.2 实体的基架 166

9.2.3 值对象的基架 169

9.2.4 标识聚合 172

9.2.5 持久化模型 179

9.3 实现业务逻辑 182

9.3.1 查找订单 183

9.3.2 下订单 183

9.3.3 忠诚卡(或客户忠诚计划) 187

9.4 总结 187

9.5 笑到最后 187

第10章 CQRS导论 188

10.1 分离命令与查询 188

10.1.1 CQRS模式概论 189

10.1.2 CQRS的好处 190

10.1.3 在业务层里使用CQRS 191

10.1.4 CQRS总能胜任架构需要 193

10.2 查询栈 194

10.2.1 读取领域模型 194

10.2.2 设计只读模型外观 196

10.2.3 分层表达式树 198

10.3 命令栈 202

10.3.1 回到表现层 203

10.3.2 规范化命令和事件 205

10.3.3 处理命令和事件 207

10.3.4 现成的存储 212

10.4 总结 214

10.5 笑到最后 214

第11章 实现CQRS 215

11.1 CQRS的实现 215

11.1.1 普通简单的CQRS 215

11.1.2 具有命令架构的CQRS 217

11.2 实现查询栈 219

11.2.1 创建读取外观 219

11.2.2 为调用方打包数据 220

11.3 实现命令栈 224

11.3.1 奠定基础 224

11.3.2 通过命令编排用例 227

11.4 总结 230

11.5 笑到最后 230

第12章 事件溯源导论 231

12.1 事件的突破 231

12.1.1 下一件大事(重装上阵) 231

12.1.2 现实世界不仅有模型,还有事件 232

12.1.3 抛弃“最近已知的正常状态” 232

12.1.4 事件对软件架构的深刻影响 234

12.2 事件源架构 236

12.2.1 持久化事件 236

12.2.2 回放事件 238

12.3 总结 240

12.4 笑到最后 240

第13章 实现事件溯源 241

13.1 事件溯源:为何以及何时 241

13.1.1 为什么说事件溯源是一个资源 242

13.1.2 事件溯源何时合适 243

13.2 带有回放的事件溯源 244

13.2.1 现场比分系统 244

13.2.2 系统的实现 246

13.3 带有聚合快照的事件溯源 255

13.3.1 迷你企业资源规划系统 256

13.3.2 系统的实现 257

13.4 总结 261

13.5 笑到最后 261

第4部分 基础设施 264

第14章 持久层 264

14.1 持久层概览 264

14.1.1 持久层的职责 264

14.1.2 仓储模式的设计 265

14.2 实现仓储 268

14.2.1 仓储的查询部分 268

14.2.2 持久化聚合 271

14.2.3 存储技术 272

14.3 为何你该考虑非关系型存储 275

14.3.1 熟悉NoSQL 276

14.3.2 你会得到什么,又会失去什么 277

14.3.3 做出一个正确的选择 280

14.4 总结 282

14.5 笑到最后 282