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都可用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_27093465/article/details/64923239
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/838706

相关文章

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF