现在的位置: 首页 > 综合 > 正文

让开发自动化:持续重构

2013年05月30日 ⁄ 综合 ⁄ 共 1095字 ⁄ 字号 评论关闭

重构是公认的改进现有代码的好方法。然而,如何通过一种一致且可重复的方式找到 需要重构的代码呢?本期的 让开发自动化
阐述了如何使用静态分析工具来识别需要重构的代码味道,并举例说明了如何改进坏味道代码。

在过去的几年里,我曾看过很多项目的大量源代码,从精美的设计到像是用胶带绑定到一起的代码。我写过新的代码也维护过其他开发人员的源代码。我喜欢编写新的代码,但也喜欢采用一些现有的代码,以某种方法将其简化或将重复的代码提取到一个公共类中。在我早期的工作生涯中,许多人都认为如果不编写新的代码就不会有好的效率。幸好,在
20 世纪 90 年代末,Martin Fowler 编写了 Refactoring 一书(参见 参考资料),它使得在不改变外部行为的前提下改进现有代码成为可能。

我在 本系列
中所一直推崇的就是效率:如何减少耗时过程的冗余度,更快速地执行它们。在本文的任务中,我一样推崇这个目标,并且
将论述怎样更有效地 执行它们。

关于本系列

作为开发人员,我们致力于为用户自动化流程;但许多开发人员疏忽了自动化我们自己的开发流程的机会。为此,我们编写了 让开发自动化 系列文章,专门探讨软件开发流程自动化的实践应用,为您介绍何时
以及如何 成功应用自动化。

重构的一个典型方法是在引入新代码或更改方法时对现有代码做出小小的变动。该技巧面临的挑战在于一个开发团队的开发人员的应用方法不一致,并且很容易错失重构的机会。这也正是我提倡使用静态分析工具识别编码违规的原因所在。有了这些工具,您就能够从总体上了解代码库,并且处于类或方法的级别。幸运的是,在
Java™ 程序设计中,您可以选择的可免费下载的开源静态分析工具很多:CheckStyle、PMD、FindBugs、JavaNCSS、JDepend
等等。

在本文中,您将学习如何:

  • 使用 CheckStyle 度量圈复杂度(cyclomatic complexity),并提供诸如 Replace
    Conditional with Polymorphism
    之类的重构,以此来减少条件复杂度代码味道

  • 使用 CheckStyle 评估代码重复率,并提供诸如 Pull Up Method
    之类的重构,以此来移除重复代码

  • 使用 PMD(或 JavaNCSS)计算源代码行,并提供诸如 Extract Method
    之类的重构,以此来淡化大类代码味道

  • 使用 CheckStyle(或 JDepend)确定一个类的传出耦合度(efferent coupling),并提供诸如 Move
    Method
    之类的重构,以此来除掉过多的导入代码味道

我将使用如下的通用格式来检查每一种代码味道:

本文转自IBM Developerworks中国

      请点击此处查看全文

 

抱歉!评论已关闭.