人类到目前为止已经能够度量越来越多的东西,例如时间、长度等,但是在软件开发领域,我们依然很难去评估一个软件系统的质量,以及维护它的难易程度。可维护性越差,意味着开发成本越高、开发速度越慢,以及由于改动带来的缺陷也越多。在现实中,我们经常会面对代码混乱、模块紧耦合的遗留系统,持续攀升的维护难度会最终导致系统不可维护,从而推倒重来。来自软件改进组织(Software Improvement Group)的咨询师们,从大量实践项目中提取出了编写可维护软件的10个最佳原则,不仅可以用来测量软件的质量和可维护性,还可以指导我们如何编写出高质量的代码。《代码不朽:编写可维护软件的10大要则(Java版)》会一一介绍这些原则,并且提供了翔实的代码示例,能够让读者一步步了解到如何对代码进行重构,从而达到满足原则、提高可维护性。《代码不朽:编写可维护软件的10大要则(Java版)》中的代码示例都采用Java语言编写,但是背后的原则也适用于使用其他语言的开发人员。
希望各位读者在阅读完本书后,能够了解和掌握如何对软件系统的质量进行评估和测量,以及如何在实践中遵循书中的原则,编写出高质量、简洁的代码,开发出松耦合、高可维护性的系统。
......(更多)
Joost Visser,SIG研究负责人,掌管这家独一无二的认证软件分析实验室。这家实验室根据ISO 25010国际标准,对软件产品质量进行标准化的测量。本书汇集了SIG顾问们从2000年以来在软件质量测量和建议方面的集体智慧和经验。
译者张若飞,有十年以上IT公司从业经历的资深Java软件开发工程师,对Groovy和Grails有较深研究,曾译有《Grails权威指南》《Java EE 6开发手册·高级篇(第4版)》《写给大忙人看的Java SE 8》等书。
......(更多)
关于作者 ...................................................................................... xi
前言 ........................................................................................... xiii
第1 章 简介 .................................................................................1
1.1 什么是可维护性? ..........................................................................................1
1.2 为什么可维护性很重要? ...............................................................................2
1.3 本书的三个基本理论 ......................................................................................4
1.4 对可维护性的误解 ..........................................................................................5
1.5 评价可维护性 ..................................................................................................7
1.6 可维护性原则的概述 ......................................................................................8
第2 章 编写短小的代码单元 ........................................................11
2.1 动机 ...............................................................................................................13
2.2 如何使用本原则 ............................................................................................14
2.3 常见的反对意见 ............................................................................................21
2.4 参考 ...............................................................................................................24
第3 章 编写简单的代码单元 ........................................................27
3.1 动机 ...............................................................................................................32
3.2 如何使用本原则 ............................................................................................33
3.3 常见的反对意见 ............................................................................................37
3.4 参考 ...............................................................................................................38
第4 章 不写重复代码 ..................................................................41
4.1 动机 ...............................................................................................................45
4.2 如何使用本原则 ............................................................................................45
4.3 常见的反对意见 ............................................................................................50
4.4 参考 ...............................................................................................................52
第5 章 保持代码单元的接口简单 .................................................55
5.1 动机 ...............................................................................................................57
5.2 如何使用本原则 ............................................................................................58
5.3 常见的反对意见 ............................................................................................62
5.4 参考 ...............................................................................................................63
第6 章 分离模块之间的关注点 ....................................................65
6.1 动机 ...............................................................................................................68
6.2 如何使用本原则 ............................................................................................69
6.3 常见的反对意见 ............................................................................................72
第7 章 架构组件松耦合 ..............................................................75
7.1 动机 ...............................................................................................................76
7.2 如何使用本原则 ............................................................................................79
7.3 常见的反对意见 ............................................................................................81
7.4 参考 ...............................................................................................................82
第8 章 保持架构组件之间的平衡 .................................................85
8.1 动机 ...............................................................................................................86
8.2 如何使用本原则 ............................................................................................88
8.3 常见的反对意见 ............................................................................................89
8.4 参考 ...............................................................................................................89
第9 章 保持小规模代码库 ...........................................................93
9.1 动机 ...............................................................................................................93
9.2 如何使用本原则 ..........................................................................................96
9.3 常见的反对意见 ............................................................................................98
第10 章 自动化开发部署和测试 ................................................103
10.1 动机 ........................................................................................................... 104
10.2 如何使用本原则 ........................................................................................ 106
10.3 常见的反对意见 ........................................................................................ 114
10.4 参考 ........................................................................................................... 115
第11 章 编写简洁的代码 ...........................................................117
11.1 不留痕迹 ................................................................................................... 117
11.2 如何使用本原则 ........................................................................................ 117
11.3 常见的反对意见 ........................................................................................ 123
第12 章 后续事宜 .....................................................................125
12.1 将原则变成实践 ........................................................................................ 125
12.2 低层级(代码单元)原则要优先于高层级(组件)原则 ......................... 125
12.3 对每次提交负责 ........................................................................................ 126
12.4 下一本书会讨论开发流程的最佳实践 ...................................................... 126
附录A SIG 如何来评估可维护性 ...............................................127
索引 ..........................................................................................131
......(更多)
......(更多)