zoukankan      html  css  js  c++  java
  • 用 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_work
    成功运行的话,可以看到输出目录生成了一个 pmd.xml 文件,这个 xml 报表可以一些工具打开,比如 Hudson,但我是个懒人,要去安装这个插件未免麻烦,就找了个由 adobe 提供在线的 Flash 应用(http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html),效果如下:
    pmd

    原理和其它

    与大多数的静态代码分析工具相似,PMD 的核心是 as3 的解释器和 EBNF 结合运用,把代码解释成抽象语法树(AST),当然,还有一些规则是使用正则表达式来完成的。 它的基本分析过程是:1、装载规则;2、在指定目录中找到 as 源文件;3、生成 AST;4、对每一个文件应用规则;5、最后是产生一个 XML 报表。 PMD 的规则集是可以扩展的,所以团队的技术负责人或架构师可以取消或制定一些规则,这个工具我觉得非常有用。
  • 相关阅读:
    Spring(十一):Spring配置Bean(四)SpEL
    Java中动态代理方式(使用java.lang.reflect.Proxy实现):
    设计模式(八)静态代理与动态代理模式
    Spring(十):Spring配置Bean(三)Bean的作用域、使用外部属性文件
    如何把本地代码提交到git(码云)、github代码管理项目上
    Spring(九):Spring配置Bean(二)自动装配的模式、Bean之间的关系
    centos7安装mysql5.7
    haproxy(单机)+mysql集群负载均衡
    sql server 用户创建与权限管理
    MySQL之 从复制延迟问题排查
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154391.html
Copyright © 2011-2022 走看看