读《重构手册》-重构之姊妹篇有感
4月23日读书日,全称“世界图书与版权日”,在广州天河图书馆开了一张借书卡,借了3本书回来看,其中一本就是重构手册-《重构》之姊妹篇。为什么借了这本呢,是因为我想了解一些想象中的重构和大家认同的重构有什么不同,下面我将逐一细说这个异同。
一、原来重构是小步前行,逐一重构
我以前认为重构是某个项目的大部分功能重新修改架构才是重构,看完这本书才知道重构可以是对一个属性,一个方法,一个类, 多个类进行重构,可以是小的修改也可以是大的修改重构。
二、从代码中能看出来的那些代码需要重构,但有些不能直接看出来
只要在代码中看到一点不对劲的警示信号,但是有的无法在代码中直接看到有什么问题。就像冰箱里的发霉变质食物,有的味道很臭,有的味道有点臭,有的食物变质了但是没有臭味,这跟代码的异味很相似。
三、重构是分重构周期的
重构是分重构周期的,要解决代码异味越小,重构周期越小。一般是分步走的,一小步重构一点代码(可以是某个属性或某个方法),小步走,按设定的重构周期完成。
四、重构是需要衡量是否完成的
重构有4个简单设计:1、运行所有测试;2、不存在重复的逻辑;3、要向程序员清楚地说明对其很重要的每一个意图;4、尽量少使用类和方法。
每重构一小部分代码,需要写单元测试去测试,也可以用高级一点的测试方法如集成测试等,如果单元测试有问题那就继续重构,这里可以想到测试驱动开发,让测试来验证代码的准确性。存在重复的逻辑那就是没有重构完成,需要把重复的逻辑去掉,如可以抽取为一个方法,多个地方调用这个方法就可以去掉重复。如果某些代码的作用没有表达清楚,那就重构代码分清各个步骤,每一行代码的用意何在,多写注释,让他人容易理解。
五、重构是可以逆处理的
什么是逆处理?简单点说就是重构了一些代码,但是以后某个时刻觉得不理想,需要恢复到重构之前的代码,这个恢复代码及时逆处理。
读完之后对重构有了更进一步的了解,并在平常写代码的过程中都会按照重构的思路去写一些尽量不需要重构的代码,让代码质量更高。如果对重构不是很了解的话我建议还是拿到重构相关的书看看,深刻理解。以后我还会找个机会把《重构》这边书看一本,毕竟是《重构手册》的姊妹篇。
书本图片:
本文链接:http://www.cnblogs.com/liqw/p/6765054.html