阿里最近有点“烦”,但是作为技术人,更多关注的还是技术层面,其他的就交给有关机构和时间来证明。

最近有项工作借鉴了阿里的Java开发规范,为了能让其落地,需要验证方案,而这个Java开发规范提供了对应的验证插件,因此从使用层面,了解一下。

目前该插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于Inspection实现了实时检测功能,部分规则实现了Quick Fix功能。

目前插件检测有两种检测模式:实时检测、手动触发。

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

  • 检测结果高亮提示,并且鼠标放上去会弹出提示信息。

  • Alt+Enter键可呼出Intention菜单,不同的规则会提示不同信息的Quick Fix按钮。

  • 如果我们不希望对代码提示违规信息,可以通过Inspection的设置关闭实时检测功能。

    • 通过菜单【关闭/打开实时检测功能】关闭/打开所有规则的实时检测功能。

    • 通过File -> Settings -> Editor -> Inspections -> Ali-Check对每一个规则进行自由设置,比如可以关闭某条规则的实时检测功能或者修改提示级别。

阿里的Java开发规范设置了三个等级,

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

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

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

目前的p3c插件支持IDEA、Eclipse。

P.S. https://github.com/alibaba/p3c/tree/master

IDEA的要求,

  • Project JDK: 1.7+

  • Gradle: 3.0+(Require JDK1.8+ for gradle)

Eclipse的要求,

  • Eclipse Juno+

  • maven3.+

  • JDK 1.7+

1. IDEA的安装

IDEA中,选择Settings-Plugins,搜索Alibaba Java Coding Guidelines,

安装完成,在项目目录上右键点击会出现这两个功能按钮,

点击绿色的按钮即可开始扫描代码,或者在工程目录上右键也会出现检测的功能按钮。如果不想全部扫描,只扫描当前编辑的文件的话,在当前文件面板中点击右键会出现此功能按钮,

前面说的两种方式是手动检测,插件也提供了实时监测的功能,参考蓝色按钮,此功能默认开启,一旦开启则会在你编写代码时就会实时监测,一旦有不符合规范的语句就会出现错误提示。

例如如下代码,

package com.test;/*** Hello world!**/
public class App {public static void main( String[] args ) {System.out.println( "Hello World!" );String test = "tset";if (test.equalsIgnoreCase("test")) {System.out.println("test");}}
}

扫描代码后,不符合规约的代码会按Blocker/Critical/Major三个等级显示在下方面板中,

左边是扫描出的不符合规范的代码,依次点进去可以看到是代码的多少行出现了规约问题以及哪一个规约问题,右边则是规约的详细描述及实例代码,

不仅如此,右侧还有quick fix的按钮,点击后直接可以改正代码,但是并不是所有的问题都有此按钮,有些问题还是需要手动修改,

2. Eclipse的安装

Eclipse中打开Help-Install New Software,

输入https://p3c.alibaba.com/plugin/eclipse/update,

勾选Ali-CodeAnalysis,

进行安装,

安装完成,会在工具中,出现这两个图标,

可以在类、包或者工程上右键,选择“阿里编码规约扫描”,

出现两个新窗口,一个是P3C Results,显示执行结果,

另外一个是Rule Detail,给出当前规则的一些说明和示例,

以上是规范验证插件的使用,但是是说使用了这个插件,就能够让我们的代码中少一些Bug?是不是我们就能少踩一些坑?答案肯定不是,插件只有检测和提示作用,真正的编码者依然是我们自己,这只是一个工具而已,他只是提供给我们一些实践的经验,真正要写出健壮代码最重要的还在于编码者自己,所以不要本末倒置。

参考,

https://github.com/alibaba/p3c/tree/master/idea-plugin

https://www.cnblogs.com/han-1034683568/p/7682594.html

https://www.cnblogs.com/baiqiantao/p/8036886.html

近期更新的文章:

《《SQL Cookbook》 - 第一章 检索数据》

《梅西 ≠ 一人一城?》

《小白学习MySQL - 表空间碎片整理方法》

《Oracle字符串类型扩容隐患》

《PG逻辑复制的REPLICA IDENTITY设置》

文章分类和索引:

《公众号800篇文章分类和索引》

阿里的Java开发规范插件验证相关推荐

  1. 谈谈阿里与谷歌的Java开发规范

    无规矩不成方圆,编码规范就如同协议,有了Http.TCP等各种协议,计算机之间才能有效地通信,同样的,有了一致的编码规范,程序员之间才能有效地合作.道理大家都懂,可现实中的我们,经常一边吐槽别人的代码 ...

  2. Java开发规范(阿里+腾讯)

    如何适应企业的标准化开发? 文章目录 前言 腾讯开发规范整理(精简) 阿里开发规范整理(精简) 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越 ...

  3. MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用

    JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...

  4. 阿里巴巴java开发规范Idea插件使用手册

    插件官方下载地址: https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines/versions 插件包是下载的 ...

  5. sonarqube中怎么添加阿里java开发规范

    这篇文章给大家介绍sonarqube中怎么添加阿里java开发规范,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助. 1.拉取sonar-pmd源码,切换到3.2.1.修改pom文件 ...

  6. java string 占位符_驳《阿里「Java开发手册」中的1个bug》?

    前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...

  7. java object转list_这份Java开发规范,让你100%受益!

    今天跟大家分享下Java开发规范的知识. 基于阿里巴巴JAVA开发规范整理: https://github.com/alibaba/p3c 1 命名风格 [强制]类名使用 UpperCamelCase ...

  8. 驳《阿里「Java开发手册」中的1个bug》?

    这是我的第 211 期分享 作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 前两天写了一篇关于<阿里Java开发手册中的 1 ...

  9. 谈谈ali与Google的Java开发规范

    无规矩不成方圆,编码规范就如同协议,有了Http.TCP等各种协议,计算机之间才能有效地通信,同样的,有了一致的编码规范,程序员之间才能有效地合作.道理大家都懂,可现实中的我们,经常一边吐槽别人的代码 ...

最新文章

  1. Linux-pidstat Monitor and Find Statistics for Linux Procesess
  2. 《Adobe Illustrator CC经典教程》—第0课0.1节简介
  3. dtoj#4178. 配对(pair)
  4. boost::fusion::zip用法的测试程序
  5. 计算机的网络操作题,计算机网络操作题
  6. linux可以用dos命令是什么意思,Linux系统常用命令与DOS命令的类似之处和本质区别各是什么?...
  7. java实现语音聊天_java 语音聊天核心代码
  8. python中dumps和dump区别_python json.dumps() json.dump()的区别
  9. C++开发环境如何设置呢?
  10. OpenGL 概念整理
  11. 遥感数据下载平台汇总
  12. VUX 移动前端框架使用文档
  13. arcgis剔除异常值栅格计算器_arcgis 栅格计算器(Spatial Analyst/Raster Calculator)
  14. 解密街头立体画的创作过程
  15. 开课吧T31项目第6天
  16. QAT(Quantization Aware Training)量化感知训练(二)【详解】
  17. Mysql cancel分析
  18. 使用 Vanilla JavaScript 构建自定义 SPA 路由器
  19. 网站统计中的数据收集原理及实现
  20. 韩国计算机研究生课程,2020年韩国大学计算机科学硕士申请条件

热门文章

  1. U3d学习-使用Unity3D开发2D游戏(上)
  2. Android 如何应用ttf图标字体库
  3. c语言控制台输出爱心图,C语言控制台打印3D爱心图案
  4. Conda安装pytorch等库时下载速度慢的解决方案(离线下载)
  5. vue路由跳转子组件_vue跳转到子路由子路由的组件页面无法滚动
  6. 利用C语言编写放烟花的程序(春节专用)
  7. CreateFile函数使用方法详细介绍
  8. python开发ps插件_Python实现PS滤镜中马赛克效果示例
  9. Vista 8024402F 错误修复
  10. upload_libs闯关攻略之01_20