开发软件时,我的主要目标之一是:要么防止将缺陷引入代码库,要么限制缺陷的生存期;换言之,要尽早找到缺陷。很显然,越是了解如何编写更好的代码以及如何有效测试软件,就越能及早地捕捉到缺陷。我也很想要一张能发现潜在缺陷的安全之网。
本文涵盖了我所认为的 “五大” 代码分析领域:
- 编码标准
- 代码重复
- 代码覆盖率
- 依赖项分析
- 复杂度监控
可以用接下来的几个灵活的 Eclipse 插件来揭示这些分析领域:
- CheckStyle:用于编码标准
- PMD 的 CPD:帮助发现代码重复
- Coverlipse:测量代码覆盖率
- JDepend:提供依赖项分析
- Eclipse Metric 插件:有效地查出复杂度
表 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 |
CheckStyle 这样的工具可以协助寻找那些可影响到可维护性、与编码标准相冲突的地方,比方说,过大的类、太长的方法和未使用的变量等等。
Coverlipse 是一个用于 Cobertura 的 Eclipse 插件,Cobertura 是一个代码覆盖率工具,可以用它来评估具有相应测试的源代码的比率。Cobertura 也提供一个 Ant 任务和 Maven 插件,但用 Cobertura,您可以在编写代码时 评估代码覆盖率。您见过这样的模式吗?
Eclipse 的 PMD 插件提供了一项叫做 CPD(或复制粘贴探测器)的功能,用于寻找重复的代码。
JDepend 是个可免费获取的开源工具,它为包依赖项提供面向对象的度量值,以此指明代码库的弹性。换句话说,JDepend 可有效测量一个架构的健壮性(反之,脆弱性)。
“五大”代码分析最后的一项是测量复杂度。Eclipse 提供一种叫做 Metrics 的插件,使用该插件可以进行许多有用的代码度量,包括圈复杂度度量,它用于测量方法中惟一路径的数目。
合适的才是最好的
正如您从本文中看到的那样,将“五大”测量方法,即编码标准、代码重复、代码覆盖率、依赖项分析和复杂度监控,用于改进代码质量十分重要。但适合您的才是好的。请记住还有其他许多可用的 Eclipse 插件(比如 PMD 和 FindBugs)能够帮助您在开发周期的早期改进代码质量。不管您想要的工具或偏爱的方法是什么,重要的是:行动起来去积极改进代码质量并让手工代码检验的过程变得更加有效。我估计您使用这些插件一段时间后,就再也离不开它们了。
现在开始尝试pmd和Coverlipse
更多内容请参见原帖:http://www.ibm.com/developerworks/cn/java/j-ap01117/index.html
分享到:
相关推荐
开发软件时,我的主要目标之一是:要么防止将缺陷引入代码库,要么限制缺陷的生存期;...本文将带来一些关于Eclipse插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。
让开发自动化的本期文章中,自动化专家PaulDuvall将带来一些关于Eclipse插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。开发软件时,我的主要目标之一是:要么防止将缺陷...
让开发自动化 用 Eclipse 插件提高代码质量
表 1 是本文用到的插件的列表:表 1. 代码改进插件和相应的下载站点 URL工具目的Eclipse 插件的 URLCheckStyle编码标准分析http:/
在让开发自动化的本期文章中,自动化专家PaulDuvall将带来一些关于Eclipse插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。开发软件时,我的主要目标之一是
相关插件 eclipse3.2.0 博文链接:https://yangwei.iteye.com/blog/64980
Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据...
为了让开发者更加方便、快速将规范推动并实行起来,阿里基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至...
为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,...
Checkstyle是一款检查Java程序代码样式的工具,可以帮助我们自动化代码规范检查过程,从而使得开发人员从这项重要但枯燥的任务中解脱出来。Checkstyle提供高可配置性,以便适用于各种代码规范。它通过指定modules来...
1. 提高效率:系统可以自动化处理大量的数据和信息,从而减少了人工操作的时间和错误率,提高了工作效率和质量。 2. 降低成本:系统可以减少人力资源和物质资源的浪费,使企业在生产和管理上节约成本,提高企业效益...
为此,我编写了让开发自动化 这个系列的文章,专门探索软件开发过程自动化的实际应用,并教您何时 以及如何 成功地应用自动化。 开发软件时,我的主要目标之一是:要么防止将缺陷引入代码库,要么限制缺陷的生存期...