Java代码格式化规范实践总结

摘要:
代码自动校验有了统一风格的代码格式,只是从基本格式上约定了大家的代码样式,而关于Java代码的编写规范由于每个人的习惯、代码编写经验都不相同,因此写出来的代码在类的命名规范、设计方面也会有很多的不同,而这也会影响到代码的整体质量。参考目前市面上最有影响力的Java编程规范当属阿里推出的《阿里巴巴Java开发手册》,目前该手册已经成为很多团队的开发标准。

目标说明

统一良好的代码格式规范可以有效提升开发团队之间的「协作效率」,如果不同的开发团队或者开发人员采用不同的代码格式规范,那么每次Format代码都会导致大量的变化,在Code Review及Merge代码时会带来很多的干扰项。因此制定本代码规范希望达成以下目标:

  • 统一Java代码格式规范,确保团队成员间「代码风格一致」;
  • 保证Format代码时不会引入格式上的干扰;
  • 提升团队协作效率、Code Review效率;

怎么实施

在Java代码规范方面目前Google Java Code Style在业界使用得比较广泛。它的优点如下:

  • 业界比较通用;
  • 有比较完善的自动化校验工具及checkstyle配置文档;

为了满足「代码的美感」,借鉴其他公司的定制经验,根据马蜂窝的内部需求,我们进行了一些小的定制,具体变化如下:

  • 修改intellij-java-google-style.xml中的内容:

  • INDENT_SIZE24行缩进
    TAB_SIZE24TAB缩进
    CONTINUATION_INDENT_SIZE48换行缩进
    RIGHT_MARGIN100120单行的长度
    JD_PRESERVE_LINE_FEEDStrue注释中保留手动的换行
    KEEP_LINE_BREAKStrueJava代码中,保留手动的换行
  • 修改intellij-java-google-style.xml文件下载:

Java代码格式化规范实践总结第1张intellij-java-google-style.xml

使用方式

使用代码规范主要干两件事:

  • 代码格式化,可以实现自动化的代码格式化操作;
  • 代码校验,代码格式的自动校验;

代码格式化

1)、先下载上面的「intellij-java-google-style.xml」文件保存至本地目录;

2)、设置配置文件,路径:IntelliJ IDEA → Preference → Editor → Code Style,如下图所示:

Java代码格式化规范实践总结第2张

3)、选择intellij-java-google-style.xml文件所在位置,选择OK

Java代码格式化规范实践总结第3张

配置完code style后,在Mac下使用IntelliJ IDEA进行代码格式化,快捷键为「option+command+L」。

代码自动校验

  • 有了统一风格的代码格式,只是从基本格式上约定了大家的代码样式,而关于Java代码的编写规范由于每个人的习惯、代码编写经验都不相同,因此写出来的代码在类的命名规范、设计方面也会有很多的不同,而这也会影响到代码的整体质量。
  • 为了更好地规范大家的编程行为,可以通过IntelliJ IDEA插件的方式,实现代码的自动化检查节省人力(PS:蚂蚁、快手、摩拜等公司在团队开发过程中都在使用CheckStyle进行自动化代码检查)。
  • 参考目前市面上最有影响力的Java编程规范当属阿里推出的《阿里巴巴Java开发手册》,目前该手册已经成为很多团队的开发标准。下载链接:阿里巴巴Java开发手册终极版v1.3.0.pdf
  • 比较方便的是基于该手册已经开发了IntelliJ IDEA插件,可以在写代码时实时对常见的代码书写错误或者可能留坑的地方进行提示,非常有用。

接下来通过截图的方式演示如何使用「Alibaba Java Code Guidelines插件」进行代码校验:

安装Alibaba Java Code Guidelines插件

可以通过直接通过Jetbrians官方仓库安装,由于网络关系,这里选择手工安装方式

1)、下载最新版本「Alibaba Java Coding Guidelines插件」

http://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines/versions

2)、IntelliJ IDEA → Preference→Plugins,选择「install Plugin from Disk...」

Java代码格式化规范实践总结第4张

完成后,选择重启IntelliJ IDEA。

3)、重启后选择Tools就看到插件了,这里我们选择「切换语言至英文」,再次重启IntelliJ IDEA

Java代码格式化规范实践总结第5张

使用插件实施代码检测

目前该插件的代码检测模式有两种:实施检测、手动触发。

实时检测

实时检测功能在开发过程中对当前文件进行检测,并以高亮的形式提示出来,例如定义一个错误命名的抽象类,提示如下:

Java代码格式化规范实践总结第6张

该功能默认开启,也可以通过配置关闭,建立大家保持开启状态,以时刻矫正自己!有些规则也实现了Quick Fix功能,可以通过快捷键「Option+Enter」呼出Intention菜单,不同的规则会提示不同信息的Quick Fix按钮。

代码扫描

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

例如,对某个代码文件进行规约检测:

Java代码格式化规范实践总结第7张

也可以对整个项目进行规约扫描,例如:

Java代码格式化规范实践总结第8张

扫描结果如下:

Java代码格式化规范实践总结第9张

代码提交检测

在代码提交时也可以进行检测设置,如下:

Java代码格式化规范实践总结第10张

这样提交时也会进行规约检测(ps:关于是否提交时重新格式化代码,建议在编写代码的同时进行格式化,而不要在这里进行格式化)!

QA

1、如何对项目整体进行代码Format?

Java代码格式化规范实践总结第11张

选中要Format的代码目录,快捷键"option+command+L"。

2、设置Save Actions代码保存时自动格式化

为了方便时时刻刻都执行代码格式化操作,这里设置IDEA Save Actions功能,具体步骤如下:

1)、安装Save Actions插件,如下图所示:

Java代码格式化规范实践总结第12张

2)、打开设置,找到Save Actions设置,勾选如下图所示三个复选框,这样每次保存代码时就能自动进行格式化,并且还会去掉无用import引入

Java代码格式化规范实践总结第13张

参考资料:

https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md

https://github.com/google/styleguide

免责声明:文章转载自《Java代码格式化规范实践总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【C#进阶系列】02 PE文件,程序集,托管模块,元数据——还是那个Hello worldC#实现树型结构TreeView节点拖拽的简单功能(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ubuntu 日常办公

下载 https://cn.ubuntu.com/download 双系统,在安装类型时选择其它选项,然后自己在空闲磁盘上创建分区,挂载点为 / 即可。 配置 将官方源换为国内源 sudo apt update sudo apt upgrade 新立得软件包管理器 dpkg 命令的图形化前端,能够在图形界面内完成 LINUX 系统软件的搜寻、安装和删除,...

在 IntelliJ IDEA 中调出类似于 Eclipse 中的“方法大纲”视图的方法

我们在 Eclipse 中常用 “方法大纲(outline)”视图,其方便我们在单一类中快速阅览有哪些方法,同时可以快速定位到指定的方法,那么我们在 IntelliJ IDEA 中如何调出类似的“方法大纲(outline)”视图的,在菜单栏中找到视图(View)--> 工具窗口(Tool Windows)-->结构(Structure)即可,如...

idea配置git,github , gitee

先在本地安装git,再在idea里面配置 1》file --->settings ----->Version  Control  点击test,可以看到git相关的信息: 2》配置github,github的地址,github的注册的用户名和密码,点击test即可测试是否可以连接 3》配置gitee,gitee的地址,创建token,配置...

idea绘制activity流程图中文乱码解决

发现问题: 绘制activity的bpm工作流程图的时候,在name项中填写中文,开始的时候没问题,显示的确是中文,关闭文件再打开发现已经乱码,重启idea效果相同,如图 解决方案:修改idea启动参数,添加字符集编码 关闭idea——>进入idea安装目录/bin——>notepad++按需打开如图标注的两个文件中的一个,64位系统选择带6...

IDEA——错误: 找不到或无法加载主类 com.Main

在使用IDEA创建了一个普通Java项目,执行main()方法时,程序报错如下: “错误: 找不到或无法加载主类 com.Main Process finished with exit code 1”,  我确信自己的java jdk安装和环境变量配置(java jdk安装和环境变量配置)正确无误,而程序只是一个再简单不过的打印而已: package...

intellij idea 新建分支 idea 上进行 git分支branch新建分支,提交分支,合并分支合并到主干,删除分支,管理分支

现在在主流的JAVA开发ide中,idea的使用率已经超过了eclipse,因此掌握idea的操作至关重要。 分支是git的重要功能,通过分支可以使不同的团队各自作业,在关键节点上合并,平时互不干扰,也可以时个人与团队并行作业,亦或不同功能并行前进。(这句话网上抄的) 1.新建分支 1.1根据菜单选择 1.2选择新建分支 1.3输入分支名称 勾选下面的ch...