最近有幸,发现一个博友的博客中对代码重构,做了一番简单的讲解。觉得很不错,比较浅显移动,一口气读完了。今天通过自己的理解,翻译一下,可能有很多不对的地方,请大家指正。共同学习,共同进步。
原博客地址:https://lostechies.com/seanchambers/2009/07/31/31-days-of-refactoring/
随着时间的推移,重构是提升代码质量不可或缺的一部分。没有重构,慢慢的就会积累很多的技术债务。忘记代码的实现部分,首先建立代码的测试部分。这就比较像TDD(测试驱动开发)。这个概念其实很简单,就是通过写测试单元,来构建
更健壮的,bug更少的代码。关于TDD测试驱动开发,虽然概念简单,但是内容还是比较多的,大家可以看看关于测试驱动开发部分的相关资料。
由于重构的重要性,我用31天这样一个概念来共同学习一下。我会通过自己的理解来讲述,可能存在喝多歧义和正确性。在我实际写完博客之前,我不会先列出一个列表来展示后面的内容。每当我写完一章,我会及时在这里更新连接。
重构的主要内容来自,有一部分来自于Code Complete 2nd Edition(代码大全),剩下的一部分来自于我在工作中的总结。我觉得这些内容来自哪里,并不是最重要的,或许你在其他的博客和书上能够看到相同的重构名称。
明天开始我会持续写完这个专题,希望大家能够从中学到关于重构的一些东西,也希望大家指正错误,共同学习。
Day1:封装集合
Day2:方法搬移
Day3:方法提公
Day4:方法降低
Day5:提升字段
Day6: 降低字段
Day7: 重命名
Day8: 使用委托来代替继承
Day9:提取接口
Day10:提取方法
Day11:策略模式代替Switch
Day12:依赖分解
Day13:抽取方法对象
Day14:职责分离
Day15:移除重复代码
Day16 封装条件语句
Day17:抽取父类
Day18:用条件语句代替异常
Day19 提取工厂类
Day20 提取子类
Day21 封装继承
Day22 分解方法
Day23 引入参数
Day24 分解复杂的判断
Day25 引入契约设计
Day26 移除双重否定
Day27 去除上帝类
Day28 给bool方法命名
Day29 去除中间人
Day30 尽快返回
Day31使用多态代替条件语句