AS 阿里巴巴Java开发规约 CheckStyle-IDEA

Alibaba Java Coding Guidelines 简介

github地址:https://github.com/alibaba/p3c

官方文档    阿里巴巴Java开发手册(纪念版).pdf

Alibaba Java Coding Guidelines 是阿里巴巴发布的基于 IDEA 的 Java 开发规约扫描插件。

经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C是世界知名的反潜机,专门对付水下潜水艇,项目组使用此名称寓意是扫描出所有潜在的代码隐患。这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把《阿里巴巴Java开发规约》强制条目转化成自动化插件,并实现部分的自动编程。

阿里技术公众号于今年的2月9日首次公布《阿里巴巴Java开发规约》,瞬间引起全民代码规范的热潮,上月底又发布了PDF的终极版,大家踊跃留言,期待配套的静态扫描工具开放出来。为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。

该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。而对于历史代码,部分规则实现了批量一键修复的功能,为首次在成熟项目上使用插件,做了非常友善的支持。如此爽心悦目的功能是不是很值得拥有?提升代码质量,提高团队研发效能,插件将会一路同行。

目前插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于IDEA Inspection实现了实时检测功能。部分规则实现了Quick Fix功能,对于可以提供Quick Fix但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。

使用文档

基本使用

在AS的 Setting >> Plugins >> Browse repositories ,搜索关键字『alibaba』,在结果中找到 Alibaba Java Coding Guidelines 并安装即可。

因为插件zip包托管在Jetbrains官方CDN上,所以是从国外的服务器进行下载,可能会出现超时的情况,如果安装不了,可以通过手动下载安装包进行安装。插件地址

下载后,在AS的 Settings >> Plugins >> Install plugin from disk...

安装之后,它会默认使用你当前设备选择的语言环境进行配置语言,当然你也可以自行切换语言,暂时仅支持 中文 和 英语。

你可以在 Tools >> Alibaba Coding Guidelines >> Switch language to Xxx 进行切换:

中文乱码解决方法:Appearance&Behavior -> Appearance -> UI Options -> Name 里面设置成中文字体,如微软雅黑。

实时检测(Inspections支持)

IDEA 的 Inspections 相信大家应该都不陌生,它会自动在我们编码的阶段,进行快速灵活的静态代码分析,自动检测编译器和运行时错误,并提示开发人员再编译之前就进行有效的改正和改进。

实时检测功能会在开发过程中对当前文件进行检测,并以高亮的形式提示出来,同时也可以支持Quick Fix,该功能默认开启。

检测结果会高亮提示,鼠标放上去会弹出提示信息,按Alt+Enter键可呼出Intention菜单,如:

在某些情况下,我们不希望对代码提示违规信息,比如我们在阅读Github开源项目代码的时候,如果界面出现一堆红色、黄色的提示,此时心里肯定是飘过一万只草泥马。这个时候我们可以通过Inspection的设置关闭实时检测功能。

关闭方式:

  • 通过右键快速关闭(打开)所有规则的实时检测功能
  • 通过 Tools >> Alibaba Coding Guidelines 同样可以关闭(打开)所有规则的实时检测功能
  • 通过 Settings >> Editor >> Inspections 进行手动设置,在这里,我们也可以关闭某条规则的实时检测功能或者修改提示级别。
PS:我觉得里面最恶心的一条规则是:不能在行尾添加注释!
提示内容:方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释。注意与代码对齐。

2

2

1

PS:我觉得里面最恶心的一条规则是:不能在行尾添加注释!

2

提示内容:方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释。注意与代码对齐。

注意:修改或关闭某一条约束后可能不会及时生效,可以重启AS或关闭检测然后再打开检测就可以了。

代码扫描(静态分析,Analyze)

阿里规约插件,除了支持 Inspections 之外,还可以对现有项目进行静态代码分析。

可以通过右键菜单、Toolbar按钮、快捷键三种方式手动触发代码检测。

  • 在当前编辑的文件中点击右键,可以在弹出的菜单中触发对该文件的检测
  • 在左侧的Project目录树中点击右键,可以触发对整个工程或者选择的某个目录、文件进行检测
  • 使用快捷键(Ctrl+Shift+Alt+J)触发弹出窗口时,可以选择检测范围

它分析的结果,会以 Blocker/Critical/Major 三个级别进行区分。默认按等级分组,方便统计每个级别错误的数量:

三个级别的意义:
Blocker(崩溃):阻碍开发或测试工作的问题
Critical(严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失
Major(一般):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性
x

1

三个级别的意义:

2

Blocker(崩溃):阻碍开发或测试工作的问题

3

Critical(严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失

4

Major(一般):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性

默认情况,我们在结果面板需要双击具体违规项才能打开对应的源文件,点击面板中的图标  开启Autoscroll To Source选项后,单击面板中的文件名、或者是具体的违规项的时候IDEA会自动打开对应的源文件。

对于实现Quick Fix的规则,在结果面板中可以直接一键修复(我还没有发现有支持的规则)。

增强的代码扫描(Inspect Code)

以上方式只会检测此插件中定义的规范,而不会检测 IDEA 中 Inspections 中定义的其他规范,通过下面方式可以达到这个目的:

Analyze菜单 >> 点击Inspect Code >> 在弹框中设置检验范围和使用的检验规则,确认即可

代码提交时检测

在提交代码框勾选Alibaba Code Guidelines选项

如果有违反手册的地方会提示是否继续提交,选择取消后会自动对修改的代码进行扫描

CheckStyle-IDEA 插件简介

这也是一个检查代码风格的插件,可以对比如命名约定,类设计等方面进行代码规范和风格的检查。

官网:https://github.com/jshiell/checkstyle-idea

谷歌代码规范:Google Java Style Guide

PS:建议使用阿里出的Java代码规范【Alibaba Java Coding Guidelines】插件,80K下载,大小7.8 M

配置:Other Settings --> CheckStyle --> 添加规范文件,或勾选推荐的规范文件

文档:

This plugin provides both real-time and on-demand scanning of Java files with CheckStyle from within IDEA.

这个插件可以在IDEA中使用提供的CheckStyle实时和按需扫描Java文件。

Once installed, a new inspection will be available in the group ‘CheckStyle‘. The ‘Inspections‘ item in the preferences panel will allow you to turn this on and to configure it.

安装完成后,一个新的 inspection 将出现在“CheckStyle”组中。首选项面板中的“Inspections”项目将允许您打开并配置它。

Project exceptions are treated a little oddly. Because CheckStyle demands these to be on the current classpath errors will appear if these have not as yet been compiled. Further, because we cache the real-time checkers for performance reasons, real-time scans may continue to show the errors after a compilation. A static scan will force a reload of the Checker and should resolve this.

项目例外有点奇怪。因为CheckStyle要求它们在当前类路径上,所以如果它们还没有被编译的话,错误将会出现。此外,由于出于性能原因而缓存实时检查器,实时扫描可能在编译后继续显示错误。静态扫描将强制重新加载检查器,并应解决此问题。

2017-12-14

时间: 2024-11-04 04:57:54

AS 阿里巴巴Java开发规约 CheckStyle-IDEA的相关文章

阿里巴巴Java开发规约IDEA插件安装及使用

技术交流群:233513714   一.通过Jetbrains官方仓库安装 1. 打开 Settings >> Plugins >> Browse repositories... 2. 在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效 注意:因为插件zip包托管在Jetbrains官方CDN上,所以是从国外的服务器进行下载,可能会出现超时的情况 二.通过下载安装包进行安装 1. 下载地址:

阿里巴巴Java开发手册1.4.0

转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量.比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险:工程结构混乱导致后续维护艰难:没有鉴权的漏洞代码易被黑客攻击等等.所以本手册以Java开发者为中心视角,划分为编程规约.异常日志.单元测

阿里巴巴 Java 开发手册评述

2016年底,阿里巴巴公开了其在内部使用的Java编程规范.随后进行了几次版本修订,笔者当时看到的版本为v1.0.2版.下载地址可以在其官方社区--云栖社区找到. 笔者作为一名有数年工作经验的Java程序员,仔细研读了这份手册,觉得是一份不可多得的好材料.正如阿里巴巴在发布时所说,"阿里巴巴集团推出的<阿里巴巴Java开发手册(正式版)>是公司近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举了如何开发更加高效.更加容错.更加有协作性,力求知其然,更知其不然.结合正反例,让Ja

阿里和Google的JAVA开发规约

<阿里 JAVA开发规约> 阿里巴巴Java开发手册终极版v1.3.0.pdf 出处:github地址:https://github.com/alibaba/p3c <Google JAVA开发规约> 出处:http://hawstein.com/2014/01/20/google-java-style/ 原文地址:https://www.cnblogs.com/HappyBeibei/p/11105182.html

阿里巴巴Java开发手册

序号 文档名及下载地址 1 阿里巴巴Java开发手册v1.2.0 其他

《阿里巴巴Java开发手册(正式版》读记

前几天,阿里巴巴发布了<阿里巴巴Java开发手册(正式版>,第一时间下载阅读了一番. 不同于一般大厂内部的代码规范,阿里巴巴的这本Java开发手册,可谓包罗万象,几乎日常Java开发中方方面面都有所涉及. 在知乎上,也有关于这本开发手册的讨论十分热烈的帖子. 由于里面涉及的内容比较多,下面重点罗列下一些我读过之后十分赞同与持保留意见的条目: (一)编码规范 (一)命名规约 8. [强制]POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误. 反例:定义为基本数据类型b

阿里巴巴Java开发手册———个人追加的见解和补充(一)

先上干货,<阿里巴巴Java开发手册>的下载地址 https://yq.aliyun.com/articles/69327?spm=5176.100239.blogcont69327.158.xUUgiz 下面分几个部分对这个手册进行说明,都是个人的见解,本人技术一般,如果有错误或者不妥,请评论指出,虚心接受,提前感谢了. 建议边看手册,边食用以下说明,效果比较好. 前言 首先当我第一次看见这个的手册的时候或许和和你们是一样激动的,因为在java行业内我还没有看见有中文的规范,也可能是我读书少

读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

 不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么随意写,好没问题,但是等你离开这个公司了或者是去开发别的项目了,再等别人过来接手维护你一手写出来的这段个性十足的代码时,那么你的右眼皮时不时地就会跳,因果我就不说了~~ 所以我建议看到这篇博文的朋友们,或许你稍微改变一下你的编码风格,遵从一套好的编码规约对己对人都是有好处的.可能朋友的公司也有专门的

阿里巴巴Java开发手册———总结

前言 阿里巴巴Java开发手册———个人追加的见解和补充(一) 阿里巴巴Java开发手册———个人追加的见解和补充(二) 阿里巴巴Java开发手册———个人追加的见解和补充(三) 阿里巴巴Java开发手册———个人追加的见解和补充(四) 阿里巴巴Java开发手册———个人追加的见解和补充(五) 总结 其实,已经有很多大神级别的人物都已经多多少少对这份手册有了很多的评论,我也看了很多的评论,我这里上面给出的只是我自己个人的看法.对于手册本身来说参考价值因人而异,对于有的人来说如获至宝,对于有的人来