《大话重构》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:范钢著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115348852
  • 页数:256 页
图书介绍:本书内容:一,让读者明白真正的专业级软件开发是如何进行的;二,让读者明白真正的重构具体是一步步怎么做的。作者将繁复冗长模糊不清的软件重构过程划分成明确而清晰的七个步骤。使初学者在面对实际中的软件重构时,不会卡壳。本书所讲解的重构远远超越了代码级,充分渗透到软件系统与设计的各个层面,涵盖从代码、函数、类与对象,直至设计模式、分层架构、领域模型、软件测试的整个过程。

第一部分 基础篇 2

第1章 重构:改变既有代码的一剂良药 2

1.1什么是系统重构 2

1.2在保险索上走钢丝 3

1.3大布局与小步快跑 5

1.4软件修改的四种动机 6

1.5一个真实的谎言 9

第2章 重构方法工具箱 10

2.1重构是一系列的等量变换——第一次HelloWorld重构 10

2.2盘点我们的重构工具箱——对HelloWorld抽取类和接口 13

第3章 小步快跑的开发模式 19

3.1大布局你伤不起 19

3.2小设计而不是大布局 20

3.3小步快跑是这样玩的——HelloWorld重构完成 22

第4章 保险索下的系统重构 30

4.1你不能没有保险索 30

4.2自动化测试——想说爱你不容易 31

4.3我们是这样自动化测试的——JUnit下的HelloWorldTest 33

4.4采用Mock技术完成测试 37

第二部分 实践篇 44

第5章 第一步:从分解大函数开始 44

5.1超级大函数——软件退化的重灾区 44

5.2抽取方法的实践 51

5.3最常见的问题 54

第6章 第二步:拆分大对象 57

6.1大对象的演化过程 57

6.2大对象的拆分过程——抽取类与职责驱动设计 60

6.3单一职责原则(SRP)与对象拆分 61

6.4合久必分,分久必合——类的归并 63

第7章 第三步:提高代码复用率 66

7.1顺序编程的烦恼 66

7.2代码重复与DRY原则 67

7.3提高代码复用的方法 69

7.3.1当重复代码存在于同一对象中时——抽取方法 69

7.3.2当重复代码存在于不同对象中时——抽取类 71

7.3.3不同对象中复用代码的另一种方法——封装成实体类 72

7.3.4当代码所在类具有某种并列关系时——抽取父类 75

7.3.5当出现继承泛滥时——将继承转换为组合 76

7.3.6当重复代码被割裂成碎片时——继承结合模板模式 78

7.4代码重复的检查工具 79

第8章 第四步:发现程序可扩展点 80

8.1开放-封闭原则与可扩展点设计 81

8.2过程的扩展与放置钩子——运用模板模式增加可扩展点 85

8.3面向切面的可扩展设计 89

8.4其他可扩展设计 93

第9章 第五步:降低程序依赖度 98

9.1接口、实现与工厂模式 98

9.1.1彻底理解工厂模式和依赖反转原则 98

9.1.2工厂模式在重构中的实际运用 102

9.2外部接口与适配器模式——与外部系统解耦 106

9.3继承的泛滥与桥接模式 109

9.4方法的解耦与策略模式 112

9.5过程的解耦与命令模式 116

9.6透明的功能扩展与设计——组合模式与装饰者模式 119

第10章 第六步:我们开始分层了 128

10.1什么才是我们需要的分层 128

10.2怎样才能拥抱需求的变化 131

10.3贫血模型与充血模型 136

10.4我们怎样面对技术的变革 139

第11章 一次完整的重构过程 143

11.1第一步:分解大函数 143

11.2第二步:拆分大对象 145

11.3第三步:提高复用率 147

11.4第四步:发现扩展点 148

11.5第五步:降低依赖度 151

11.6第六步:分层 151

11.7第七步:领域驱动设计 153

第三部分 进阶篇 156

第12章 什么时候重构 156

12.1重构是一种习惯 156

12.2重构让程序可读 158

12.3重构,才好复用 159

12.4先重构,再扩展 161

12.5变更任务紧急时,又该如何重构 163

第13章 测试驱动开发 166

13.1测试驱动开发(TDD)vs.后测试开发(TAD) 167

13.2测试驱动开发与重构 170

13.3遗留系统怎样开展TDD 178

第14章 全面的升级任务 182

14.1计划式设计vs.演进式设计 182

14.2风险驱动设计 184

14.3制定系统重构计划 188

第15章 我们怎样拥抱变化 190

15.1领域才是软件系统的“心”——工资软件的三次设计演变 190

15.2领域模型分析方法 197

15.3原文分析法 199

15.4领域驱动设计——使用领域模型与客户一起设计 203

15.5在遗留系统中的应用 209

第16章 测试的困境 213

16.1重构初期的困局 213

16.2解耦与自动化测试 215

16.3开发人员,还是测试人员 219

16.4建立自动化测试体系 223

第17章 系统重构的评价 225

17.1评价软件质量的指标 225

17.2怎样评价软件质量呢 228

结束语:重构改变了世界 233

附录 235