开发者社区> 码农飞哥> 正文

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

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

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

Alibaba Java Coding Guidelines

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

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

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

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

image

检查的结果如图所示:

image

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

image

CheckStyle

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

imageimage

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

Findbugs

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

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

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

image

SonarLint

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

1.安装

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

2.配置SonnarLint 检查地址:

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

如下图配置了sonarqube的地址

image

3. 使用SonarList

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

image

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

image

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

image

各类插件的比较

检查侧重点不同

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

检查项不同

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

总结

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
软件开发入门教程网之TypeScript 类
软件开发入门教程网之TypeScript 类
21 0
【RUST学习日记】第4课 Rust规范
【RUST学习日记】第4课 Rust规范
54 0
JavaScript 编程精解 中文第三版 十二、项目:编程语言
十二、项目:编程语言 原文:Project: A Programming Language 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 确定编程语言中的表达式含义的求值器只是另一个程序。
1162 0
iOS-《编写高质量代码》笔记-第七章 设计模式与Cocoa编程
建议45:设计模式是特定环境下的特定问题的解决方案 设计模式是某种特定设计的模板或指导原则。 建议46:MVC模式是一种复合或聚合模式 MVC 是一种高级别的模式,关注的是应用程序的全局架构,并根据各种对象在程序中发挥的作用对其进行分类。
935 0
iOS-《编写高质量代码》笔记-第六章 继承与面向对象设计
建议41:明确isa在继承上的作用 图片发自简书App 我们发现 Class 本身也有一个isa指针,指向的是它的MetaClass。 当我们对一个实例发送消息时(-开头的方法),会在该 instance 对应的类的 methodLists 里查找。
851 0
kotlin 语言入门指南(二)--代码风格
  语言风格 这里整理了 kotlin 惯用的代码风格,如果你有喜爱的代码风格,可以在 github 上给 kotlin 提 pull request 。   创建DTOs(POJSs/POCOs) 文件: data class Customer(val name: String, val e...
1058 0
《面向对象设计实践指南:Ruby语言描述》—第1章 1.2节设计工具
设计可不是遵循一套固定规则就完事的动作。它是每次沿着一条分支前进的旅行,在这条路径上早期的选择关闭了某些选择,同时又会打开其他新的选择。在设计过程中,你会徘徊于各种错综复杂的需求中,这里的每个关键时刻都代表着一个决策点,它会对将来产生影响。
1577 0
《面向对象设计实践指南:Ruby语言描述》—第1章 1.3节设计行为
随着常见设计原则和模式的出现与传播,所有的OOD问题可能都已被解决。既然基础的规则都已知道,那么设计面向对象的软件还会有多难呢?
1271 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里开发者手册-单元测试专题
立即下载
软件开发之禅
立即下载
为什么要学函数式编程?
立即下载