`

使用FindBugs-IDEA插件找到代码中潜在的问题

 
阅读更多
http://blog.csdn.net/fancy_xty/article/details/51718687

我们通常都会在APP上线之后,发现各种错误,尤其是空指针异常,这些错误对于用户体验来说是非常不好的,但其实大部分的问题,我们都能够提前发现.

在编写代码的过程中,可能不会时时刻刻记得检查空的引用,还有删除没有用过的变量,在我们自己测试的过程中可能难以发现问题,一旦app上线,用户的使用环境改变,这些潜在的问题就可能会冒出来.
当然这这只是对于我这种经常写出空指针异常的小白而言的,编程风格良好,编程严谨的大神请忽略.

今天我介绍一个小插件,帮助我们提前找到这些潜在的问题,然后根据需要去修改.

第一步下载插件,在AndroidStudio的File->Setting->Plugins->Browser Repositorise中搜索FindBugs-IDEA.然后install.
install-plugin
因为已经安装过插件,所以install的按钮已经消失了.
安装成功后需要重启AS才可以使用.
use-plugin
静静等待一会,在下方生成分析结果

这里写图片描述

找到的bug太多,数量就不展示啦.
我来简单介绍一下这几类bug,当然有些你是可以忽略的.
1->Bad pratice编程的坏习惯
主要是命名问题,比如类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些如果不想改可以直接忽略.

2->Malicious code vulnerability 恶意代码漏洞
听起来很吓人呀,主要是一些属性直接使用public让别的类来获取,建议改为private并为其提供get/set方法.
还有一些public的静态字段,可能会被别的包获取之类的.
这些也需要根据项目具体情况来,个人意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.如果你认为这些不需要修改,完全可以忽略.

3->Dodgy code 糟糕的代码
·比如一个double/float被强制转换成int/long可能会导致精度损失,一些接近零的浮点数会被直接截断,事实上我们应该保留.
这里顺便提一点,这两天看了《app研发录》,在规范代码,尽量规避错误这方面我也有了一些收获.
在类型转换的时候,我们应该为类型转换提供一个安全的转换方法,因为我们永远不会知道,我们的app在用户手里会发生什么,所以我们要尽可能的去减少这种发生错误的可能.

·比如使用switch的时候没有提供default。

·多余的空检查,就是不可能为空的值,增加了不为空判断,这是没有必要的。属于代码冗余

·不安全的类型转换等等。
这项太多了,就不一一列举了。

4->performance 性能
主要是一些无用的代码,比如声明了没有用到的属性等等

5->correctness 代码的正确性 这一项应该算是最重要的了
主要是没有对变量进行不为空判定,在特殊情况可能发生空指针异常.

这篇文章还只是对FindBugs这个插件最主要的功能进行介绍,相信你能在使用过程中发现这个工具更多的用法.

该博客由博主原创,转载请声明出处
http://blog.csdn.net/fancy_xty/article/details/51718687
分享到:
评论

相关推荐

    FindBugs-IDEA-1.0.1插件

    3. **集成度高**:FindBugs-IDEA插件与IntelliJ IDEA无缝集成,开发者在编写代码时,可以实时看到FindBugs的分析结果,直接在代码编辑器中进行修复。这种即时反馈大大提高了开发效率,避免了在编译或运行阶段才发现...

    FindBugs-IDEA-1.0.1

    使用FindBugs-IDEA插件,开发者可以在早期阶段发现并修复问题,避免在后期集成测试或生产环境中出现故障。这不仅提高了代码质量,也有助于提升团队的整体开发效率和项目的可靠性。 6. **与其他工具的配合** ...

    FindBugs-IDEA-1.0.1.zip

    总的来说,FindBugs-IDEA插件1.0.1版本为Android开发者提供了强大的代码质量检查功能,通过离线安装包的使用,即使在网络环境不佳的情况下也能保证开发过程中的质量控制。正确理解和有效利用FindBugs,可以显著提升...

    FindBugs-IDEA

    当开发者在IDEA中安装并启用FindBugs-IDEA插件后,它可以自动扫描项目中的源代码,并报告可能存在的问题。这些问题通常包括但不限于空指针异常、未初始化的变量、资源泄漏、并发问题等。每个问题报告都会详细说明...

    idea插件(FindBugs-IDEA、MavenRunHelper、Rainbow Brackets、Translation)

    将其作为IDEA插件集成后,可以在编码过程中实时发现可能存在的问题,如空指针异常、资源未关闭等,帮助开发者提前预防和修复bug,提高代码质量。通过高亮显示可疑代码行,FindBugs-IDEA可以引导开发者遵循最佳实践,...

    FindBugs-IDEA-1.0 1.1.zip

    4. **集成IDEA界面**:FindBugs-IDEA插件无缝集成在IntelliJ IDEA中,可以在代码编辑器中直接显示问题标记,并通过导航面板查看所有检测结果,方便进行错误定位和修复。 5. **性能优化**:尽管FindBugs进行了大量的...

    findbugs for idea

    而FindBugs for IDEA是这款工具的IntelliJ IDEA插件版本,它将FindBugs的强大功能无缝集成到流行的Java开发环境中,为开发者提供了一种高效、便捷的方式来提升代码质量。 一、FindBugs概述 FindBugs通过分析字节码...

    sonar-findbugs插件源码

    SonarQube是一款知名的代码质量管理工具,它可以帮助开发者检测代码中的潜在问题,包括代码异味、错误和漏洞。FindBugs是SonarQube中的一个重要插件,专门用于静态分析Java代码,查找可能的bug和设计问题。源码分析...

    FindBugs_Idea

    【描述】本文将详细介绍如何在IntelliJ IDEA这款强大的Java集成开发环境中安装并使用FindBugs插件,该插件是FindBugs-IDEA-1.0.1的最新版本,旨在帮助开发者检测和修复代码中的潜在问题,提高代码质量。 **一、...

    findbugs-3.0.1.zip

    FindBugs是一款用于查找Java代码潜在问题的静态分析工具。它通过分析字节码而非源代码,能够检测出可能存在的错误、设计问题、未初始化的变量、空指针异常等多种问题,帮助开发者在编码阶段就提前发现并修复问题,...

    著名的findbugs插件,idea版本

    总的来说,IntelliJ IDEA 中的 FindBugs 插件是一个强大的工具,它能够显著提升代码质量,帮助开发者预防潜在的问题,同时简化了代码审查的过程。通过合理地使用和配置,FindBugs 能够成为开发者手中的利器,助力于...

    findbugs-3.0.1

    在分析过程中,FindBugs会将每个类或JAR文件的字节码与这些模式进行匹配,一旦找到匹配项,就会报告为潜在问题。 三、FindBugs的主要功能 1. **错误检测**:FindBugs可以检测出一系列可能的编程错误,如未初始化的...

    findbugs-2.0.1-rc2

    3. **插件系统**:FindBugs支持与其他开发环境(如Eclipse、IntelliJ IDEA)集成,通过插件形式提供代码分析功能,方便开发者在编写代码的同时检查潜在问题。 4. **规则库**:FindBugs包含一个丰富的规则库,覆盖了...

    findbugs-1.2.1

    虽然其内置的检测规则已经相当全面,但用户还可以通过安装社区提供的额外插件来扩展其功能,例如集成到IDE(如Eclipse或IntelliJ IDEA)中,使代码分析更加便捷。 在实际应用中,FindBugs不仅适用于Java开发,还...

    spotbugs-idea-1.2.4.zip

    SpotBugs和FindBugs是两个著名的静态代码分析工具,它们在Java开发领域中被广泛使用,用于检测潜在的代码缺陷和错误。虽然FindBugs是早期的项目,但SpotBugs是其后继者,它在FindBugs的基础上进行了改进和扩展。`...

    代码检查工具findbugs插件

    3. 检查代码:在项目中右键选择“FindBugs” -> “Analyze Project”,插件会自动分析整个项目并显示潜在的问题。这些问题会以图标的形式出现在代码行旁边,方便开发者定位和修复。 四、FindBugs的常见问题类型 ...

    findbugs1.3.9插件

    《FindBugs1.3.9插件:自动检测Java代码问题的利器》 FindBugs是一款著名的静态代码分析工具,特别针对Java编程语言设计,它能够帮助开发者在程序运行前找出潜在的问题,如错误、漏洞和不良编程习惯。本文将深入...

    FindBugs安装与使用说明

    FindBugs会分析代码并生成一份报告,报告中包含每个潜在问题的详细信息,包括问题类型、可能的影响、解决方案建议等。问题类型通常以字母缩写表示,如Dm(可能的未初始化的成员)、NP(空指针异常)等。每个问题都有...

Global site tag (gtag.js) - Google Analytics