6 个重构方法可帮你提升 80% 的代码质量(转)

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality

  在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名

  1. 臃肿的类
    类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解。这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面。
  2. 长方法
    方法之所以会变得很长主要是有以下几个原因:
    • 许多没有关联性的、功能复杂的模块的代码都放在相同的方法内。这主要是开发者缺乏SRP的概念。
    • 多种条件都放在同一个方法内,这在长方法内经常会发生的。这是由于缺乏McCabe代码复杂度和SRP的概念的比较。
  3. 大量的传参
    我经常遇到这几种情况,一些方法跟另一些方法进行交互,或者调用另一些方法的时候传入大量的参数。这就会出现如果更改了其中一个参数,就得在多个方法内进行更改。
  4. 常量值无处不在
    经常会发现开发者(尤其是新手)会使用一些具有明确含义的常量值(主要是魔鬼数字),但没有给它们赋予合适的常量变量。这会降低代码的可读性和可理解性。
  5. 模糊的方法名
    许多时候,以下取的方法名会影响代码的可读性和可理解性:
    • 模糊的不具有任何意义的方法名
    • 技术性的,却没有提及相关领域的名称

  6个处理上面代码异味的重构方法(手法)

  以下是6个可以用来帮助你解决80%(80-20原则)的代码质量问题的重构方法,并能帮助你成为一个更优秀的开发者。

  1. 提取类/抽离方法:正如上面提到的,像“臃肿的类”(一个类提供了本该有几个类提供的功能)这种代码异味应该将原有类中的方法和属性移动到适当数目的新类中去。旧类中对应新类的方法和属性应该被移除。另外,有时候一些类过于臃肿是因为它包含了被其他类使用本应该是其他类的成员方法的成员方法。这些方法也应该被迁移到合适的类中。
  2. 提取方法:像上面提到的“过长的方法”这种代码异味可以通过从旧方法中提取代码到一个或多个新方法中消除。
  3. 分离条件:许多时候,一个方法很长是因为包含好几个分支语句(if-else)。这些分支条件可以被提取和移动到几个单独的方法中。这确实能大大改善代码可读性和可理解性。
  4. 引入参数对象/保留全局对象:在我做代码审查时发现另外一个很常见的情况 - 好几个参数被传入方法。问题主要与需要从已有方法中增加或者移除一个方法参数有关。在这种场景,建议将相关方法参数组成一个对象(引入参数对象),让方法传递这些对象而不是每个单独的参数。
  5. 用符号常量替换魔法数字:对于有意义的并且到处被使用的字面常量,应该为它们分配一个命名常量。这能大大增强代码可读性和可理解性。
  6. 重命名方法: 正如上面提到的,模糊不清的方法名会影响代码的可使用性。这些模糊不清的名称应该重命名为有意义的可能与业务术语有关的名称,来帮助开发者通过业务上下文 更好地理解代码。这很需要技巧并且要求开发者与业务专家一起协作来理清代码需要满足的业务需求。有趣的是,这种重构方法看起来似乎非常容易理解,但是常常 被许多开发者忽视,虽然在Eclipse这种IDE的refactor菜单项中经常出现这一项。

http://kb.cnblogs.com/page/199831/

时间: 2024-10-11 00:05:00

6 个重构方法可帮你提升 80% 的代码质量(转)的相关文章

6 个重构方法可帮你提升 80% 的代码质量

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名: 臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解.这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面. 长方法: 方法之所以会变得很长主要是有以下几个原因: 许多没有关联性的.功能复杂的模块的代码都

(转)6 个重构方法可帮你提升 80% 的代码质量

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名: 臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解.这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面. 长方法: 方法之所以会变得很长主要是有以下几个原因: 许多没有关联性的.功能复杂的模块的代码都

常用的6种代码重构方法帮你提升80%的代码质量

在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名: 臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解.这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面. 长方法: 方法之所以会变得很长主要是有以下几个原因: 许多没有关联性的.功能复杂的模块的代码都放在相同的方法内.这主要是开发者缺乏SRP的概念. 多种条件都放在同一个方法内,这在长方法内经常会发生的.这是由于缺乏McCabe代码复杂度

【转载】三年0故障总结,提升代码质量的秘诀

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情

重构第三天:提升方法&下移方法

如果两个子类拥有相同的方法,把它们移动到超类中来 Warning! 但是从子类到父类移动方法的时候要注意, 不要过度采用这种方法,否则会出现继承滥用的情况.如果一个父类A有多个方法,假设m1, m2方法,并且该父类有多个继承A1,A2,A3. 如果我们哪天想再给父类A添加一个新的方法m3,那A1,A2,A3都要被修改.我们应该尽量采用组合而非继承的方式给父类添加行为,这也是策略模式解决的问题. 如果超类中的行为(method)仅仅跟它的一个一些特定子类是有关的,那就把这个方法移到这些子类中来.

7 款实用 Chrome 扩展推荐:帮你提升 Chrome 使用体验

原文地址:http://whosmall.com/?post=416 本文标签: Chrome扩展 Chrome浏览器 Chrome使用体验 Chrome技巧 相信大部分使用 Chrome 浏览器的人都和我一样,不仅因为它简洁的界面和快速的启动速度,各种强大的扩展程序也是我离不开 Chrome的一大原因. 曾经有一段时间特别着迷于尝试各种扩展程序,今天就来分享一些我觉得可以帮你提升 Chrome 使用体验的扩展. The Great Suspender:休眠标签 Chrome 虽好,可它却有个致

6个处理上面代码异味的重构方法(手法)

6个处理上面代码异味的重构方法(手法) 以下是6个可以用来帮助你解决80%(80-20原则)的代码质量问题的重构方法,并能帮助你成为一个更优秀的开发者. 提取类/抽离方法:正如上面提到的,像“臃肿的类”(一个类提供了本该有几个类提供的功能)这种代码异味应该将原有类中的方法和属性移动到适当数目的新类中去.旧类中对应新类的方法和属性应该被移除.另外,有时候一些类过于臃肿是因为它包含了被其他类使用本应该是其他类的成员方法的成员方法.这些方法也应该被迁移到合适的类中. 提取方法:像上面提到的“过长的方法

读书笔记-重构方法之一:提炼方法(Extract Method)

第六章 重新组织你的函数 6.1  Extract Method(提炼方法) 对付过长函数,一般重要的重构方法就是Extract Method,他把一段代码从原先的函数中提取出来,放在单独的函数中.简洁而清晰,短小而精炼. 1 void printOwing (douoble amount) 2 { 3 printBanner(); 4 //print details 5 System.out.println(“name:”+_name); 6 System.out.println(“amoun

如何提升代码质量

一.代码质量差表现在哪些方面: (1)可读性:函数命名随意,实现逻辑混乱,代码格式不规范.(2)可靠性:程序运行不稳定,bug太多.(3)维护性:代码逻辑没有层次,混成一团,很难维护改进.(4)移植性.重用性:许多人写的代码,只能自己使用,很少有能共享的功能性代码.(5)高效性:很少从算法.资源占用.执行效率等角度去考虑,经常导致软件性能问题. 二.解决方法(个人角度)(1)要尽量提升代码可读性.不仅写出计算机可以理解的代码,还要写出人类容易理解的代码.(2)熟悉自己所使用的程序语言.实际编程时