博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构第0天--重构的理解
阅读量:6228 次
发布时间:2019-06-21

本文共 1044 字,大约阅读时间需要 3 分钟。

  最近有幸,发现一个博友的博客中对代码重构,做了一番简单的讲解。觉得很不错,比较浅显移动,一口气读完了。今天通过自己的理解,翻译一下,可能有很多不对的地方,请大家指正。共同学习,共同进步。

  原博客地址: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使用多态代替条件语句

转载地址:http://rjnna.baihongyu.com/

你可能感兴趣的文章
Django+element ui前后端不分离的博客程序
查看>>
托福听力
查看>>
2018-2019-1 20165302 《信息安全系统设计基础》第四周学习总结
查看>>
类似百度图片排版效果
查看>>
【学习笔记】DataTable根据多列分组
查看>>
PE文件格式介绍
查看>>
使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
查看>>
求助关于asp.net里使用ocx控件的问题
查看>>
asp.net生成条形码
查看>>
线段树基本格式
查看>>
springmvc集成shiro例子
查看>>
ionic2.1.0 --beta3版本新建页面做弹框时遇到的问题
查看>>
一个简单例子阐明while True与if的配合使用方法
查看>>
Generate Parentheses
查看>>
最短路径2
查看>>
[LeetCode]Search a 2D Matrix
查看>>
Hadoop学习之旅三:MapReduce
查看>>
Exception: Could not bind to 0.0.0.0:8080 after trying for 30 seconds
查看>>
C语言函数指针(转载)
查看>>
Walls and Gates
查看>>