你有没有在修改其他人代码时感到过沮丧?如今,难以维护的代码已经成为了软件开发中一个很的大问题,导致成本高昂的延期和大量缺陷。本书从实践出发,提供了10条易于实现的原则,可以帮助你开发出可维护且灵活的软件,并且这些原则来自对成百上千个现实系统的分析。
* 编写短小的代码单元:限制方法和构造函数的长度
* 编写简单的代码单元:限制每个方法中分支点的数量
* 编写代码一次,而不是到处复制含有缺陷的代码
* 通过将接口参数提取到对象中,保持短小的代码单元接口
* 分离关注点,避免产生体积庞大的类
* 保持架构组件松耦合
* 平衡顶层组件之间的数量和大小
* 保证代码库尽可能小
* 对代码库进行自动化测试
* 编写整洁的代码,避免会反映更深层问题的“代码坏味道”
人类到目前为止已经能够度量越来越多的东西,例如时间、长度等,但是在软件开发领域,我们依然很难去评估一个软件系统的质量,以及维护它的难易程度。可维护性越差,意味着开发成本越高、开发速度越慢,以及由于改动带来的缺陷也越多。在现实中,我们经常会面对代码混乱、模块紧耦合的遗留系统,持续攀升的维护难度会*终导致系统不可维护,从而推倒重来。来自软件改进组织(Software Improvement Group)的咨询师们,从大量实践项目中提取出了编写可维护软件的10个*佳原则,不仅可以用来测量软件的质量和可维护性,还可以指导我们如何编写出高质量的代码。本书会一一介绍这些原则,并且提供了翔实的代码示例,能够让读者一步步了解到如何对代码进行重构,从而达到满足原则、提高可维护性。本书中的代码示例都采用Java语言编写,但是背后的原则也适用于使用其他语言的开发人员。希望各位读者在阅读完本书后,能够了解和掌握如何对软件系统的质量进行评估和测量,以及如何在实践中遵循书中的原则,编写出高质量、简洁的代码,开发出松耦合、高可维护性的系统。
关于作者 xi
前言 xiii
第 1 章 简介 1
1.1 什么是可维护性? 1
1.2 为什么可维护性很重要? 2
1.3 本书的三个基本理论 4
1.4 对可维护性的误解 5
1.5 评价可维护性 6
1.6 可维护性原则的概述 8
第 2 章 编写短小的代码单元 11
2.1 动机 14
2.2 如何使用本原则 15
2.3 常见的反对意见 22
2.4 参考 25
第 3 章 编写简单的代码单元 27
3.1 动机 33
3.2 如何使用本原则 34
3.3 常见的反对意见 39
3.4 参考 40
第 4 章 不写重复代码 43
4.1 动机 47
4.2 如何使用本原则 48
4.3 常见的反对意见 53
4.4 参考 55
第 5 章 保持代码单元的接口简单 57
5.1 动机 59
5.2 如何使用本原则 60
5.3 常见的反对意见 64
5.4 参考 65
第 6 章 分离模块之间的关注点 67
6.1 动机 72
6.2 如何使用本原则 73
6.3 常见的反对意见 78
第 7 章 架构组件松耦合 81
7.1 动机 82
7.2 如何使用本原则 85
7.3 常见的反对意见 87
7.4 参考 89
第 8 章 保持架构组件之间的平衡 91
8.1 动机 92
8.2 如何使用本原则 93
8.3 常见的反对意见 95
8.4 参考 95
第 9 章 保持小规模代码库 99
9.1 动机 99
9.2 如何使用本原则 102
9.3 常见的反对意见 104
第 10 章 自动化开发部署和测试 107
10.1 动机 109
10.2 如何使用本原则 110
10.3 常见的反对意见 119
10.4 参考 120
第 11 章 编写简洁的代码 121
11.1 不留痕迹 121
11.2 如何使用本原则 122
11.3 常见的反对意见 128
第 12 章 后续事宜 131
12.1 将原则变成实践 131
12.2 低层级(代码单元)原则要优先于高层级(组件)原则 131
12.3 对每次提交负责 132
12.4 下一本书会讨论开发流程的最佳实践 132
附录 A SIG 如何来评估可维护性 133
索引 137