Java代码规范检查插件调研及总结

代码规范工具对比

代码规范工具是什么

大家应该都有过写完代码后review的情况;用于提高编码质量,尽早的发现问题;节约开发时间和成本。
但review 这个过程往往要消耗 更多的开发资源。
所以就出现 自动检测可能代码中存在的问题的工具 ,我们一般把这类工具称为静态代码扫描工具。
常见的静态代码扫描工具有 checkstyle ,findBug,PMD,Jtest等等,它们有的用来寻找编码格式问题,有的用来定位可能存在的BUG。代码规范工具呢 。顾名思义主要关心其编码格式,规范。除了最后的静态代码扫描外,有些插件也支持在编码过程中实时显示规范问题。
代码规范工具 是自动比对代码与规范差异的一个工具,用以减少实现这一规范需要耗费的成本。

代码规范的目的

对于整个团队而言,代码规范的目的实际上是为了提高效率。
秦始皇书同文,车同轨,定义了一个规范,才会让整体的交流变得简单,轻松。代码也是一样。
我们编码过程中,免不了团队协作,免不了迭代,升级,维护。
从自己角度看 遵循开发规范,可以让自己在后续迭代中,对于之前代码能够尽快熟悉,不会写了就忘,不会为了之前的一个问题,花费特别长的时间去熟悉逻辑 ,寻找BUG
从团队的角度看,需求可能不一定是一个人维护迭代升级,遵循规范能够减少团队的交流沟通成本。这样后面可以理直气壮的说一句,代码(注释)里面写的很详细,而不是代码需要讲解才能看的懂。

常见的一些代码规范工具

Alibaba Java Coding Guidelines

  1. 整体介绍
    Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。该插件在扫描代码后,将不符合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以自动修复,它还基于 Inspection 机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。

  2. 安装步骤
    File > Settings > Plugins > Marketplace 搜索 “Alibaba Java Coding Guidelines”,按照提示进行安装,然后重启即可。

  3.  使用说明
    3.1. 运行方式
    (1) .可以Tools > 阿里编码规约 > 编码规约扫描Java代码规范检查插件调研及总结_第1张图片

    (2)在编辑界面或者项目区域点击右键,在右键菜单中选择“编码规约扫描”即可:

    3.2.菜单功能

    编码规约扫描:开始扫描代码

    打开/关闭实时检测功能:实时检测代码,一般机器性能比较好的话可以开启这项功能

    切换语言至英文:中英文切换

    3.3. 运行结果
    扫描完成后显示结果如下,我们可以看到扫描结果主要分为 Blocker(阻挡者)、Critical(严重问题)、Major(主要的)三个大类,它们表示的是问题的严重程度,严重程度由高到低为:Blocker > Critical > Major,至于每一类中都会包含什么样的问题,图中的内容已经说明了一切 
    Java代码规范检查插件调研及总结_第2张图片

    3.4. 工具栏介绍

    Java代码规范检查插件调研及总结_第3张图片

    1. Rerun Inspection:重新运行一次扫描

    2. Close:关闭真个AJCG面板

    3. Expand All:展开结果的树状结构,整个结果是树状结构的。

    4. Collapse All:收起结果的树状结构

    5. Go Pre Problem:选择上一个问题

    6. Go Next Problem:选择下一个问题

    7. Help:帮助

    8. Group by Serverity:

    9. Group by derectory:按目录分组/按类名分组间切换

    10. Filter resoled items:过滤掉已经解决的项

    11. Autoscroll to Source:自动滚动到源码

    12. Export:导出,可以导出为XML和HTML两种格式

    13. Edit Settings:编辑设置

SonarLit
sonarlit 插件的安裝及使用

安装
打开IntelliJ IDEA—>settings—>plugins,在Marketplace搜索SonarLint,下载安装,重启IntelliJ IDEA。
也可以选择下载插件,丢到plugin 目录手动安装

sonarlint-intellij-6.7.0.45926.zip
使用说明
配置自动扫描
打开IntelliJ IDEA—>settings—>Other Settings—>SonarLint General Settings或者IntelliJ IDEA—>settings—>SonarLint General Settings,勾选Settings—>Automatically trigger analysis,点击Apply,再点击OK。
手动执行扫描
鼠标移动到项目根目录,右键选择Ayalyze,选择Ayalyze with SonarLint。

Java代码规范检查插件调研及总结_第4张图片

扫描后的结果说明 

 Java代码规范检查插件调研及总结_第5张图片

SonarLint插件在IntelliJ IDEA 中页面显示的名词解释:

Current file:当前文件(展示当前文件存在的哪些问题,以及解决方法)

Rule:规则(告诉你问题的具体内容,并在最后告诉你如何解决这个问题)

Report:报告(鼠标移动到项目根目录,右键选择Ayalyze,选择Ayalyze with SonarLint,完成之后的结果显示,包含整个项目的所有文件的问题)

Locations:位置(告诉你,在哪个地方有问题,问题的重复位置)

Issues:问题

每个issue有五个等级:
BLOCKER(致命):会影响应用程序的缺陷:内存泄漏,未关闭的JDBC连接…必须立刻修复的代码
CRITICAL(关键 ):可能会影响应用程序的缺陷或者是安全性缺陷:空的catch块,sql注入,…必须立刻查看代码;
MAJOR(主要):可能会影响开发者效率的质量缺陷:未覆盖的代码,重复块,未使用的参数….
MINOR(微小):可能会影响开发者效率的质量缺陷:每行不能太长,“switch”语句应该至少有三个条件,….
INFO(未知):既不是缺陷也不是质量问题,只是一个发现。
每个issue有三个状态定义:
Bug:窃听器(可靠性),避免错误和未定义的行为
Vulnerability:漏洞(安全),避免破坏或攻击
Code Smell:代码嗅觉(可维护性),简化代码更新,并提高开发人员的速度
具体用法:

Locations: 

Java代码规范检查插件调研及总结_第6张图片
左边信息展示,假如这个问题在当前文件中出现多次,则在这条问题的后面会有的标识,选中并鼠标双击之后,在右边显示具体的位置,如图所示[注:括号里面的数字表示问题在第几行的第几列]。

Report:

Java代码规范检查插件调研及总结_第7张图片

 Log:Java代码规范检查插件调研及总结_第8张图片

如何去掉不需要的扫描规则

1.打开settings

Java代码规范检查插件调研及总结_第9张图片

2.选择 tools--> Sonarlint -->Rulse →搜索对应的规则

Java代码规范检查插件调研及总结_第10张图片

插件对比

插件

格式检查

BUG扫描,漏洞分析

更新时间

扫描信息收集

规则自定义程度

插件下载量

marktplace 评分

集成进其他流水线或仓库组件

Alibaba Java Coding Guidelines

支持 不支持 不支持

动态扫描支持

最终结果不支持

不支持
SonarLit 支持 支持 支持(sonarqube) 支持 支持(gitlab,jenkins)

你可能感兴趣的:(Java_API,代码规范)