代码大全学习总结——重构

来源:互联网 发布:农村淘宝招募网站 编辑:程序博客网 时间:2024/04/29 07:12

一、简单的知识答疑

what

    引用Martin Fowler给出的官方解释:重构是在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改。(请注意红色标注内容)

why

    代码重复、程序太长、嵌套过深、参数太多、接口抽象不一致、变化导致多个地方同时修改...MS理由很多很多,其实说白了,当代码看不懂的时候,往往就预示着代码需要重构了。

how

    数据级的重构->语句级的重构->子程序级的重构->类实现的重构->类接口的重构->系统级的重构。

    做什么事情往往都是从简到难,从局部到整体,重构也一样,即然说的是对内部结构进行改变,那么最直接的修改就应该是从最里面开始。

 

二、“深刻”的体会

最近的重点工作就是某个模块的代码重构,以下就自身的亲历从反面来讲讲重构。

1. 吃着碗里,看着锅里

案例:改A处代码时,发现B处也不好,改B的时候又发现C也该动动了,接着改...一边串下来5、6个单元都折腾了一遍,心里还美滋滋的,但编译死活通不过,又牵扯其他单元,好像进入了无底洞一样,最后只好放弃...

总结:同一时间只做一项重构,当然必不是说就只关注一个,当又发现了其他需要重构的地方时,可以设置一个停车场,将它们找个地方集中停起来,最后再一个个修改;

2. 舍不得

案例:经过业务的重新分析,功能A已经不需要了,但自认为这个功能写不错,以后应该还会用到吧,给它找个归宿——扔到公共单元里吧,我也“超前设计”一把;

总结:每增加一行代码,都意味着出错的可能性又提高了,竟然没有用,那留着只会是“画蛇添足”,增加了程序的复杂度。哥们儿,删了吧,果断!

 

重构是为了让更容易理解和修改,但也不要忘了质量才是最重要的,在重构前一定先确认好测试方案,保证重构不影响软件外部行为。说起来还挺有意思,这个模块以前已经进行了一次大的重构,但是现在又被“逼”到了重构的边缘。程序总是越来越复杂的,重构出错的概率也是越来越大的,安全的重构才是真正的重构。

   

 

 

原创粉丝点击