【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)

简介: 您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧,前面几篇文章介绍的都是开发类的插件,这篇文章将介绍一下编码规范和静态代码检查相关的插件。

您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧,前面几篇文章介绍的都是开发类的插件,这篇文章将介绍一下编码规范和静态代码检查相关的插件。

Alibaba Java Coding Guidelines

首先介绍的是阿里巴巴的编码规约,相信大家对这个都比较熟悉了。安装方式是在

settings->plugins里面搜索
Alibaba Java Coding Guidelines-
>install->重启Idea

这个插件侧重于代码的缺陷,详细的编码规范在《阿里开发手册》已经定义,大家有兴趣的可以看看。

如果要检查整个项目所有文件的话,可以关闭窗口中的类,然后按Ctrl+Alt+Shift+J 快捷键,或者如下图操作也是可以的。

检查的结果如图所示:

如果要对单个的文件进行检查的话,可以在类上右键,选中Alibaba Coding Guidelines Analyze

CheckStyle

第二个要介绍的插件是CheckStyle插件。这个插件侧重于代码的格式检查。使用方式如下图:在checkstyle面板,点击检查按钮进行检查,也可以检查单个文件。

如上图,可以看到都是一些缩进啥的编码规范,可以不用太关注。

Findbugs

findBugs-idea的作用侧重于发现代码中可能存在的bug。它检查类或者JAR 文件,将字节码与一组缺陷模式(自带检测器)进行对比以发现可能的问题。执行Findbugs编码规约扫描PMD

(Programming Mistake Detector) 是一个开源的静态代码检查工具。PMD 支持多种语言,比如项目本身的 Java,Salesforce 相关的 Apex、VisualForce,还有 JavaScript、XML 等。PMD 对于各种语言都预设了一套代码规则,也支持开发自定义规则,可以使用 Java 类或者XPath。

选中一段代码,然后右键Run PMD->Pre Defined,这里有许多检查类型可以选择,有代码样式,设计等等。

SonarLint

最后要介绍的是SonarLint插件,这个插件和Alibaba Java Coding Guidelines插件是实际项目中用到的比较多的两个插件。下面就详细介绍一下插件的安装和使用。

1.安装

settings->plugins里面搜索
SonarLint
>install->重启Idea

2.配置SonnarLint 检查地址:

settings->Tools->SonarLint->Settings 
中增加sonarqube的地址

如下图配置了sonarqube的地址

3. 使用SonarList

配置好SonarList之后,就是使用了,SonarLint既可以对所有文件进行检查,检查全部文件的方式是:点击Analyze->Analyze All Files with SonarLint

又可以单个文件检查,单个文件就是在文件编辑区右键选中:

生成的报告如下:这里既有违规的问题(即潜在的Bugs & Vulnerabilities)。比如:NullPointerException,又有代码的坏味道(Code Smells)。一般而言Bug级别的问题需要我们处理,坏味道可以忽略。还有另外一个指标就是代码的重复率,即代码内部的重复代码。

各类插件的比较

检查侧重点不同

工具 分析对象 侧重 应用技术
Alibaba Java Coding Guidelines 源代码 代码缺陷 Inspection机制提供实时检测功能
CheckStyle 源文件 格式缺陷 缺陷模式匹配
FindBugs 字节码 代码缺陷 缺陷模式匹配,数据流分析
PMD 源代码 代码缺陷 缺陷模式匹配
SonarList 源代码 代码缺陷 缺陷模式匹配,多个维度处理

检查项不同

工具 目的 检查项
Alibaba Java Coding Guidelines 扫描出所有潜在的代码隐患 方法名 参数名 成员变量 局部变量 枚举类 try-catch
CheckStyle 检查Java源文件是否与代码规范相符 Javadoc注释 命名规范 标题import语句 体积大小 空白
FindBugs 基于Bug Patterns 概念,查找javabytecode(.class文件)中的潜在bug NullPoint空指针检查,没有不合理关闭资源
PMD 检查Java源文件潜在问题 未使用的本地变量 空的catch块,未使用参数空 if语句,重复的import语句,未使用的私有方法 可能是Singleton的类 短/长变量及方法名字
SonarList 扫描出所有潜在的代码隐患 方法名 参数名 成员变量 局部变量 枚举类 try-catch

总结

本文简单的介绍了编码规范与静态代码检查插件的使用,比较简单和常用。


相关文章
|
6月前
|
数据采集 搜索推荐 网络安全
软件开发入门教程网之软件开发入门教程网之C++ 常量
软件开发入门教程网之软件开发入门教程网之C++ 常量
24 0
|
1月前
|
Java
Java开发规范(简洁明了)
Java开发规范(简洁明了)
|
5月前
|
算法 编译器 程序员
代码规范:其它编程经验
【建议 11-3-4】当心数据类型转换发生错误。尽量使用显式的数据类型转换(让人们知道发生了什么事),避免让编译器轻悄悄地进行隐式的数据类型转换。
32 0
|
6月前
|
JavaScript 前端开发 数据安全/隐私保护
软件开发入门教程网之TypeScript 类
软件开发入门教程网之TypeScript 类
|
11月前
|
JavaScript 前端开发 数据安全/隐私保护
软件开发入门教程网之TypeScript 类
TypeScript 是面向对象的 JavaScript。 类描述了所创建的对象共同的属性和方法。 TypeScript 支持面向对象的所有特性,比如 类、接口等。
|
11月前
|
移动开发 前端开发 JavaScript
前端编码规范
前端编码规范
455 0
|
XML 前端开发 Java
「 Java开发规范 」10人小团队Java开发规范参考这篇就够了!
Kent Beck 的简单设计四原则非常好地来指导我们的如何写出优秀的代码,如何有效地判断我们的代码是优秀的。 通过所有测试(Passes its tests):强调的是外部需求,这是代码实现最重要的 尽可能消除重复 (Minimizes duplication):代码的模块架构设计,保证代码的正交性,保证代码更容易修改 尽可能清晰表达 (Maximizes clarity):代码的可阅读性,保证代码是容易阅读的 更少代码元素 (Has fewer elements):保证代码是简洁的,在简洁和表达力之间,我们更看重表达力
「 Java开发规范 」10人小团队Java开发规范参考这篇就够了!
|
XML 数据库 Android开发
|
数据库 iOS开发 设计模式
iOS-《编写高质量代码》笔记-第七章 设计模式与Cocoa编程
建议45:设计模式是特定环境下的特定问题的解决方案 设计模式是某种特定设计的模板或指导原则。 建议46:MVC模式是一种复合或聚合模式 MVC 是一种高级别的模式,关注的是应用程序的全局架构,并根据各种对象在程序中发挥的作用对其进行分类。
1014 0
iOS-《编写高质量代码》笔记-第六章 继承与面向对象设计
建议41:明确isa在继承上的作用 图片发自简书App 我们发现 Class 本身也有一个isa指针,指向的是它的MetaClass。 当我们对一个实例发送消息时(-开头的方法),会在该 instance 对应的类的 methodLists 里查找。
896 0