扫码或点我直达 免费领
引言:自从2月9日《阿里巴巴Java开发手册》面向业界公布以来,大家一直期待着静态化扫描工具的问世,在《手册》终极版发布时,我们曾经承诺将在2017杭州云栖大会上进行规约插件的全球发布。如今信守承诺,我们如约而至。
经过247天的研发,阿里巴巴于10月14日上午9:00在杭州云栖大会《研发效能峰会》上,正式发布《阿里巴巴Java开发手册》扫描插件。阿里巴巴高年级同学毕玄、玄难、索尼、叶渡,淘宝代码第一人多隆、代码规约作者孤尽携手《手册》项目组其他同学,以及业界规约生态代表等重磅大咖联合发布阿里巴巴代码规约插件!此刻,我们正式地通知全世界开发同学:插件可以下载啦!体验令人激动的自动化、智能化的插件协同工作,你们值得拥有!
- 规约直播(11月3日15:00即将开启)
代码规约插件全球发布现场
插件是什么?
不知不觉《手册》问世半年多了,经过7个版本的迭代,发布了PDF终极版,相信很多人对其中的规则也有了一定的了解,很多人甚至希望能尽快在自己的团队推行起来,这样大家有了一套共同的开发准则。但是,如何更好的去遵守规则并且按照手册去开发我们的系统确变得不那么容易,为了让开发者更加方便、快速的将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse), 该插件在扫描代码后,将不符合《手册》的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能,如此爽心悦目的功能是不是很值得拥有?提升代码质量,提高团队研发效能,插件将会一路同行。
IDEA插件安装
IDEA版的插件我们发布到了IDEA官方仓库中(最低支持版本14.1.7,JDK1.7+),只需打开 Settings >> Plugins >> Browse repositories 输入 Alibaba 搜索一下便可以看到对应插件了,点击安装等待安装完成。
至于如何使用请大家到官方[Github仓库](https://github.com/alibaba/p3c)中进行查看。
IDEA会自动检测插件新版,并提示出来,所以大家不用担心插件的更新问题。
Eclipse插件安装
Eclipse版插件支持4.2(Juno,JDK1.8+)及以上版本,我们提供自主的Update Site,通过 Help >> Install New Software 然后输入https://p3c.alibaba.com/plugin/eclipse/update 即可看到安装列表。
大家可以通过 Help >> Check for Udates 进行插件新版检测。
插件虽然已经开源,我们的阿里巴巴P3C项目组会长期维护插件的更新与维护,希望更多的人参与进来,除了发现和解决已实现的检测规则以外,能够实现更多的规则,让插件变得更加完善并且帮助到更多的开发者。
在使用过程中,有任何问题或建议,欢迎与代码规约作者孤尽联系,也欢迎加入P3C项目组,一起打造具有全球竞争力,效率/质量最优的一站式研发/运维/测试平台。邮件申请:guanbao.yanggb@taobao.com
阿里巴巴P3C项目组:P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出所有潜在的代码隐患。这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把《阿里巴巴Java开发手册》强制条目转化成自动化插件,并实现部分的自动编程。
《阿里巴巴 Java 开发手册》细节描述:孤尽
《阿里巴巴 Java 开发手册》主要是面向 Java 开发群体, Java 做为面向对象语言,在业界的生命力还是非常强大的,技术生态丰富,框架结构成熟,经历了超高并发的“双十一”实战考验,阿里想把多年的 Java 技术积累回馈给 Java 开发者社区。在里面可以找到很多的技术规范、最佳实践,避坑指南等。
其中引入了数据库、安全、服务器等知识。现代软件行业的高速发展对于开发者的综合素质要求越来越高,因为不仅是编程知识,其它维度的知识结构也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致维护困难;没有鉴权的漏洞代码被黑客攻击等等。
《阿里巴巴 Java 开发手册》划分为编程规约、异常日志规约、单元测试、 MySQL 规约、工程规约、安全规约六大块。那么衍生的问题是为什么我们提到的这些看似与编码毫无关系的内容?有人提问,仅安全规约如果扩展开来可以是上百页的资料,不知道写在其中的意义何在?其实,主要关注的是与开发紧密相关的知识点,试问一个不知道水平权限校验的 Java 开发者,会是一个合格的程序员吗?这本手册不是提倡大家深究所有的知识点而成为安全专家、运维专家,而是关注在编码相关的生态知识上。
约束力等级为何是三级?《阿里巴巴 Java 开发手册》根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。强制是一种指令型的,是协作的 Gap,或是故障的痛点;而推荐,希望这样做是一件好事,大家都这样做,结构更清晰,协作更高效,但是不这样做也不会死。而参考分成两种情况:第一种是无法用代码量化的描述,提倡什么什么样的做法,如索引的创建索引时,宁滥勿缺的错误做法;第二种是真心觉得或左或右都可以,只是有倾向于一种,这个自由度由开发者自己把握。
扩展的说明、正例、反例用来表达什么?如果只是冷冰冰的条目,对于阅读者理解成本和记忆成本都是很大的挑战,《阿里巴巴 Java 开发手册》希望阅读者能够非常舒心地看完整个文档,掩卷遐思,亦有所得。具体来说,“说明”是对内容做了引申和解释,为求知其然;“正例”提倡什么样的编码和实现方式,推荐做法的其中之一;“反例”说明需要提防的雷区,以及真实的错误案例,让人知其不然。