特点:
- 它可以有效的帮助我们监视代码,以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一 。
- Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了使用它提供的几种常见标准之外,你也可以定制自己的标准 。
- Checkstyle提供了支持大多数常见IDE的插件,大部分插件中就含有最新的Checkstyle,就不用费心再部署一份了 。
- Checkstyle可以检查代码的很多方面,从传统观点看,它主要是用来检查代码层面的,自从第三版以后,它的内部架构作了重大改变,很多其它意图的检测加了进来,现在Checkstyle可以检查像类设计的问题,重复代码,如锁的双重检查的bug模式 。
- 对Java文件进行词法语法分析,生成语法树 。
- 载入配置文件(checkstyle-metadata.xml以及自定义的配置文件)register check事件 。
- 按照深度优先遍历对语法树进行解析,按照注册的事件,在到达某些节点( AST ) 时进行style检查(AST,A child-Sibling Tree,是语法树中的某个节点,其类型在TokenTypes类中定义 。)
- 我们所说的自定义Style的检查,就是在第二步设定的 。这里牵涉到一个叫com.puppycrawl.tools.checkstyle.api.Check 的类,我们通常需要重载其中的两个函数: public int[] getDefaultTokens()和public void visitToken(DetailAST ast) 。这两个函数的含义为,在遍历语法树的过程中,每当到达getDefaultTokens函数所返回的AST类型,程序就进入visitToken进行具体的检查和分析,即,真正的分析检查过程是在visitToken中实现的 。
特点:
- Hammurapi是用来强制代码设计规范的 。
- Hammurapi是一个遵循设计的工具,提供了自动而且一致的方式来实现设计规范,因此使代码评审更加有效而轻松 。
- Hammurapi如何工作:
Hammurapi这样的代码分析工具都带有语言分析器 。语言分析器是一种输入语言代码并输出抽象语法树的工具 。这个树上的节点代表语言标识 。例如,考虑一下简单的算术表达式:3+4. 语言分析器会解析他成为一个如图5所示的语法树 。在这个树中,节点+代表操作符标识 。节点3和4是操作数标识Hammurapi使用ANTLR(另一个语言识别工具)作为语言分析器 。然而ANTLR API是相当底层的 。为改善可用性,Hammurapi使用另一个API,基于ANTLR 的JSEL(Java源程序工程类库),来访问抽象语法树 。一旦树构建完成,一种树遍历算法就被用来访问树中每一个节点 。每次访问到一个节点,一种回调机制(Visitor模式)被用来提示相应的检查器 。在这些回调方法中,检查器收集相关的信息来确定是否有违反规范的地方存在 。
特点:
- 检测代码语法规则
- 潜在的bug
- 检测编码模式对代码可读性及大小的影响
- 检测是否违反EJB规范
推荐阅读
- 复合了?曝梁洛施怀四胎,李泽楷满脸笑意陪同检查,李嘉诚送豪宅
- 电信651错误代码怎么解决
- 静态IP和动态IP有什么区别?
- 651错误代码怎么解决
- 淘宝代码怎么用
- 开始用Rust编写代码!
- 电脑上没有声音怎么办
- 如何自己建立网页代码
- 提车时如何验车
- 怎样检查华为手机是不是正品新的