代码大全学习总结——重构
来源:互联网 发布:农村淘宝招募网站 编辑:程序博客网 时间:2024/04/29 07:12
一、简单的知识答疑
what
引用Martin Fowler给出的官方解释:重构是在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改。(请注意红色标注内容)
why
代码重复、程序太长、嵌套过深、参数太多、接口抽象不一致、变化导致多个地方同时修改...MS理由很多很多,其实说白了,当代码看不懂的时候,往往就预示着代码需要重构了。
how
数据级的重构->语句级的重构->子程序级的重构->类实现的重构->类接口的重构->系统级的重构。
做什么事情往往都是从简到难,从局部到整体,重构也一样,即然说的是对内部结构进行改变,那么最直接的修改就应该是从最里面开始。
二、“深刻”的体会
最近的重点工作就是某个模块的代码重构,以下就自身的亲历从反面来讲讲重构。
1. 吃着碗里,看着锅里
案例:改A处代码时,发现B处也不好,改B的时候又发现C也该动动了,接着改...一边串下来5、6个单元都折腾了一遍,心里还美滋滋的,但编译死活通不过,又牵扯其他单元,好像进入了无底洞一样,最后只好放弃...
总结:同一时间只做一项重构,当然必不是说就只关注一个,当又发现了其他需要重构的地方时,可以设置一个停车场,将它们找个地方集中停起来,最后再一个个修改;
2. 舍不得
案例:经过业务的重新分析,功能A已经不需要了,但自认为这个功能写不错,以后应该还会用到吧,给它找个归宿——扔到公共单元里吧,我也“超前设计”一把;
总结:每增加一行代码,都意味着出错的可能性又提高了,竟然没有用,那留着只会是“画蛇添足”,增加了程序的复杂度。哥们儿,删了吧,果断!
重构是为了让更容易理解和修改,但也不要忘了质量才是最重要的,在重构前一定先确认好测试方案,保证重构不影响软件外部行为。说起来还挺有意思,这个模块以前已经进行了一次大的重构,但是现在又被“逼”到了重构的边缘。程序总是越来越复杂的,重构出错的概率也是越来越大的,安全的重构才是真正的重构。
- 代码大全学习总结——重构
- 《代码大全》读书笔记——重构
- 代码大全学习总结——变量
- 代码大全学习-27-重构(Refactoring)
- 代码大全学习总结——伪代码编程
- 代码重构---代码大全学习系列--未完成
- 代码大全学习总结——防御式编程
- 代码大全学习总结——表驱动法
- 代码大全学习总结——一般控制问题
- 重构代码总结
- 代码大全学习总结——直线型代码、条件语句
- 重构学习总结
- 《代码大全》和《重构》读后感
- 【代码大全】第24章 重构
- 【读书笔记】代码大全24章:重构
- JavaScript学习总结(10)——实用JS代码大全
- 代码重构(一)——总结代码的坏味道
- 代码重构学习笔记
- Effective STL学习总结(13页Word文档)带无积分PDF下载链接
- 如何保证向云迁移过程中的数据安全
- Mysql 忘记密码
- 分享一个在内存里搜索QQ号码的源码,源自看雪论坛
- 代码大全学习总结——伪代码编程
- 代码大全学习总结——重构
- ValueListEdit控件中在value域加入列表框
- 在加载模块时出现cannot insert '*.ko': Device or resource busy错误
- 代码大全学习总结——变量
- 自己写的velocity-edit Eclipse插件(Update: 2012-9-9)
- 代码大全学习总结——直线型代码、条件语句
- 代码大全学习总结——表驱动法
- 代码大全学习总结——一般控制问题
- IT人士成功的6大步骤