重构不只可以改善既有的设计,还可以帮助我们理解原来很难理解的流程。比如一个复杂的条件表达式,我们可能需要很久才能看明白这个表达式的作用,还可能看了好久终于看明白了,过了没多长时间又忘了,现在还要从头看,如果我们把这个表达式运用Extract Method抽象出来,并起一个易于理解的名字,如果函数名字起得好,下次当我们再看到这段代码时,不用看逻辑我们就知道这个函数是做什么的。如果对这个函数内所有难于理解的地方我们做了适当的重构,把每个细小的逻辑抽象成一个小函数并起一个容易理解的名字,当我们看代码时就有可能像看注释一样,不用再像以前一样通过看代码的实现来猜测这段代码到底是做什么的,好的代码胜过注释,毕竟注释还是有可能更新不及时的。
《重构,改善既有代码的设计》,这是一部经典之作,相信很多人都听过或看过,看这本书时会发现,书中讲的都是一些很简单的东西,而且很多东西就是我们平时在做的,只是作者把它们总结了起来。比如说Rename Field,就是对不易理解其作用的字段起一个易于理解的名字,这个肯定我们都做过,但是更多时候,我们是对这种字段视而不见,比如曾经花了很久没搞明白代码的字段"IP"是什么的缩写,最后发现竟然是“INPUT”。看过这本书的收获是,让重构融于整个写代码的过程中,让重构不再作为一项独立的任务,而是在写代码的过程中随时随地的进行,一个函数不容易理解,重构;添加新功能时很不方便,重构,使添加新功能变得理解。
书中全是一些很简单的手法,我相信,我们肯定都用过其中的大部分重构手法,只是没有察觉。这本书只是对其进行了一个总结,并让我们意识到重构这项技能,并让重构融入我们整个写程序的过程中,让重构无处不在。
书中的一些重构手法,在我感觉可能就不算是重构手法,比如给函数添加参数,如果参数不够又必须添加,我们肯定会添加的,这算是功能修改还是重构,随便怎么理解吧,不过作为笔记,还是把所有这些都记录下来了。
对这本书的笔记只有三个图,是对书中所有重构手法列表的一个简单记录,方便以后查阅,至于具体操作步骤或例子,以后想看时翻书就行了,或都网上也可以搜到的。下面这个链接是一个C#版本关于重构的系列,但不是这本书的C#版本,其中的手法大都是相同的,圣殿骑士:31天重构系列。
重构列表:
要点列表:
代码坏味:
参考:http://www.cnblogs.com/angeldevil/p/3601730.html