前言
重构的定义:在不改变软件可观察行为的前提下改善其内部结构。
“不改变软件行为”只是重构的最基本要求。要想真正让重构技术发挥威力,就必须做到“不需了解软件行为”。
重构需要靠时间来磨练,养成一套整理程序规范必不可少。
结构与解构:建立完美的需求与设计,按照既有的规范编写标准划一的代码,这是结构的美;快速迭代和RAD颠覆“全知全能”的神话,用近乎刀劈斧砍的方式解决问题,这是解构的美。
RAD(快速应用开发):是软件开发过程模型,强调极短的开发周期。这种速度是依靠大量的重构方法来维持的(简单说的话)。
需要注意的是,重构具有风险,每次的改动都可能造成系统某个小环节逻辑的变更,从而形成BUG,千里之堤,毁于蚁穴,我们要注重每一次重构,按照系统化的方式进行,尽可能考虑全面。
在开发过程中,流程一般先设计,后实现。但这样的弊端在于,前期设计需要一定的时间,然后才能写代码。而写代码的过程中,随着需求的改变(经常发生),有些结构就需要调整,然后一直这样下去,最开始‘完美’的设计就一点一点消失了。
重构的流程正好相反,先给一个臃肿的程序,然后慢慢调整其中代码的顺序、结构,让其变得苗条,这些修改可以使代码越来越好。
不能评判孰优孰劣,二者兼有的思想才是中华传统美德,我们能做的就是,前期好好去做,后期好好完善。
本书的目的:教会如何以可控制、高效率的方式去重构,在不改变外在的情况下,系统地对内部进行整理。