《架构整洁之道》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Robert C. Martin(罗伯特 C. 马丁)著,孙宇聪译,鄢倩校
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121347962
  • 页数:324 页
图书介绍:Robert C. Martin在本书中向我们讲述了构建应用软件体系架构的通用规则,这些规则可以在任何软件系统的整个生命周期中显著地提高生产力。本书将带领读者了解软件架构师需要实现什么,以及实现它的核心规程和实践;掌握地址功能、组件分离和数据管理的基本软件设计原则;明白编程范例如何通过限制开发者所能做的事情来实施规则;实现最优,高层结构网络、数据库、胖客户端、控制台和嵌入式应用程序;定义适当的边界和层次,组织元件和服务;明白为什么设计和架构会出错,以及如何防止(或修复)这些错误。

第1部分 概述 3

第1章 设计与架构究竟是什么 3

目标是什么 4

案例分析 5

本章小结 11

第2章 两个价值维度 12

行为价值 13

架构价值 13

哪个价值维度更重要 14

艾森豪威尔矩阵 15

为好的软件架构而持续斗争 16

第2部分 从基础构件开始:编程范式 21

第3章 编程范式总览 21

结构化编程 22

面向对象编程 22

函数式编程 23

仅供思考 23

本章小结 24

第4章 结构化编程 25

可推导性 26

goto是有害的 28

功能性降解拆分 29

形式化证明没有发生 29

科学来救场 29

测试 30

本章小结 31

第5章 面向对象编程 32

封装 33

继承 36

多态 38

本章小结 44

第6章 函数式编程 45

整数平方 46

不可变性与软件架构 47

可变性的隔离 48

事件溯源 49

本章小结 51

第3部分 设计原则 56

第7章 SRP:单一职责原则 56

反面案例2:代码合并 59

解决方案 60

本章小结 61

第8章 OCP:开闭原则 62

思想实验 63

依赖方向的控制 67

信息隐藏 67

本章小结 67

第9章 LSP:里氏替换原则 68

继承的使用指导 69

正方形/长方形问题 70

LSP与软件架构 70

违反LSP的案例 71

本章小结 73

第10章 ISP:接口隔离原则 74

ISP与编程语言 76

ISP与软件架构 76

本章小结 77

第11章 DIP:依赖反转原则 78

稳定的抽象层 79

工厂模式 80

具体实现组件 82

本章小结 82

第4部分 组件构建原则 84

第12章 组件 84

组件发展史 85

重定位技术 88

链接器 88

本章小结 90

第13章 组件聚合 91

复用/发布等同原则 92

共同闭包原则 93

共同复用原则 94

组件聚合张力图 95

本章小结 97

第14章 组件耦合 98

无依赖环原则 99

自上而下的设计 105

稳定依赖原则 106

稳定抽象原则 112

本章小结 117

第5部分 软件架构 120

第15章 什么是软件架构 120

开发(Development) 122

部署(Deployment) 123

运行(Operation) 123

维护(Maintenance) 124

保持可选项 124

设备无关性 126

垃圾邮件 128

物理地址寻址 129

本章小结 130

第16章 独立性 131

用例 132

运行 133

开发 133

部署 134

保留可选项 134

按层解耦 135

用例的解耦 136

解耦的模式 136

开发的独立性 137

部署的独立性 137

重复 138

再谈解耦模式 139

本章小结 141

第17章 划分边界 142

几个悲伤的故事 143

FitNesse 146

应在何时、何处画这些线 148

输入和输出怎么办 151

插件式架构 152

插件式架构的好处 153

本章小结 154

第18章 边界剖析 155

跨边界调用 156

令人生畏的单体结构 156

部署层次的组件 158

线程 159

本地进程 159

服务 160

本章小结 161

第19章 策略与层次 162

层次(Level) 163

本章小结 166

第20章 业务逻辑 167

业务实体 168

用例 169

请求和响应模型 171

本章小结 172

第21章 尖叫的软件架构 173

架构设计的主题 174

架构设计的核心目标 175

那Web呢 175

框架是工具而不是生活信条 175

可测试的架构设计 176

本章小结 176

第22章 整洁架构 177

依赖关系规则 179

一个常见的应用场景 183

本章小结 184

第23章 展示器和谦卑对象 185

谦卑对象模式 186

展示器与视图 186

测试与架构 187

数据库网关 188

数据映射器 188

服务监听器 189

本章小结 189

第24章 不完全边界 190

省掉最后一步 191

单向边界 192

门户模式 193

本章小结 193

第25章 层次与边界 194

基于文本的冒险游戏:Hunt The Wumpus 195

可否采用整洁架构 196

交汇数据流 199

数据流的分割 199

本章小结 201

第26章 Main组件 203

最细节化的部分 204

本章小结 208

第27章 服务:宏观与微观 209

面向服务的架构 210

服务所带来的好处 210

运送猫咪的难题 212

对象化是救星 213

基于组件的服务 215

横跨型变更 216

本章小结 216

第28章 测试边界 217

测试也是一种系统组件 218

可测试性设计 219

测试专用API 220

本章小结 221

第29章 整洁的嵌入式架构 222

“程序适用测试”测试 225

目标硬件瓶颈 228

本章小结 238

第6部分 实现细节 240

第30章 数据库只是实现细节 240

关系型数据库 241

为什么数据库系统如此流行 242

假设磁盘不存在会怎样 243

实现细节 243

但性能怎么办呢 244

一段轶事 244

本章小结 246

第31章 Web是实现细节 247

无尽的钟摆 248

总结一下 250

本章小结 251

第32章 应用程序框架是实现细节 252

框架作者 253

单向婚姻 253

风险 254

解决方案 255

不得不接受的依赖 255

本章小结 256

第33章 案例分析:视频销售网站 257

产品 258

用例分析 258

组件架构 260

依赖关系管理 261

本章小结 262

第34章 拾遗 263

按层封装 264

按功能封装 266

端口和适配器 268

按组件封装 270

具体实现细节中的陷阱 274

组织形式与封装的区别 275

其他的解耦合模式 277

本章小结:本书拾遗 279

后序 280

附录A架构设计考古 283