服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用 eclipse 插件提高代码质量

2007 年 1 月 29 日

    如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,eclipse 插件中就有这样的工具,比如 jdepend 和 checkstyle,它们能帮您在软件问题暴露前发现这些问题。在 让开发自动化 的本期文章中,自动化专家 paul duvall 将带来一些关于 eclipse 插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。

     除了 eclipse 插件,jdepend 还提供一个 ant 任务、maven 插件和一个 java 应用程序,用以获取这些度量值。对于相同的信息,它们有着不同的传递机制;但 eclipse 插件的特别之处和相应优点是:它能以更接近源代码(即,编码时)的方式传递这条信息。

    图 10 演示了使用 eclipse jdepend 插件的方法:通过右键单击源文件夹并选择 run jdepend analysis。一定要选择一个含源代码的源文件夹;否则看不到此菜单项。


图 10. 使用 jdepend analysis 分析代码
用 eclipse 插件提高代码质量(图十一)

图 11 显示了运行 jdepend analysis 时生成的报告。左边显示包,右边显示针对每个包的依赖项度量值。


图 11. eclipse 项目中的包依赖项
用 eclipse 插件提高代码质量(图十二)

    正如您所见,jdepend 插件提供了有助于不断观察架构可维护性变化的大量信息 ―― 这其中最大的好处是您可以在编码时看到这些数据。

用 metrics 测量复杂度

    “五大”代码分析最后的一项是测量复杂度。eclipse 提供一种叫做 metrics 的插件,使用该插件可以进行许多有用的代码度量,包括圈复杂度度量,它用于测量方法中惟一路径的数目。

安装 metrics 插件并重启 eclipse;然后遵循下列步骤:

  1. 右键单击您的项目并选择 properties 菜单。在结果窗口中,选择 enable metrics plugin 复选框并单击 ok,如图 12 所示:

    图 12. 为项目配置 metrics
    用 eclipse 插件提高代码质量(图十三)

  2. 从 eclipse 中选择 window 菜单打开 metrics 视图,然后选择 show view | other...。

  3. 选择 metrics | metrics view 打开如图 13 中显示的窗口。您需要使用 java 透视图并重新构建项目,从而显示这些度量值。

    图 13. 打开 eclipse 中的 metrics view
    用 eclipse 插件提高代码质量(图十四)

  4. 单击 ok 来显示如图 14 中的窗口。

    在此例中,我正在查看一个单独方法的圈复杂度。真正妙的是您可以双击 metrics 列表中的方法,该插件会在 eclipse 编辑器中为此方法打开源代码。这就让修正变得超级简单(如果需要的话)!

    图 14. 查看方法的圈复杂度
    用 eclipse 插件提高代码质量(图十五)

    正如我之前提到过的,eclipse metrics 插件还提供了许多功能强大的度量值,有助于您在开发软件的过程中改进代码 ―― 可见,它是一个渐进编程意义上的插件!

合适的才是最好的

    正如您从本文中看到的那样,将“五大”测量方法,即编码标准、代码重复、代码覆盖率、依赖项分析和复杂度监控,用于改进代码质量十分重要。但适合您的才是好的。请记住还有其他许多可用的 eclipse 插件(比如 pmd 和 findbugs)能够帮助您在开发周期的早期改进代码质量。不管您想要的工具或偏爱的方法是什么,重要的是:行动起来去积极改进代码质量并让手工代码检验的过程变得更加有效。我估计您使用这些插件一段时间后,就再也离不开它们了。

参考资料

学习

  • 您可以参阅本文在 developerworks 全球站点上的 英文原文

  • 让开发自动化 (paul duvall,developerworks):阅读完整的系列。

  • improving code quality with pmd and eclipse” (levent gurses,jacoozi,2005 年 1 月):这篇文章将 pmd 视为 eclipse 插件,介绍了使用 pmd 改进代码质量并缩短代码检验过程的方法。

  • 用 cobertura 测量测试覆盖率” (elliotte rusty harold,developerworks,2005 年 5 月):elliotte rusty harold 分享了他的经验,即如何使用代码覆盖率的最佳实践来利用 cobertura。

  • 不要被覆盖报告所迷惑” (andrew glover,developerworks,2006 年 1 月):这篇文章进一步揭示了覆盖率报告中的数字所代表的真正含义,也给出了这些数字所不能代表的含义。

  • managing your dependencies with jdepend” (glen wilcox,onjava,2004 年 1 月):在这篇文章中,glen wilcox 介绍了 jdepend,这是一个可以免费获取的工具,它能洞悉软件架构中的许多质量问题。

  • 软件架构的代码质量” (andrew glover,developerworks,2006 年 4 月):andrew glover 介绍了如何持续监控以及如何改正能够影响软件架构长期存续性的代码质量问题。

  • 让开发自动化: 持续检查” (paul duvall,developerworks,2006 年 8 月):paul duvall 介绍了自动化的检查工具(如 checkstyle、javancss 和 cpd )是如何增强开发过程的以及何时应该使用这些工具。

  • detecting duplicate code with pmd's cpd” (tom copeland,onjava,2003 年 3 月):tom copeland 介绍了一种叫做 cpd(复制/粘贴检测器)的开源工具,该工具用于寻找重复的 java 代码。

  • maintain organizational standards with code audits” (testearly.com):编码标准有利于广大开发人员对代码库达成共识。

  • developerworks java 技术专区:数百篇关于 java 编程各方面的文章。


获得产品和技术

  • eclipse plugin for pmd:使用 pmd 插件在代码中寻找复制粘贴问题。

  • eclipse plugin for jdepend:此插件有助于分析代码库中的包依赖项。

  • eclipse plugin for cobertura:coverlipse 是 用于 cobertura 的 eclipse 插件,它提供代码覆盖率信息。

  • eclipse metrics:此插件提供度量值,如圈复杂度,非常有助于寻找复杂代码。

  • eclipse plugin for checkstyle:检验项目编码标准的遵循情况。


讨论

  • 提高代码质量论坛:developerworks 的积极贡献者 andrew glover 是一名专注于改进代码质量的顾问,他为这个由他主持的论坛带来了很多相当专业的知识。

 

关于作者

用 eclipse 插件提高代码质量(图一)

用 eclipse 插件提高代码质量(图十六)

用 eclipse 插件提高代码质量(图一)

paul duvall 是 stelligent incorporated 的 cto,该公司利用有效的开发人员测试策略,以及能够让团队尽早尽多地监视和提高代码质量的持续集成技术,帮助其他企业解决软件的质量问题。他还是 uml™ 2 toolkit 一书的作者之一,目前正在与他人合作撰写 continuous integration: improving software quality and reducing risk (addison-wesley) 一书。

扫描关注微信公众号