zoukankan      html  css  js  c++  java
  • 谈谈代码重构

    开发者可能听到过"bad smell"这个词,这个词用在软件编码中是什么意思呢? 代码还有smell吗?当然没有,正如计算机病毒,bug等词一样,这仅仅是个形象的说法。这个词在这里的意思是代码实现了需求,可是代码却不精炼,冗余,结构混乱,难读懂,难维护,难扩展等等。与之相相应的一个词是"refactor",即代码重构。我们在看些外国人写的程序时能够发现,他们的代码里通常会定义大量的类、接口、方法,类与类,类与接口之间非常多是继承和实现的关系,方法的代码行数非常少,超过20行代码的方法不多,看他们的代码感觉最多的就是方法之间的调来调去,不像我们的代码,一个方法下来几十上百甚至两三百行都是最主要的语句构成,非常少调用自己的方法。两相比較,能够看出,前者在结构上更清晰,通过类视图就可看出设计意图,而且总的代码量不会高于后者,而后者代码量庞大,代码冗余现象严重,结构不清晰,非常难维护,如要改动某个错误,可能涉及到要改动的代码点非常多,这样后来的维护者就非常头疼了。造成这样的状况的原因有这样一些:

    1.经验不足,分析设计不到位

    2.敏捷开发,尽管经验非常多,但为了高速开发,没有经过分析设计

    3.缺乏意识,仅仅为实现功能而写代码,无论代码质量

    对于这种代码,我们如何将其变得更为精炼和易于维护呢?这就是代码重构。重构不是针对功能,纯粹是对代码本身。重构后的代码不会影响到系统的执行。

    我们来看看能够在哪些方面对代码进行重构:

    1.重命名:对类,接口,方法,属性等重命名,以使得更易理解

    2.抽代替码:将方法内的一段代码抽取为还有一个方法,以使得该段代码能够被其它方法调用,这是重构中非常重要非经常常使用的,此举能够极大的精炼代码,降低方法的代码行数

    3.封装字段:将类的某个字段转换成属性,能够更加合理的控制字段的訪问

    4.抽取接口:将类的某些属性,方法抽取组成个接口,该类自己主动实现该接口

    5.提升方法内的局部变量为方法的參数:这主要是在写代码的过程中会使用到

    6.删除參数:将方法的一个或多个參数删掉

    7.重排參数:将方法的參数顺序又一次排列

    实际应用中,用的最多的是1、2、3,我们能够在写代码的时候有意识的运用代码重构,这样当我们完毕编码时代码的质量也能得到保证。

  • 相关阅读:
    uva11922splay
    获取的二维数组排序
    二维数组排序
    $.extend
    <eq>标签
    datagrid时间插件
    id=%d是什么意思呢?
    获得某一月的第一天,最后一天
    数组合并
    phpexcel 导入导出excel表格
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4510435.html
Copyright © 2011-2022 走看看