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

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof