Java代码规范

Posted 香菜聊游戏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java代码规范相关的知识,希望对你有一定的参考价值。

1、需求

代码规范检测有助于我们进行代码排错、提高编码效率、以及提升项目整体的运行速度。

为了在开发中统一代码规范,降低维护成本,提高程序的可读性,减少bug 的发生。同时轻量级的完成代码检查,不需要复杂的配置即可完成。

三个核心点:可以进行代码规范检查,在本地完成,配置简单。

2、调研

2.1 Gerrit

Gerrit 是一个Git服务器,它基于 git 版本控制系统,使用网页界面来进行审阅工作。Gerrit 旨在提供一个轻量级框架,用于在代码入库之前对每个提交进行审阅,更改将上载到 Gerrit,但实际上并不成为项目的一部分,直到它们被审阅和接受 。代码审查是Gerrit的核心功能,但仍是可选的,团队可以决定不进行代码审查而工作。

Gerrit 是一个临时区域, 在提交的代码成为代码库的一部分之前, 可以对其修改进行检查。代码修改的作者将提交作为对 Gerrit 的更改。在Gerrit中,每个更改都存储在暂存区域中,可以在其中进行检查和查看。仅当它被批准并提交时,它才被应用到代码库中。

其实,Gerrit 就相当于是在开发员将本地修改提交到代码仓库之前的一个审核工具。在这个审核工具中,你可以查看该提交者在本次的的提交中的修改,然后再决定是否可以将该修改提交给仓库。

2.2 Check-style

CheckStyle作为检验代码规范的插件,除了可以使用配置默认给定的开发规范,如Sun的,Google的开发规范啊,也可以导入像阿里的开发规范的插件。事实上,每一个公司都存在不同的开发规范要求,所以大部分公司会给定自己的check规范,一般导入给定的checkstyle.xml文件即可实现。

Alibaba Java Coding Guidelines

阿里巴巴制定的Java的编码规范,自动化的代码规范检查插件。

阿里巴巴Java开发手册终极版v1.3.0.pdf

2.3 findbugs

Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题,Findbugs不注重style及format,注重检测真正的bug及潜在的性能问题

3、对比:

(1)check-style 插件需要定义规范,Alibaba Java Coding Guidelines 集成了此功能

(2)找 BUG 的话,Findbugs不注重style及format,Findbugs 找 BUG 能力很强,可以自己安装用来检查代码。

(3)Gerrit 作为git 插件,需要安装在git服务器上,在远程进行检查,不能在提交前进行修改,配置复杂,不符合当前需求

(4)检查代码规范的话,直接使用 Alibaba Java Coding Guidelines 就可以了,不需要配置,在本地运行即可检查

4、Alibaba Java Coding Guidelines 插件使用说明

1、安装

File > Settings > Plugins > Marketplace 搜索 “Alibaba Java Coding Guidelines”,按照提示进行安装,然后重启即可。

2、使用

菜单功能:

(1)编码规约扫描:开始扫描代码,默认选择根项目,也可先选中,后操作

(2)打开/关闭实时检测功能:实时检测代码,一般机器性能比较好的话可以开启这项功能

(3)切换语言至英文:中英文切换

如果不想全部扫描,只扫描某一文件夹下的所有文件或者单一文件的话,选中该目录或者单一文件右键也会出现此功能按钮,效果就是扫描出该文件所包含的bug或者不规范。

3、idea 提交设置

在提交的时候运行代码规范检查

取消提交模态窗口,把前面的√去掉就行

提交时打开检查

4、扫描结果

  1. Blocker:阻断,问题等级最高,必须改!红色提醒
  2. Critical:推荐修改,不规范的代码,要改!橙黄提醒
  3. Major:参考,一般问题,可改可不改,建议还是改!浅黄提醒
  4. 扫出来之后每个都有详细的结果说明,怎么改,为什么改,以及代码具体位置
  5. 如图

选中其中的一个问题条目,会出现如下内容,点击后可自动修复

以上是关于Java代码规范的主要内容,如果未能解决你的问题,请参考以下文章

代码规范

研发代码规范

用java实现一个功能:以excel制作的一个任i意表格区域,将其规范化为第一行为列名往后各行为内容

Eclipse-Java代码规范和质量检查插件-阿里巴巴代码规约

Java 编码规范

java实际开发中,实现一个功能的两三个类写在一个源文件中还是一个类写一个源文件更规范一些?