重构-编程的本原方式
-《重构》第一章读后感
早就听说过《重构-改善既有代码的设计》这本书,昨天终于开启了阅读这本书的计划。读之前觉得重构这个词有点神秘,看了两位译者的序言有了些信心,然后读了第一章,便有了一种感觉。重构就是编程的一种本原方式,只要你去编程,你肯定是在不断的重构中度过。这是一种非常自然的编程方式,没有任何神秘的地方。因为我们不可能一次性编写出优异的代码。添加新功能时,原来的程序结构如果产生障碍,我们就必须重构。虽然我以前并不知道我对代码的优化修改就是重构的表现,但我还是在自己的编程工作中不断的运用着这个方法。
理论之所以被称为理论,是因为它是对自发的行为、现象的抽象提炼总结。这本书就是从重构这一编程的本原方式中提炼出了许多方法,去指导我们进行重构。第一章读后,我最大的感受就是。改动非常微小,而且每次微小的改动后都要进行测试。在第一章的例子中,代码搬移(Move Method)后,并没有立刻将所有的调用点改成新的方法,而是改变老的方法,在其中委托(delegate)新方法。经过测试无误后,才去掉老的方法,并将老的方法的调用点改成调用新的方法,然后再测试。是不是太小心了?我一直的做法都是直接改调用点,没有委托的步骤。因为怕麻烦,也因为太自信。如果你的项目只有数千行代码,可能不会出现问题。你可以跳跃式的修改代码,而且还能保证找到所有的受影响的地方。但是如果你的项目非常大,如果你的老方法(即将经Move Method将其功能转移到某个类中的新的方法的那个方法)还有一些重载的方法。你能保证你找到所有受影响的地方吗?你能保证找到的地方都是应该改变的吗?这个例子给我触动很大。微小的改动加上不断的测试保证了不在重构过程中引入bug。而重构正是由非常多的微小改动构成的。
总结两点感受:
1 重构是自然的,重构是一种普遍的编程方式。
2 重构是严格的,重构是一种工程,必须按步骤规范的进行。