最近有幸,发现一个博友的博客中对代码重构,做了一番简单的讲解。觉得很不错,比较浅显移动,一口气读完了。今天通过自己的理解,翻译一下,可能有很多不对的地方,请大家指正。共同学习,共同进步。
原博客地址:https://lostechies.com/seanchambers/2009/07/31/31-days-of-refactoring/
随着时间的推移,重构是提升代码质量不可或缺的一部分。没有重构,慢慢的就会积累很多的技术债务。忘记代码的实现部分,首先建立代码的测试部分。这就比较像TDD(测试驱动开发)。这个概念其实很简单,就是通过写测试单元,来构建
更健壮的,bug更少的代码。关于TDD测试驱动开发,虽然概念简单,但是内容还是比较多的,大家可以看看关于测试驱动开发部分的相关资料。
由于重构的重要性,我用31天这样一个概念来共同学习一下。我会通过自己的理解来讲述,可能存在喝多歧义和正确性。在我实际写完博客之前,我不会先列出一个列表来展示后面的内容。每当我写完一章,我会及时在这里更新连接。
重构的主要内容来自Refactoring.com,有一部分来自于Code Complete 2nd Edition(代码大全),剩下的一部分来自于我在工作中的总结。我觉得这些内容来自哪里,并不是最重要的,或许你在其他的博客和书上能够看到相同的重构名称。
明天开始我会持续写完这个专题,希望大家能够从中学到关于重构的一些东西,也希望大家指正错误,共同学习。
Day1:封装集合 http://www.cnblogs.com/yplong/p/5276598.html
Day2:方法搬移 http://www.cnblogs.com/yplong/p/5278394.html
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