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

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

文章目录

    • Alibaba Java Coding Guidelines
    • CheckStyle
    • Findbugs
    • SonarLint
    • 各类插件的比较
      • 检查侧重点不同
      • 检查项不同
    • 总结

Alibaba Java Coding Guidelines

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

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

这个插件侧重于代码的缺陷,详细的编码规范在《阿里开发手册》已经定义,大家有兴趣的可以看看。
如果要检查整个项目所有文件的话,可以关闭窗口中的类,然后按Ctrl+Alt+Shift+J 快捷键,或者如下图操作也是可以的。
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第1张图片
检查的结果如图所示:
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第2张图片
如果要对单个的文件进行检查的话,可以在类上右键,选中Alibaba Coding Guidelines Analyze
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第3张图片
在这里插入图片描述

CheckStyle

第二个要介绍的插件是CheckStyle插件。这个插件侧重于代码的格式检查。使用方式如下图:在checkstyle面板,点击检查按钮进行检查,也可以检查单个文件。
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第4张图片【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第5张图片
如上图,可以看到都是一些缩进啥的编码规范,可以不用太关注。

Findbugs

findBugs-idea的作用侧重于发现代码中可能存在的bug。它检查类或者JAR 文件,将字节码与一组缺陷模式(自带检测器)进行对比以发现可能的问题。执行Findbugs编码规约扫描PMD
(Programming Mistake Detector) 是一个开源的静态代码检查工具。PMD 支持多种语言,比如项目本身的 Java,Salesforce 相关的 Apex、VisualForce,还有 JavaScript、XML 等。PMD 对于各种语言都预设了一套代码规则,也支持开发自定义规则,可以使用 Java 类或者XPath。
选中一段代码,然后右键Run PMD->Pre Defined,这里有许多检查类型可以选择,有代码样式,设计等等。
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第6张图片

SonarLint

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

  1. 安装
settings->plugins里面搜索
SonarLint
>install->重启Idea
  1. 配置SonnarLint 检查地址:
settings->Tools->SonarLint->Settings 
中增加sonarqube的地址

如下图配置了sonarqube的地址
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第7张图片
3. 使用SonarList
配置好SonarList之后,就是使用了,SonarLint既可以对所有文件进行检查,检查全部文件的方式是:点击Analyze->Analyze All Files with SonarLint
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第8张图片
又可以单个文件检查,单个文件就是在文件编辑区右键选中:
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第9张图片

生成的报告如下:这里既有违规的问题(即潜在的Bugs & Vulnerabilities)。比如:NullPointerException,又有代码的坏味道(Code Smells)。一般而言Bug级别的问题需要我们处理,坏味道可以忽略。还有另外一个指标就是代码的重复率,即代码内部的重复代码。
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第10张图片
【高效编程】编码规范与静态代码检查插件的使用(SonarList都用起来吧)_第11张图片

各类插件的比较

检查侧重点不同

工具 分析对象 侧重 应用技术
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

总结

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

你可能感兴趣的:(idea,插件,编码规范)