最近有幸,发现一个博友的博客中对代码重构,作了一番简单的讲解。以为很不错,比较浅显移动,一口气读完了。今天经过本身的理解,翻译一下,可能有不少不对的地方,请你们指正。共同窗习,共同进步。html
原博客地址:https://lostechies.com/seanchambers/2009/07/31/31-days-of-refactoring/ web
随着时间的推移,重构是提高代码质量不可或缺的一部分。没有重构,慢慢的就会积累不少的技术债务。忘记代码的实现部分,首先创建代码的测试部分。这就比较像TDD(测试驱动开发)。这个概念其实很简单,就是经过写测试单元,来构建学习
更健壮的,bug更少的代码。关于TDD测试驱动开发,虽然概念简单,可是内容仍是比较多的,你们能够看看关于测试驱动开发部分的相关资料。测试
因为重构的重要性,我用31天这样一个概念来共同窗习一下。我会经过本身的理解来说述,可能存在喝多歧义和正确性。在我实际写完博客以前,我不会先列出一个列表来展现后面的内容。每当我写完一章,我会及时在这里更新链接。spa
重构的主要内容来自Refactoring.com,有一部分来自于Code Complete 2nd Edition(代码大全),剩下的一部分来自于我在工做中的总结。我以为这些内容来自哪里,并非最重要的,或许你在其余的博客和书上可以看到相同的重构名称。翻译
明天开始我会持续写完这个专题,但愿你们可以从中学到关于重构的一些东西,也但愿你们指正错误,共同窗习。设计
Day1:封装集合 http://www.cnblogs.com/yplong/p/5276598.htmlorm
Day2:方法搬移 http://www.cnblogs.com/yplong/p/5278394.htmlhtm
Day3:方法提公 http://www.cnblogs.com/yplong/p/5278506.html对象
Day4:方法下降 http://www.cnblogs.com/yplong/p/5285371.html
Day5:提高字段 http://www.cnblogs.com/yplong/p/5285427.html
Day6: 下降字段 http://www.cnblogs.com/yplong/p/5285457.html
Day7: 重命名 http://www.cnblogs.com/yplong/p/5289612.html
Day8: 使用委托来代替继承 http://www.cnblogs.com/yplong/p/5295866.html
Day9:提取接口 http://www.cnblogs.com/yplong/p/5300096.html
Day10:提取方法 http://www.cnblogs.com/yplong/p/5300144.html
Day11:策略模式代替Switch http://www.cnblogs.com/yplong/p/5308648.html
Day12:依赖分解 http://www.cnblogs.com/yplong/p/5318576.html
Day13:抽取方法对象 http://www.cnblogs.com/yplong/p/5362434.html
Day14:职责分离 http://www.cnblogs.com/yplong/p/5362567.html
Day15:移除重复代码 http://www.cnblogs.com/yplong/p/5362603.html
Day16 封装条件语句 http://www.cnblogs.com/yplong/p/5362663.html
Day17:抽取父类 http://www.cnblogs.com/yplong/p/5373012.html
Day18:用条件语句代替异常 http://www.cnblogs.com/yplong/p/5373025.html
Day19 提取工厂类 http://www.cnblogs.com/yplong/p/5373045.html
Day20 提取子类 http://www.cnblogs.com/yplong/p/5373076.html
Day21 封装继承 http://www.cnblogs.com/yplong/p/5373095.html
Day22 分解方法 http://www.cnblogs.com/yplong/p/5374000.html
Day23 引入参数 http://www.cnblogs.com/yplong/p/5374015.html
Day24 分解复杂的判断 http://www.cnblogs.com/yplong/p/5374031.html
Day25 引入契约设计 http://www.cnblogs.com/yplong/p/5374050.html
Day26 移除双重否认 http://www.cnblogs.com/yplong/p/5381369.html
Day27 去除上帝类 http://www.cnblogs.com/yplong/p/5381398.html
Day28 给bool方法命名 http://www.cnblogs.com/yplong/p/5381432.html
Day29 去除中间人 http://www.cnblogs.com/yplong/p/5381455.html
Day30 尽快返回 http://www.cnblogs.com/yplong/p/5381475.html
Day31使用多态代替条件语句 http://www.cnblogs.com/yplong/p/5381497.html