开发软件时,我的主要目标之一是:要么防止将缺陷引入代码库,要么限制缺陷的生存期;换言之,要尽早找到缺陷。很显然,越是了解如何编写更好的代码以及如何有效测试软件,就越能及早地捕捉到缺陷。我也很想要一张能发现潜在缺陷的安全之网。
在本系列 八月份 的那期文章中,我得出了这样的结论:将检验工具集成到构建过程(例如,使用 Ant 或 Maven)中,能够建立起一种寻找潜在缺陷的方法。尽管这种方法使一致性成为可能并超越了 IDE,但它也有一点反作用。必须在本地构建软件或等待 Continuous Integration 构建的运行。如果使用 Eclipse 插件,就可以在通过 Continuous Integration 构建或集成前 发现一些这样的冲突。这就促成了我称为渐进编程 的编程方式,在这种方式下,允许在编码过程中进行一定程度的质量检验 —— 再也不能比这个更早了!
本文涵盖了我所认为的 “五大” 代码分析领域:
- 编码标准
- 代码重复
- 代码覆盖率
- 依赖项分析
- 复杂度监控
可以用接下来的几个灵活的 Eclipse 插件来揭示这些分析领域:
- CheckStyle:用于编码标准
- PMD 的 CPD:帮助发现代码重复
- Coverlipse:测量代码覆盖率
- JDepend:提供依赖项分析
- Eclipse Metric 插件:有效地查出复杂度
![]() |
|
安装 Eclipse 插件
安装 Eclipse 插件再简单不过了,只需要几个步骤。在开始之前,最好把该插件下载站点的 URL 准备好。表 1 是本文用到的插件的列表:
表 1. 代码改进插件和相应的下载站点 URL
工具 | 目的 | Eclipse 插件的 URL |
---|---|---|
CheckStyle | 编码标准分析 | http://eclipse-cs.sourceforge.net/update/ |
Coverlipse | 测试代码覆盖率 | http://coverlipse.sf.net/update |
CPD | 复制/粘贴检验 | http://pmd.sourceforge.net/eclipse/ |
JDepend | 包依赖项分析 | http://andrei.gmxhome.de/eclipse/ |
Metrics | 复杂度监控 | http://metrics.sourceforge.net/update |
知道了这些有用插件的下载地址后,安装插件就是一个极简单的过程。启动 Eclipse,然后遵循下列步骤:
- 选择 Help | Software Updates | Find and Install,如图 1 所示:
图 1. 寻找并安装 Eclipse 插件
- 选择 Search for new features to install 单选按钮,单击 Next。
- 单击 New Remote Site,输入要安装的插件名和 URL(参见图 2),单击 OK,然后单击 Finish 来显示 Eclipse 更新管理器。
图 2. 配置新的远程站点
- 在 Eclipse 更新管理器中,有一个查看插件各方面特性的选项。我通常选择顶级项,如图 3 所示。选择您需要的选项并单击 Finish。Eclipse 现在安装该插件。您需要重启 Eclipse 实例。
图 3. 安装 Eclipse 插件
请遵循上述这些步骤来安装其他的 Eclipse 插件;只需改变插件名和相应的下载位置即可。
![]() ![]() |
![]()
|
用 CheckStyle 校正标准
代码库的可维护性直接影响着软件的整个成本。另外,不佳的可维护性还会让开发人员十分头痛(进而导致开发人员的缺乏)—— 代码越容易修改,就越容易添加新的产品特性。像 CheckStyle 这样的工具可以协助寻找那些可影响到可维护性、与编码标准相冲突的地方,比方说,过大的类、太长的方法和未使用的变量等等。
![]() |
|
使用 Eclipse 的 CheckStyle 插件的好处是能够在编码过程中了解到源代码上下文的各种编码冲突,让开发人员更可能在签入该代码前真正处理好这些冲突。您也几乎可以把 CheckStyle 插件视作一个连续的代码复查工具!
安装 CheckStyle 插件并做如下配置(参见图 4):
- 选择 Project,然后选择 Eclipse 菜单中的 Properties 菜单项。
- 选择 CheckStyle active for this project 复选框,单击 OK。
图 4. 在 Eclipse 中配置 CheckStyle 插件
Eclipse 重新构建工作空间,并在 Eclipse 控制台中列示已发现的编码冲突,如图 5 所示:
图 5. Eclipse 中 CheckStyle 的代码冲突列表
使用 CheckStyle 插件在 Eclipse 内嵌入编码标准检验是一种很棒的方法,用这种方法可以在编码时 积极地改进代码,从而在开发周期的早期发现源代码中潜在