重构定义
重构名词形式定义:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解性,降低其修改成本。
重构的动词形式定义:使用一系列重构准则(手法),在不改变软件之可察行为前提下,调整结构。
为什么要重构
1、改进软件设计。
当人们只为短期目的,或是在完全理解整体设计之前,就贸然修改代码,程序将逐渐失去自己的结构,程序员愈来愈难通过阅读代码而理解原来设计。重构很像是在整理代码,你所做的就是让所有东西回到应该的位置上。代码结构的流失是积累性的。经常性的重构可以帮助代码维持自己该有的状态。
2、使软件更易被理解
从创建新功能这个角度来看,编写程序主要是和计算机交谈,而从维护这个角度来看,编写程序的主要工作是与自己或其他程序员交谈,因为一个软件的生命周期中,维护占了大部分比重,所以与人交谈更为重要。所以更容易被理解的程序就更有意义,而重构就可以使我们程序更容易理解。
3、重构助你找到bug
对代码的理解,可以帮助我找到bug。重构的过程就是我们对代码进一步理解的过程。Kent Beck说“我不是一个伟大的程序员;我只是个有着优秀习惯的好程序员而已。”重构能够帮助我更有效地写出强固稳健的代码。
4、助你提高编程速度
良好设计是快速软件开发的根本。事实上拥有良好设计才可能达成快速的开发。如果没有良好的设计,或许某一段时间内你的进展迅速,但恶劣的设计很快就让你的速度慢下来。你会把时间花在调试上面,无法添加新功能。修改时间愈来愈长,因为你必须花愈来愈多的时间去理解系统、寻找重复代码。良好的设计是维持软件开发速度的根本。重构可以帮助你更快速的开发软件,因为它阻止系统腐败变质,他甚至还可以提高设计质量。