AS3/Flex 代码审查工具 – FlexPMD

FlexPMD 是什么?
FlexPMD 是一款免费开源的 AS3/Flex 代码审查工具,由Adobe 发布。

FlexPMD 通过审查 AS3/Flex 目录检测常见的不良用法,例如:

  • 未使用的代码(函数,变量,常量等)
  • 无效代码 (滥用动态过滤器, 厚重的构造器等)
  • 过于复杂的代码 (嵌套循环, 条件过多等)
  • 代码过长 (类, 方法等)
  • 错误使用组件的生命周期 (commitProperties 等)

FlexPMD 使用了PMD部分机能,原理与其类似,也是通过规则定义检测内容。
截止发稿时 FlexPMD 已有 20 个规则组,包括 100 多个规则,当然你也可以自定义规则以扩展当前机能。

你可以通过以下方式调用 FlexPMD:

  • The command line
  • Maven
  • Ant
  • Automator on Mac OS X
  • Eclipse
  • TextMate on Mac OS X
  • FlashDevelop

官方站点
http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD

安装 FlexPMD 插件

  1. 打开 Eclipse
  2. 点击 Help > Install New Software… > Add…
  3. 在打开的对话框中输入以下内容,之后点击 OK 按钮
    Name: http://opensource.adobe.com/svn/opensource/flexpmd/plugin/trunk/flex-pmd-eclipse-plugin-site
  4. 待信息显示后全选
  5. 按安装向导下一步直至完成
  6. 安装成功后你会在以下两处位置看到 FlexPMD 项
    选择 Window > Preferences,在打开的对话框中
    右键 Flex 工程,打开的菜单中

下载 FlexPMD 插件所需 jar 包

  1. 从 FlexPMD 下载页下载最新的 All-in-one-bundle 类型压缩包
  2. 解压上诉文件到某一目录(我放在 C:\FlexPMD 下)

生成 FlexPMD 规则配置文件
FlexPMD 有一个在线规则组创建器,你可以通过它了解、屏蔽、追加规则,之后导出这些规则到某一目录(我放在 C:\FlexPMD\rules 下)

配置 FlexPMD 插件

  1. 选择 Window > Preferences > FlexPMD
  2. 在打开的对话框中入力以下内容,其他默认
    FlexPMD command line installation:C:\FlexPMD\flex-pmd-command-line-1.2.jar
    FlexPMD custom ruleset:C:\FlexPMD\rules\pmd_rule.xml
    FlexCPD command line installation:C:\FlexPMD\flex-pmd-cpd-command-line-1.2.jar
  3. 点击 OK

运行 FlexPMD
FlexPMD 已安装完成,使用很简单:

  1. 选择 Flex 工程根或工程下的目录,文件
  2. 右键 FlexPMD > Run FlexPMD

FlexPMD設定规则一览

FlexPMD是什么?
FlexPMD是一种 ActionScript 工具,类似于 JavaPMD。FlexPMD 通过审核 ActionScript 3.0 或 Flex 源目录来提高代码品质。

FlexPMD能检测出什么问题?
它可以检测出品质欠佳的代码编写方法,例如未使用的代码、过度复杂的代码、过长的代码和使用不正确的 Flex 组件生命周期。
如:
   1. 绑定规则:
      绑定类时使用了硬编码的字符串;
      绑定表达式过长。

   2. Cairngorm规则:
      ModelLocator必须是不可绑定的;
      一个Cairngorm事件的名称应在实际事件名称前包含功能区名称。

   3. 使用组件规则:
      不要通过updateDisplayList方法添加或删除可显示的子对象;
      不要明确的调用callLater。

   4. 表达式规则:
      Catch语句不能为空;
      If语句不能为空。

   5. 可维护性规则:
      导入类的数量过多;
      包含了硬编码的布尔值;
      方法为空;
      …

   6. 命名规则:
      在变量名字最后使用数字,不利于理解它的含义;
      类名字必须以大写字母开头;
      接口名字应该以字母I开头;
      …

   7. 实装规则:
      存在全局绑定类;
      在循环内部定义了变量;
      过多的嵌套if语句;
     
原文地址:https://www.cnblogs.com/daichangya/p/12959900.html