Alibaba Java Coding Guidelines,以后的Java代码规范,就靠它了
前言
对于Java代码规范,业界有统一的标准,不少公司对此都有一定的要求。但是即便如此,庞大的Java使用者由于经验很水平的限制,未必有规范编码的意识,而且即便经验丰富的老Java程序员也无法做到时刻将规范牢记于心。所以对于代码规范扫描工具,一经问世就广受青睐,阿里巴巴出品的Alibaba Java Coding Guidelines(阿里巴巴Java代码规约扫描,以下简称为AJCG)插件便是其中之一。与很多其它流行的同类工具(如FindBugs,Lint等)相比,它更专注于Java代码规范,而且默认采用中文,对于英文没那么好的开发者而言,这无疑是一种福利。本文将结合Android Studio(以下简称AS),介绍一下该插件的使用。
一、AJCG简介
为了让开发者更加方便、并且达到快速规范代码格式的目的并实行起来,阿里巴巴基于《阿里巴巴Java开发规约》手册内容,研发了一套自动化的IDE检测插件,它就是Alibaba Java Coding Guidelines 插件。2017年10月14日杭州云栖大会,AJCG全球首发仪式正式启动,规范正式以插件形式公开走向业界,引领Java语言的规范之路。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示出来,并且大部分可以自动修复。它还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。
二、在AS中安装AJCG插件
与其它的插件一样,AJCG插件也提供了直接在AS的仓库中安装和手动离线安装两种方式。
1、直接从AS的插件库下载安装
至于如何在AS插件库中安装插件,在我的另外一篇介绍FindBugs的文章【https://www.cnblogs.com/andy-songwei/p/11820564.html】中已经介绍过了,这里就不赘述了。简单说一下就是
File > Settings > Plugins > Browse repositories 搜索 “Alibaba Java Coding Guidelines”,按照提示进行安装,然后重启即可。
2、手动下载并从磁盘安装
三、使用AJCG
1、启动AJCG扫描
大致可以通过如下两种方式启动AJCG进行扫描(好像还有别的启动方式,咱们知道这两种方式就够了):
(1)可以Tools > 阿里编码规约 > 编码规约扫描

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

2、菜单功能
第一种启动方式比第二张多一项功能,这三项列表功能如下:
(1)编码规约扫描:开始扫描代码。
(2)打开/关闭实时检测功能:实时检测代码,顾名思义,对代码进行实时检测。一般机器性能比较好的话可以开启这项功能,如果已经开启,这里会显示“关闭实时检测功能”。
(3)切换语言至英文:中英文切换。
3、执行结果
扫描完成后显示结果如下(如果当前鼠标点击的是最终项,右边区域显示的是其它的内容,后面会再讲到):

4、指定区域搜索同一类问题
当点击③处的按钮时,会弹出如下按钮:

这里选择扫描区域,来扫描鼠标选中的同类问题。如果按照默认选择,那么运行后的结果就是:

这里我们可以看到,显示了整个Project中的所有该类的问题。
5、预览具体的不规范代码
在第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:编辑设置
五、扫描结果
该部分区域显示了执行结果,由于是设置的中文版,所以这里显示的都是中文,这看起来非常爽。

我们可以看到Blocker(阻挡者)、Critical(严重问题)、Major(主要的)三个大类,他们表示的是问题的严重程度,严重程度由高到低为:Blocker > Critical > Major。至于每一类中都会包含什么样的问题,图中的中文已经说明了一切,这里就不赘述了。
福利
这提供一份《阿里巴巴Java开发手册(纪念版)》电子文档
链接:https://pan.baidu.com/s/1z2u1ITJGJvgsJqrgq_AYwQ
提取码:v9ja
结语
本文只介绍了AJCG常见的一些使用方法,一定还有很多很牛的功能,希望读者们多多探索,多多交流,共同进步,谢谢!
Alibaba Java Coding Guidelines,以后的Java代码规范,就靠它了的更多相关文章
- 【Android Studio安装部署系列】四十一、Android Studio安装Alibaba Java Coding Guidelines插件(检查代码规范)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 该插件主要是对今年发布的<阿里巴巴 Java 开发规约>的一个延伸,它以一个 IDE 的插件存在,可以自动对手册中的 J ...
- Alibaba Java Coding Guidelines,以后我的Java代码规范,就靠它了
前言 对于Java代码规范,业界有统一的标准,不少公司对此都有一定的要求.但是即便如此,庞大的Java使用者由于经验很水平的限制,未必有规范编码的意识,而且即便经验丰富的老Java程序员也无法做到时刻 ...
- IDEA/Eclipse安装 Alibaba Java Coding Guidelines 插件
为了让开发者更加方便.并且达到快速规范代码格式的目的并实行起来,阿里巴巴基于<阿里巴巴Java开发规约>手册内容,研发了一套自动化的IDE检测插件(IDEA.Eclipse).它就是Ali ...
- Intellij Idea插件使用记录之Alibaba Java Coding Guidelines
目录 Intellij Idea插件Alibaba Java Coding Guidelines 前言 使用 感谢 Intellij Idea插件Alibaba Java Coding Guideli ...
- (转)IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)
背景:idea安装插件,学习使用阿里巴巴开发插件. 在线和离线的安装方式. IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines) ...
- IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)
以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会少很多坑. ...
- Alibaba Java Coding Guidelines
阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出 ...
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付 ...
- Intellij插件之Alibaba Java Coding Guidelines
作用: 阿里巴巴出品的java代码规范插件,可以扫描整个项目找到不规范的地方 并且大部分可以自动修复 .虽说检测功能没有findbugs强大,但是可以自 动修复,阿里巴巴Java编码指南插件支持. 插 ...
随机推荐
- 3D漫游的分类 3D Navigation Taxonomy
在2001年CHI发表的论文中1,Tan等人提出了一种对3D漫游的分类方法. 当时关于3D漫游(3D Navigation)的研究主要分为两种:一种是发掘有关漫游的认知原则,一种是开发一些具体的漫游技 ...
- 面试题解析|ACL权限控制机制
ACL(Access Control List)访问控制列表 包括三个方面: 一.权限模式(Scheme) 1.IP:从 IP 地址粒度进行权限控制 2.Digest:最常用,用类似于 usernam ...
- hover和position共用出现的问题
hover 鼠标移入的样式 position 定位属性 包含 relative 相对定位 absolute 绝对定位为 fixed 固定定位 hover作用范围 可以实现自己样式的 ...
- 彻底理解CORS跨域原理
背景 现在的前端开发中都是前后端分离的开发模式,数据的获取并非同源,所以跨域的问题在我们日常开发中特别常见.其实这种资料网上也是一搜一大堆,但是都不够全面,理解起来也不够透彻.这篇文章就结合具体的示例 ...
- SpringBootSecurity学习(19)前后端分离版之OAuth2.0 token的存储和管理
内存中存储token 我们来继续授权服务代码的下一个优化.现在授权服务中,token的存储是存储在内存中的,我们使用的是 InMemoryTokenStore : 图中的tokenStore方法支持很 ...
- Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
熟悉Mysql的同学应该都知道,Mysql查询的boolean结果将输出为0或者1. 比如: ; 其输出结果为1. 查阅mysql官方文档仅找到如下描述: 11.10 Using Data Types ...
- java之ReentrantLock详解
前言 如果一个代码块被synchronized修饰了,当一个线程获取了相应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的释放,现在有这么一种情况,这个获取锁的线程由于要等待IO或者其他原 ...
- Java微服务(二):负载均衡、序列化、熔断
本文接着上一篇写的<Java微服务(二):服务消费者与提供者搭建>,上一篇文章主要讲述了消费者与服务者的搭建与简单的实现.其中重点需要注意配置文件中的几个坑. 本章节介绍一些零散的内容:服 ...
- thinkphp5框架之请求
又看到请求这一部分,个人认为这部分是算重要的一部分 单独记一篇笔记. 0x01 request请求对象 如果要获取当前的请求信息,可以使用\think\Request类,完全开发手册中也有提到,继承系 ...
- dll劫持破坏360
0x01 前言 说起DLL劫持技术,相信大家都不会陌生,因为这种技术的应用比较广泛,比如木马后门的启动.破解程序的内存补丁.外挂插件的注入以及加密狗的模拟等.之所以DLL劫持技术深受黑客们的喜爱,主要 ...