前言

对于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、手动下载并从磁盘安装

请从如下地址获取离线安装包:

链接:https://pan.baidu.com/s/19MPJ-CVfZvf4K_PVXY8g6Q

提取码:it10

三、使用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常见的一些使用方法,一定还有很多很牛的功能,希望读者们多多探索,多多交流,共同进步,谢谢!

出处:https://www.cnblogs.com/andy-songwei/p/11823957.html

Alibaba Java Coding Guidelines,以后我的Java代码规范,就靠它了的更多相关文章

  1. Alibaba Java Coding Guidelines,以后的Java代码规范,就靠它了

    前言 对于Java代码规范,业界有统一的标准,不少公司对此都有一定的要求.但是即便如此,庞大的Java使用者由于经验很水平的限制,未必有规范编码的意识,而且即便经验丰富的老Java程序员也无法做到时刻 ...

  2. 【Android Studio安装部署系列】四十一、Android Studio安装Alibaba Java Coding Guidelines插件(检查代码规范)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 该插件主要是对今年发布的<阿里巴巴 Java 开发规约>的一个延伸,它以一个 IDE 的插件存在,可以自动对手册中的 J ...

  3. IDEA/Eclipse安装 Alibaba Java Coding Guidelines 插件

    为了让开发者更加方便.并且达到快速规范代码格式的目的并实行起来,阿里巴巴基于<阿里巴巴Java开发规约>手册内容,研发了一套自动化的IDE检测插件(IDEA.Eclipse).它就是Ali ...

  4. (转)IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)

    背景:idea安装插件,学习使用阿里巴巴开发插件. 在线和离线的安装方式. IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines) ...

  5. Intellij Idea插件使用记录之Alibaba Java Coding Guidelines

    目录 Intellij Idea插件Alibaba Java Coding Guidelines 前言 使用 感谢 Intellij Idea插件Alibaba Java Coding Guideli ...

  6. Alibaba Java Coding Guidelines

    阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出 ...

  7. 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程

    经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件!该插件由阿里巴巴P3C项目组研发.P3C是世界知名的反潜机,专门对付 ...

  8. IntelliJ IDEA 插件 阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)

    以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会少很多坑. ...

  9. Intellij插件之Alibaba Java Coding Guidelines

    作用: 阿里巴巴出品的java代码规范插件,可以扫描整个项目找到不规范的地方 并且大部分可以自动修复 .虽说检测功能没有findbugs强大,但是可以自 动修复,阿里巴巴Java编码指南插件支持. 插 ...

随机推荐

  1. Visual Studio报错/plugin.vs.js,行:1074,错误:缺少标识符、字符串或数字

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies/plugin. ...

  2. kaggle house price

    kaggle 竞赛入门 导入常用的数据分析以及模型的库 数据处理 Data fields 去除异常值 处理缺失值 分析 Utilities Exploratory Data Analysis Corr ...

  3. pod install 的历程

    公司项目拉下来执行有报错,建议执行pod install.这个是IOS的xcode第一次用的时候是需要的步骤 1.首先对于pod的命令你想执行,需要安装CocoaPods OS X 10.11以前,在 ...

  4. Jenkins绑定git

    1,新建任务

  5. python实现栈结构

    # -*- coding:utf-8 -*- # __author__ :kusy # __content__:文件说明 # __date__:2018/9/30 17:28 class MyStac ...

  6. Vue父组件如何调用子组件(弹出框)中的方法的问题

    如果子组件是一个弹出框,只有在触发某个点击事件时弹出框才能出现(也就是说在父组件中的子组件使用上用了v-if),那在父组件上如果不点击弹出框是不能获取到$ref的. 原因就是:引用指向的是子组件创建的 ...

  7. C编程遇到的一些小细节

    1  typedef int ElemType  -->  typedef int ElemType; 此处要加分行(:),要区别  #defin a 20 此处不需要加分号:#define是预 ...

  8. SpringBoot:3.SpringBoot使用Spring-data-jpa实现数据库访问

    做Web开发,首先要能将数据渲染到网页中展示,其次是要获取数据库数据展示到视图层,在前面的文章SpringBoot整合Thymeleaf模板引擎渲染web视图,我们实现了从后端数据展示到视图层,那么下 ...

  9. 「NOI2015」小园丁与老司机

    「NOI2015」小园丁与老司机 要不是这道码农题,去年就补完了NOI2015,其实两问都比较simple,但是写起来很恶心. 先解决第一问,记 \(dp[i]\) 表示老司机到达第 \(i\) 棵树 ...

  10. MQTT --- 操作行为

    会话状态 为实现QoS等级1和QoS等级2协议流,客户端和服务端需要将状态与客户标识符相关联,这被称为会 话状态.服务端还将订阅信息存储为会话状态的一部分.会话可以跨越一系列的网络连接.它持续到最新的 ...