提高代码质量—FindBugs代码审查工具

一、什么是FindBugsFindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。它可以简单高效全面地

其实提高代码质量—FindBugs代码审查工具的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享提高代码质量—FindBugs代码审查工具的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

FindBugs 是一种静态分析工具,用于检查类或JAR 文件,将字节码与一组缺陷模式进行比较,以发现可能的问题。它可以帮助我们简单、高效、全面地发现程序代码中的bug、异味和潜在风险。针对各种问题,还提供了简单的修改意见,供我们重构时参考;通过使用它,我们可以在一定程度上减少我们代码评审的工作量,提高评审效率。通过findbugs找到bug,然后自己重构代码,可以培养我们的编码意识和水平,形成良好的习惯,提高开发和编码能力。

2.安装FindBugs

点击“帮助-安装新软件”,如下图:

在“名称”中输入findBugs,在“位置”中输入:http://findbugs.cs.umd.edu/eclipse

3. 使用方法

安装插件后,选择指定的包或类查找bug

打开“窗口”—“显示视图”—“Bug Explore”,可以打开Bug列表。

发现的错误有三种颜色:

黑虫标志属于机密。

红色错误表示代码发现后必须修改的严重错误。

橙色错误表示应尽可能修复的潜在警告错误。

双击bug项目,会在右侧编辑窗口自动打开相关代码文件,并连接到代码片段。点击行号旁边的小bug图标后,eclipse下方的输出区域会提供详细的bug描述、修改建议等信息。我们可以根据这些信息进行更改。

4. 问题发现实例

忽略方法返回值

该检测器会查找代码中方法返回值被忽略但不应被忽略的位置。一个常见的例子是调用String 方法时:

忽略返回值的示例

字符串aString=’鲍勃’; b.replace(‘b’, ‘p’); if(b.equals(‘pop’)) 这个错误很常见。在第2 行,程序员认为他已将字符串中的所有b 替换为p。确实如此,但他忘记了字符串是不可变的。所有此类方法都会返回一个新字符串,并且不会更改消息的收件人。

空指针示例

Person person=aMap.get(‘bob’); if (person !=null) { person.updateAccessTime();} 字符串名称=person.getName();在此示例中,如果第1 行中的Map 不包含一个名为“bob”的人,则在第5 行询问该人的姓名,则会出现空指针异常。因为FindBugs 不知道map 是否包含“bob”,所以它将第5 行标记为可能的空指针异常。

初始化前读取字段

该检测器查找在构造函数中初始化之前读取的字段。此错误通常是——,但并不总是——,这是由于使用字段名称而不是构造函数参数引起的。

读取构造函数中未初始化的字段

公共类事物{私有列表操作;公共事物(字符串startingActions){ StringTokenizer tokenizer=new StringTokenizer(startingActions); while (tokenizer.hasMoreTokens()) { actions.add(tokenizer.nextToken()); } }}在此示例中,第6 行将生成空指针异常,因为变量actions 尚未初始化。

命名检查

针对标准Java 命令规范进行测试:变量名称不应太短;方法名不宜太长;类名应以小写字母开头;方法和字段名称应以小写字母等开头。

未使用的代码检查

提高代码质量—FindBugs代码审查工具

查找从未使用过的私有字段和局部变量、无法执行的语句、从未调用过的私有方法等等。

嵌套检查

例如:switch语句应该有default块,应该避免深度嵌套的if块,不应该重新分配参数,不应该比较double值是否相等。

进口报关单检查

检查import 语句是否有问题,例如同一个类被导入两次或被导入到java.lang 类中。

JUnit 测试检查

查找测试用例和测试方法的具体问题,例如方法名称的正确拼写以及suite() 方法是否是静态和公共的。

字符串检查

了解使用字符串时遇到的常见问题,例如重复的字符串标量、调用String 构造函数以及对String 变量调用toString() 方法。

括号检查

检查for、if、while 和else 语句中是否使用括号。

代码大小检查

测试方法太长,类包含太多方法,以及重构时的类似问题。

最终功能检查

因为finalize()方法在Java语言中并不是那么常见,虽然它们的使用规则很详细,但是人们对它们还是比较陌生。此类检查会查找Finalize() 方法的各种问题,例如空终结器、调用其他方法的Finalize() 方法、对Finalize() 的显式调用等。

克隆检查

联轴器检查

寻找类之间过度耦合的迹象,例如导入过多;当超类型或接口就足够时使用子类类型;类中的字段、变量和返回类型过多。

异常检查

日志检查

查找java.util.logging.Logger 的不当使用,包括非最终、非静态记录器以及在一个类中拥有多个记录器。

打开—关闭检查

检查文件或通讯以查看是否忘记关闭。

其他测试

FindBugs 网站上提供了完整的错误列表和描述。

构建您自己的规则集

用户评论

提高代码质量—FindBugs代码审查工具
打个酱油卖个萌

作为一个程序员,我一直都在尝试提高自己的代码质量。最近学习了FindBugs这个工具,感觉很棒!它能帮我快速找到一些潜在的问题,比如空指针异常、内存泄漏等等,让我在编写和调试代码时更自信!

    有12位网友表示赞同!

提高代码质量—FindBugs代码审查工具
作业是老师的私生子

想跟作者说:FindBugs真的太棒啦!我之前遇到过很多诡异的BUG,用它扫描一遍就能轻松找出来。以前debug花了好多时间,现在效率简直提升了好几个档次!强烈推荐给所有想提高代码质量的小伙伴们!

    有10位网友表示赞同!

提高代码质量—FindBugs代码审查工具
陌然淺笑

确实,高质量代码是每个程序员追求的目标。FindBugs这个工具是一个很好的辅助手段,能帮助我们快速定位潜在的 BUG,并改进代码质量。建议大家可以学习一下的使用方法,它能帮你节省很多时间和精力。

    有5位网友表示赞同!

提高代码质量—FindBugs代码审查工具
余温散尽ぺ

FindBugs虽然好用,但我觉得它有时候可能会出现误判的情况。对于一些比较复杂的代码逻辑,需要结合实际情况进行判断,不能完全信任工具给出的结果。

    有12位网友表示赞同!

提高代码质量—FindBugs代码审查工具
殃樾晨

我觉得写出高质量的代码其实更重要的是理解算法和数据结构,而不是仅仅依靠工具。使用FindBugs更多的是作为辅助手段,真正重要的是要掌握扎实的编程基础。

    有20位网友表示赞同!

提高代码质量—FindBugs代码审查工具
优雅的叶子

这个FindBugs听起来很能帮到我!我平时在开发项目的时候经常遇到一些意想不到的问题,希望能通过它提前预警,避免浪费时间 Debugging。

    有8位网友表示赞同!

提高代码质量—FindBugs代码审查工具
泡泡龙

代码审查工具很多啦,为啥要选 FindBugs?有什么特别之处吗?感觉名字不太好记…

    有12位网友表示赞同!

提高代码质量—FindBugs代码审查工具
执拗旧人

作为一个资深程序员,我认为FindBugs是一个非常不错的工具。它能帮助我们更快速地发现潜在的 BUG,从而提高代码质量。当然,也不能完全依赖工具,还是要注重自身的代码审阅习惯和经验积累。

    有11位网友表示赞同!

提高代码质量—FindBugs代码审查工具
像从了良

虽然FindBugs能够帮我们找一些潜在的问题,但它不能完全覆盖所有可能的错误。对于一些非常复杂的逻辑或者新的编程技术,可能还需要依赖人工审查才能保证代码质量。

    有8位网友表示赞同!

提高代码质量—FindBugs代码审查工具
花菲

提高代码质量不仅仅是依靠工具,更需要良好的开发习惯和规范的编码风格。FindBugs只是辅助手段,发挥最大的作用需要开发者与之结合,不断改进自己的代码编写能力。

    有19位网友表示赞同!

提高代码质量—FindBugs代码审查工具
念旧情i

FindBugs 这款工具我用过!它能帮你快速找到很多潜在的问题,比如空指针异常、内存泄漏等等,确实可以有效提高代码质量! 强烈推荐给所有想提高代码质量的小伙伴们!

    有7位网友表示赞同!

提高代码质量—FindBugs代码审查工具
爱到伤肺i

对于初学者来说,FindBugs是个非常有用的工具,可以帮助我们学习并掌握一些编程方面的知识。当然,熟练使用 FindBugs 需要一定的实践经验和理解能力。

    有17位网友表示赞同!

提高代码质量—FindBugs代码审查工具
一尾流莺

虽然FindBugs的功能强大,但我个人觉得它对代码注释的识别还不够完善。有时候会把一些重要的解释信息误判为错误,这可能会给开发者带来一些困惑。

    有17位网友表示赞同!

提高代码质量—FindBugs代码审查工具
繁华若梦

提高代码质量是一个持续的学习和改进的过程,FindBugs只是其中一个重要的工具。建议大家在使用 FindBugs 的同时,也要关注开源社区上的相关讨论,不断提升自己的编程能力和水平。

    有19位网友表示赞同!

提高代码质量—FindBugs代码审查工具
太难

我觉得FindBugs这个工具还是挺不错的,特别是对于一些大型项目的代码维护来说,能够帮助我们更有效率地识别问题,加快调试速度

    有11位网友表示赞同!

提高代码质量—FindBugs代码审查工具
逃避

除了FindBugs之外,还有很多优秀的代码审查工具可供选择。建议大家根据自己的实际需求和项目特点进行对比,选择最适合的工具来提高代码质量。

    有15位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/126005.html

(0)
小su's avatar小su
上一篇 2024年9月1日 下午9:05
下一篇 2024年9月1日 下午9:17

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注