重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while 循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法或一个类的了解,那你重构它的条件就不充分。即使你有一个天才的计划,你也需要和团队一起设计其中重大的修改。
当属于下列情况时,你不该重构
对于你来说,它的逻辑看起来过于复杂,你没有花时间去分析它。
你不理解为什么前任程序员要这样编写。
你着手的是一个很重要的系统,而且时间很紧。
你是团队里的新成员,或新接触这个项目,或这种语言。
当属于下列情况时,你可以重构
现有的代码对它要实现的功能显得过于复杂,并且你分析过它。
修改后的代码远比现存的代码逻辑要清晰。
你有足够的时间,人手,财力来支持对项目进行回归测试。
现有的代码陈旧无效率。
无人认领的,写的很烂的代码都属于此类。
跟你的一位同事谈论对这部分程序进行重构的好处和存在的风险,你们两个都赞成重构。
如何降低重构的风险
权衡一下对一段代码进行重构的利与弊,找出降低风险的方法。调试一段你经过重构但却使产品崩溃的代码,这对你来说将会是在这个行业中最有压力的事情。
使用自动化的回归测试,快速的验证你的修改。这非常重要,如果没有准备自动化测试,你应该在做任何修改前建好它。
尽量让你的重构处于很短的开发周期,产品更新发布周期也尽可能短。
把你重构的代码和其它程序隔离开,这样能让你更容易找到出问题的地方。
为你的重构活动准备测试计划,包括回归测试,功能测试,反向测试,负载测试,性能测试和用户确认测试。
投入全部精力来研究其中的逻辑,不要分心做其它事情。
在需要的地方使用设计模式。不要为了设计模式而增加设计模式。设计模式应该用在合适的时间和合适地方。
小粒度重构
当你在开封一个方法时,如果你发现其中有一部分可以改进,那你就该考虑它,改进它。整洁的代码是我们需要的,因为写的很烂的代码我们到处可见。和你的同事讨论它们,当有人要修改你的代码时不要固守己见。重构,然后回归测试,然后才提交代码。没有人希望自己提交的代码会弄垮系统。
下面是一些比较有深度的阅读材料。
重构:改善既有代码的设计
代码整洁之道
Working Effectively with Legacy Code
程序员的职业素养
忍住你的欲望,不要试图重构你不理解的代码。多问问题,努力能清楚他们为什么要把程序写成这样。也许他们有很好的理由。如果你找到一段很古老的代码,很有可能它们是按照古老的方式写的。每天都在新增的API,模式,需求和新领会都会让这些老的方式显得陈旧。不断努力学习新的技术,但不要为了要使用这些技术而过于热心的在重构中使用它们
相关推荐
重构代码很危险:如何避免重构带来的危险?重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环, 重构代码很危险,它会给...
重构重构重构重构重构重构重构重构重构重构
重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt
r重构r重构r重构r重构r重构r重构r重构r重构r重构
1. 重构的目的:为什么重构(why) 2. 重构的对象:重构什么(what) 3. 重构的时机:什么时候重构(when) 4. 重构的方法:如何重构(how)
计算机技术变革带来产业生态重构报告(52页),资源名称:计算机技术变革带来产业生态重构报告(52页)计算机技术变革带来产业生态重构.pdf.zip...
经典软件重构 经典软件重构 经典软件重构 经典软件重构 经典软件重构
名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构...
代码重构 重构与模式
此重构准备是一个不断循环的过程。 识别:发现已有系统哪些设计背离了整体的架构设计或者扩展性不强; 论证:对识别出的问题进行重构设计,需要反复论证、预研; 归类:哪些重构点可以综合在一起考虑去设计,有利于...
对经验模态分解后的各分量IMF进行重构代码,函数可直接调用。
网站重构,WEB标准,WEB2.0,公用模板重构,ppt
最后再次感谢几位大师 Martin Fowler、Kent Beck等,还有翻译的侯捷和熊节先生,为我们带来这么精彩的一本书。谢谢。 免责声明:本书仅供个人学习研究之用,不得用于任何商业目的,不得以任何方式修改本作品,基于...
“所谓重构(refactoring)就是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构.哪怕你手上有一个糟糕的设计,甚至是一堆混乱的代码,你也可以借由重构把它加工成良好的代码.”
自己整理的一个软件重构ppt,供大家参考!
项目重构方案模板、项目重构方案模板ppt,项目重构方案计划模板
1999年,《重构》为我们带来了一种改进代码的高效过程,从而彻底改变了面向对象设计的方式。 现在,在众所期盼之中,Joshua Kerievsky的《重构与模式》第一次深入和全面地论述了设计模式的运用与演进式的重构...
31天重构
《重构与模式》不仅展示了一种应用模式和重构的创新方法,而且有助于读者透过实战深入理解重构和模式。书中讲述了27种重构方式。 《重构与模式》适于面向对象软件开发人员阅读,也可作为高等学校计算机专业、软件...
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...