Intellij IDEA findbugs 插件 下载、安装、使用详解(2017年实测mac和windows都可用)

本文主要是介绍Intellij IDEA findbugs 插件 下载、安装、使用详解(2017年实测mac和windows都可用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IntelliJ IDEA使用教程 (总目录篇)


首先我下载的版本是 FindBugs-IDEA-1.0.1 ,然后我会在文中提供(FindBugs-IDEA-1.0.1.zip)下载资源,我在安装过程中的问题如下:
1,在编辑器里面始终下载不下来,每次都是一半的时候就失败啦。最后就去网上下载zip文件本地安装。
下面就是下载安装使用一条龙服务详情

先是在这个编辑器里面怎么安装这个插件的示范。也许你网络很顺畅呢,就OK拉。



我是等到花儿都谢啦,也没有下载成功。无奈之下,只能走第二种方法咯。

你可以自己去下载最新的,也许我提供的已经不是最新的了呢?下载链接页面的网址:
https://plugins.jetbrains.com/plugin/3847-findbugs-idea


这个是安装完之后,重启之后的截图,看到他就在下面啦。可以使用啦。


你要是不想下载的话,或者页面打不开的话,可以使用如下,我的某度云盘的分享,

我的某度云盘的地址如下:
链接:http://pan.baidu.com/s/1bpKPzWF 密码:3z6h


下面是实际在项目里面使用的情况


简单说明如下:

自己鼠标移动到右边的所有图表,看看每个图标都是什么意思。我就大概说一下。
第一竖列的红色图标是分析当前的这个文件。
下面是分析是某一个类,鼠标所在的那个类
再往下是某个包,某个模块,整个项目,所有修改过的文件,等等吧,看意思都知道大概是啥意思。
第二数列呢,则是控制分析结果的展示情况,自己点点试试就好


下面就整个实际找到的代码的问题。我单独分析我的某个service文件,看代码里面的问题。如下图所示:



看他的意思就是说我代码里面把这个声明为静态属性,但是这个SimpleDateFormat是线程不安全的。
在多线程使用的时候,可能就会有意想不到的问题。所以,他就找到个问题啦。
然后,咱就改咯。


这么改完,之后,再分析以下 这个service文件。看看什么情况,但是在这之前,可能你有疑惑,怎么把代码里面这些黄色的提示给关掉。


点这个差号就 可以啦,代码就恢复成原来的样子啦。

下面看再次分析的结果。


然后就看到,代码就没有任何提示了,这样的代码只是说,减少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 代码的正确性 这一项应该算是最重要的了 
主要是没有对变量进行不为空判定,在特殊情况可能发生空指针异常.



这篇关于Intellij IDEA findbugs 插件 下载、安装、使用详解(2017年实测mac和windows都可用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838706

相关文章

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址