昨日(10/14)日,阿里巴巴在杭州云栖大会上,正式发布了由阿里巴巴 P3C 项目组,通过 247 天的持续研发,正式发布众所期待的 《阿里巴巴 Java 开发规约》的扫描插件!git
P3C 是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出全部潜在的代码隐患。这个项目组是阿里巴巴开发爱好者自发组织的虚拟项目组,把《阿里巴巴 Java 开发规约》强制条目转化自动插件,并实现部分的自动编码。github
该插件已经在 Github 上开源,有兴趣的能够直接去看看。算法
或者在Github直接搜索p3c工具
该插件主要是对今年发布的《阿里巴巴 Java 开发规约》的一个延伸,它以一个 IDE 的插件存在,能够自动对手册中的 Java 不规范的问题进行提示。如今主要支持(IDEA、Eclipse),Android Studio 是基于 IDEA 的,因此也是支持 Android 开发人员的。学习
该插件在扫描代码后,会将不符合规约的代码按照 Blocker/Critical/Major 三个等级显示在下方,甚至在 IDEA 上,还能够基于 Inspection 机制提供了实时检测的功能,编写代码的同时也能快速发现不规范的代码。而对于历史代码,部分规则实现了批量一键修复的功能,为首次在成熟项目上,使用插件,作了很是友善的支持。ui
本着 Android 开发的视角,这里只介绍如何在 Android Studio 中使用 Alibaba Java Coding Guidelines(如下简称阿里规约插件)。其余工具,请翻阅文档。编码
依次选择:Setting >> Plugins >> Browse repositories .idea
搜索关键字『alibaba』,并在结果中,找到 Alibaba Java Coding Guidelines 并安装。插件
安装完成以后,会有提示须要重启 Android Studio,咱们点击 restart 按钮就能够帮咱们自动重启,固然咱们手动重启也行。
阿里规约插件的使用很是的简单,而且自己插件就是国人开发完成,因此对中文的支持很是的好。
安装以后,它会默认使用你当前设备选择的语言环境,进行配置语言,固然你也能够自行切换语言,暂时仅支持 中文 和 英语。
你能够在 Tools >> Alibaba Coding Guidelines >> Switch language to Xxx 进行切换。
这里切换以后,也须要重启 IDEA 才能够生效。
Inspections 相信你们应该都不陌生,它会自动在咱们编码的阶段,进行快速灵活的静态代码分析,自动检测编译器和运行时错误,并提示开发人员再编译以前就进行有效的改正和改进。
这里举个简单的例子。
能够看到,它会个我指出我这里编写不规范的地方,若是想要查看更多细节,点击 more 按钮便可。
固然,全部的规范,均可以再 Inspections 中查看到。
在 Inspections 中,以 All-Check 区分,如下是它支持的全部检查,有兴趣能够一个个点击查看细节,右侧为检查出问题以后的提示信息,若是不想要的检测条件,还能够将它反选掉。
阿里规约插件,除了支持 Inspections 以外,还能够对现有项目进行静态代码分析。
它分析的结果,会以 Blocker/Critical/Major 三个级别进行区分。最终检测出来的效果也很是的直观,若是你是当前插件语言是中文,基本上一眼就看出来哪里有问题,并给出了修复建议。
Android Stuido 中,默认提供 VCS 支持,咱们只须要简单的配置,就能够支持 Git、SVN 等。
Android Studio 中,配合 Git 使用,不了解的能够看看我以前的文章。《工做中,AS和Git更配哦!》
而阿里规约插件,同时也支持这部分的校验,它能够在咱们提交代码以前,对咱们本次提交的代码进行规约检测。
这个功能,在我看来仍是很是的有用的,符合检测结果以后,本身代码质量和同队 Code Review 的效率都会提升。
最后说点题外话,简单看看规约的源码是什么结构。
从结构上来看,不一样的插件分别用不一样的项目在维护,这也是毋庸置疑的,自己也不通用。
有趣的是,阿里规约插件是彻底使用 Kotlin 进行开发的。
能够看到,结构也很是的清晰,对 inspection 的支持,在 compatible/inspection 和 inspection 中,VCS 的支持,在 vcs 中。
细节咱们就很少看了,有兴趣就去阅读源码吧。
阿里规约插件,插件的主要状况,本文已经讲解清楚了。
可是它主要仍是基于以前发布的 《阿里巴巴 Java 开发手册 终极版》,建议仍是提早阅读一下本文档,能够在承香墨影中回复『阿里规约』,便可查看完整的文档。
今天在承香墨影公众号的后台,回复『成长』。我会送你一些我整理的学习资料,包含:Android反编译、算法。Web项目源码。
推荐阅读:
点赞或者分享吧~