架构整洁之道

架构整洁之道
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2018-09
版次: 1
ISBN: 9787121347962
定价: 99.00
装帧: 其他
开本: 16开
纸张: 胶版纸
  • 《架构整洁之道》是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。本书分为6部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、降低成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证本书的观点。对于每一位软件研发从业人员——无论从事的是具体编码实现、架构设计,还是软件研发管理,本书都是不可或缺的。 Robert C. Martin,Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。他是Designing Object-Oriented C   Applications Using the Booch Method 以及 Jolt 获奖图书 Agile Software Development, Principles,Palterns,and Practices(中译版《敏捷软件开发:原则、模式与实践》)《代码整洁之道》等畅销书作者。

    孙宇聪:曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),前Coding.net 技术负责人。 第1部分  概述

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

    目标是什么4

    案例分析5

    本章小结11

    第2章  两个价值维度12

    行为价值13

    架构价值13

    哪个价值维度更重要14

    艾森豪威尔矩阵15

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

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

    第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部分  设计原则

    第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部分  组件构建原则

    第12章 组件84

    组件发展史85

    重定位技术88

    链接器88

    本章小结90

    第13章 组件聚合91

    复用/发布等同原则92

    共同闭包原则93

    共同复用原则94

    组件聚合张力图95

    本章小结97

    第14章 组件耦合98

    无依赖环原则99

    自上而下的设计105

    稳定依赖原则106

    稳定抽象原则112

    本章小结117

    第5部分  软件架构

    第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

    FitNesse146

    应在何时、何处画这些线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 Wumpus195

    可否采用整洁架构196

    交汇数据流199

    数据流的分割199

    本章小结201

    第26章 Main组件203

    最细节化的部分204

    本章小结208

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

    面向服务的架构210

    服务所带来的好处210

    运送猫咪的难题212

    对象化是救星213

    基于组件的服务215

    横跨型变更216

    本章小结216

    第28章 测试边界217

    测试也是一种系统组件218

    可测试性设计219

    测试专用API220

    本章小结221

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

    “程序适用测试”测试225

    目标硬件瓶颈228

    本章小结238

    第6部分  实现细节

    第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
  • 内容简介:
    《架构整洁之道》是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。本书分为6部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、降低成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证本书的观点。对于每一位软件研发从业人员——无论从事的是具体编码实现、架构设计,还是软件研发管理,本书都是不可或缺的。
  • 作者简介:
    Robert C. Martin,Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。他是Designing Object-Oriented C   Applications Using the Booch Method 以及 Jolt 获奖图书 Agile Software Development, Principles,Palterns,and Practices(中译版《敏捷软件开发:原则、模式与实践》)《代码整洁之道》等畅销书作者。

    孙宇聪:曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),前Coding.net 技术负责人。
  • 目录:
    第1部分  概述

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

    目标是什么4

    案例分析5

    本章小结11

    第2章  两个价值维度12

    行为价值13

    架构价值13

    哪个价值维度更重要14

    艾森豪威尔矩阵15

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

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

    第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部分  设计原则

    第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部分  组件构建原则

    第12章 组件84

    组件发展史85

    重定位技术88

    链接器88

    本章小结90

    第13章 组件聚合91

    复用/发布等同原则92

    共同闭包原则93

    共同复用原则94

    组件聚合张力图95

    本章小结97

    第14章 组件耦合98

    无依赖环原则99

    自上而下的设计105

    稳定依赖原则106

    稳定抽象原则112

    本章小结117

    第5部分  软件架构

    第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

    FitNesse146

    应在何时、何处画这些线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 Wumpus195

    可否采用整洁架构196

    交汇数据流199

    数据流的分割199

    本章小结201

    第26章 Main组件203

    最细节化的部分204

    本章小结208

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

    面向服务的架构210

    服务所带来的好处210

    运送猫咪的难题212

    对象化是救星213

    基于组件的服务215

    横跨型变更216

    本章小结216

    第28章 测试边界217

    测试也是一种系统组件218

    可测试性设计219

    测试专用API220

    本章小结221

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

    “程序适用测试”测试225

    目标硬件瓶颈228

    本章小结238

    第6部分  实现细节

    第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
查看详情
12
您可能感兴趣 / 更多
架构整洁之道
架构演变实战:从单体到微服务再到中台
潘志伟
架构整洁之道
架构启示录
Steenson 著;[美]莫莉·赖特·斯廷森(Molly、Wright、爱飞翔 译
架构整洁之道
架构真意:企业级应用架构设计方法论与实践
范钢;孙玄
架构整洁之道
架构师应该知道的37件事
[美]格雷戈尔·霍培(Gregor Hohpe)
架构整洁之道
架构设计2.0:大型分布式系统架构方法论与实践
余春龙
架构整洁之道
架构之道:软件构建的设计方法
[美]居瓦·洛瑞(Juval Lowy) 著;朱少民、张元、丁慧 周倩嫣 金泽锋 译
架构整洁之道
架构师的自我修炼:技术 架构和未来
李智慧
架构整洁之道
架构师修炼之道――思维、方法与实践
张云鹏 著
架构整洁之道
架构师启示录:知识模型、落地方与思维模式 图形图像 灵犀 新华正版
灵犀
架构整洁之道
架构思维:从程序员到CTO
郭东白
架构整洁之道
架构基础:从需求到架构
尹洪亮
架构整洁之道
架构解密:从分布式到微服务(第2版)
吴治辉
系列丛书 / 更多
架构整洁之道
架构演变实战:从单体到微服务再到中台
潘志伟
架构整洁之道
架构启示录
Steenson 著;[美]莫莉·赖特·斯廷森(Molly、Wright、爱飞翔 译
架构整洁之道
架构真意:企业级应用架构设计方法论与实践
范钢;孙玄
架构整洁之道
架构师应该知道的37件事
[美]格雷戈尔·霍培(Gregor Hohpe)
架构整洁之道
架构设计2.0:大型分布式系统架构方法论与实践
余春龙
架构整洁之道
架构之道:软件构建的设计方法
[美]居瓦·洛瑞(Juval Lowy) 著;朱少民、张元、丁慧 周倩嫣 金泽锋 译
架构整洁之道
架构师的自我修炼:技术 架构和未来
李智慧
架构整洁之道
架构师修炼之道――思维、方法与实践
张云鹏 著
架构整洁之道
架构师启示录:知识模型、落地方与思维模式 图形图像 灵犀 新华正版
灵犀
架构整洁之道
架构思维:从程序员到CTO
郭东白
架构整洁之道
架构基础:从需求到架构
尹洪亮
架构整洁之道
架构解密:从分布式到微服务(第2版)
吴治辉
相关图书 / 更多
架构整洁之道
架构演变实战:从单体到微服务再到中台
潘志伟
架构整洁之道
架构启示录
Steenson 著;[美]莫莉·赖特·斯廷森(Molly、Wright、爱飞翔 译
架构整洁之道
架构真意:企业级应用架构设计方法论与实践
范钢;孙玄
架构整洁之道
架构师应该知道的37件事
[美]格雷戈尔·霍培(Gregor Hohpe)
架构整洁之道
架构设计2.0:大型分布式系统架构方法论与实践
余春龙
架构整洁之道
架构之道:软件构建的设计方法
[美]居瓦·洛瑞(Juval Lowy) 著;朱少民、张元、丁慧 周倩嫣 金泽锋 译
架构整洁之道
架构师的自我修炼:技术 架构和未来
李智慧
架构整洁之道
架构师修炼之道――思维、方法与实践
张云鹏 著
架构整洁之道
架构师启示录:知识模型、落地方与思维模式 图形图像 灵犀 新华正版
灵犀
架构整洁之道
架构思维:从程序员到CTO
郭东白
架构整洁之道
架构基础:从需求到架构
尹洪亮
架构整洁之道
架构解密:从分布式到微服务(第2版)
吴治辉