Findbugs反模式的分享

开发 后端
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

FindBugs解释

FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。之所以叫做静态分析工具,是因为它在不实际运行程序的情况对软件进行分析。使用findbugs有很多种方式,从 GUI、从命令行、使用 Ant、作为 Eclipse 插件程序和使用 Maven,甚至作为hudson持续集成的插件。

findbugs自己定义了一系列的检测器,1.3.9版本的检测器有83种Bad practice(不好的习惯),133种Correctness(正确性),2种Experimental(实验性问题),1种 Internationalization(国际化问题),12种Malicious code vulnerability(恶意的代码),41种Multithreaded correctness(线程问题),27种Performance(性能问题),9种Security(安全性问题),62种Dodgy(狡猾的问题)。

可能大家更感兴趣的是它的工作原理,我们可以首先看一下eclipse插件下面的lib包:

 

 

其中的bcel.jar和asm-xx.jar都是对java字节码(通过命令javap -c 类名 反编译class文件)的操作,原理都是在类被装载虚拟机之前,动态修改类(可以直接创造类,也就是说不经过java编译器那一步),bcel是apache下面的一个开源项目,而asm是由法国某电信公司的研发工程师负责。

在公司内部推广findbugs的时候遇到一些阻力,其中有一个很重要的原因就是很多人认为黄色臭虫没有多大用处,为此我历时一个月对公司内部的一些代码进行了解释,大约有50多种,没用弄完,因为工作量实在太大,有些bug我自己都要想半天,还要查找很多资料才能说服别人,文档详见附件,当然都是去掉了公司业务和逻辑的,希望分享出来对有些人有用。

【编辑推荐】

  1. Ubuntu安装Eclipse-SDK-3.3小结
  2. Eclipse插件jinto资源配置文件
  3. Eclipse启动参数大全
  4. 深入浅出Eclipse RCP(1):Hello RCP
  5. Eclipse自动补全增强
责任编辑:金贺 来源: ITEYE博客
相关推荐

2012-02-02 09:21:39

编程

2021-10-29 05:53:51

前端测试开发代码

2014-07-30 10:08:13

Python反模式

2023-10-30 18:59:38

REST API开发

2020-09-14 08:30:44

Kubernetes容器

2023-09-13 11:58:17

云原生反模式

2021-01-11 05:37:54

仓储模式接口

2021-04-20 22:09:13

Python编程语言

2015-10-10 11:23:17

Java常量反模式

2015-09-22 10:56:13

Java反模式

2016-08-04 14:41:21

架构java服务端开发

2017-09-29 10:49:30

2022-11-03 15:36:44

事件响应反模式系统

2023-12-22 14:27:30

2010-12-02 10:30:09

Apache Hado反模式Map Reduce

2009-06-04 20:26:45

2013-01-16 14:45:47

HadoopApache Hado

2021-11-26 09:00:00

数据库数据集工具

2019-11-07 15:07:30

微服务模式反模式

2009-12-18 10:47:16

Ruby装饰模式
点赞
收藏

51CTO技术栈公众号