用 FlexPMD 改进代码质量
赖勇浩(http://laiyonghao.com)
FlexPMD 是我最近才发现的好东西,实践下来觉得对于提升代码质量是非常有用的,所以推荐一下。
FlexPMD 简介
FlexPMD 是一款 AS3 代码审查工具,能够通过代码静态分析找到代码中的各种缺陷,从而帮助改进代码质量。PMD 是一种分析 Java 代码错误的工具,通过静态分析获知代码错误。能够在不运行 Java 程序的情况下找出 Java 源程序的许多问题。FlexPMD 是 Adobe Professional Service 团队开发的一个 PMD 在 Flex 上的“移植”,制定了与 AS3 相关的许多编码规则,能够找出许多隐含的错误,当然了,你自己也可以指定这些规则是否起作用,甚至自己制定规则。
关于 FlexPMD 更多的内容,可以查看这个思维导图:
FlexPMD 功用
FlexPMD 能够识别包括但不限于如下的错误: 1、未使用的代码(函数、变量、常量等) 2、低效代码(动态 filter 的不当使用、繁琐的构造函数等) 3、过于复杂的代码(嵌套循环、过多的条件判断等) 4、太长的代码(类、方法等) 5、Flex 组件征集周期的不当使用(commitProperties 等) Flex PMD 可以通过命令行、Maven、Ant、Automator on Mac OS X 等方式使用。开发团队正在努力地想把它做成一个 eclipse 的插件。运行FlexPMD
因为我主要是在 windows 和 Debian Linux 上做开发,所以只讲一下如何从命令行运行它,其它方法请参考文档(http://opensource.adobe.com/wiki/display/flexpmd/How+to+invoke+FlexPMD)。
1、下载最新的版本,当前是 1.0.RC4,解压;
2、进入解压目录,执行如下命令:
java -jar flex-pmd-command-line-1.0.RC4.jar -s ./src/ -o .
其中 -s 参数用以指定 as 源文件所在的目录,-o 用以指定报表的输出目录;当然还有其它参数比如指定输出的报表文件名等,具体的用法可以不带参数执行 flex-pmd,就可以查看到了。如下图:
成功运行的话,可以看到输出目录生成了一个 pmd.xml 文件,这个 xml 报表可以一些工具打开,比如 Hudson,但我是个懒人,要去安装这个插件未免麻烦,就找了个由 adobe 提供在线的 Flash 应用(http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html),效果如下: