【阿里规约】阿里开发手册解读——代码格式篇

简介: 本文所有代码格式规范遵循《阿里规约》,从编码、换行符、空格规则、括号规则、字符数等方面展开,详细阐述方法参数、强制转换、运算符、缩进等元素的编写规范。

 导航:

【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析

阿里规约PDF:

阿里巴巴开发手册.pdf

目录

一、编码和换行符

二、空格规范

2.1 保留字

2.2 二目、三目运算符

2.3 缩进

2.4 注释

2.5 强制转换

2.6 方法参数

三、行数、字符数

3.1 单行字符数

3.2 方法行数

四、括号

4.1 大括号换行规则

3.2 小括号规则


一、编码和换行符

规范:代码的编码统一使用UTF-8,换行符使用 Unix 格式,不要使用 Windows 格式。

换行符:

  • Unix格式:在Unix、Linux以及类Unix操作系统中,使用换行符\n来表示新行,这是常用的行结束符。
  • Windows格式:在Windows操作系统中,通常使用回车符和换行符\r\n(CR-LF,Carriage Return-Line Feed)来表示新行。

IDEA设置编码为UTF-8:

image.gif

二、空格规范

2.1 保留字

规范:if/for/while/switch/do 等保留字与括号之间都必须加空格。

正例(添加空格):

if (condition) {
    // 代码逻辑
}
for (int i = 0; i < 10; i++) {
    // 循环体
}
while (condition) {
    // 循环体
}
switch (value) {
    case 1:
        // 情况1的代码
        break;
    default:
        // 默认情况的代码
}

image.gif

反例(不添加空格):

if(condition) {
    // 代码逻辑
}
for(int i = 0; i < 10; i++) {
    // 循环体
}
while(condition) {
    // 循环体
}
switch(value) {
    case 1:
        // 情况1的代码
        break;
    default:
        // 默认情况的代码
}

image.gif

Java常见保留字:

  1. 条件语句关键字:如if、else、switch、case、default。
  2. 循环控制关键字:如for、while、do、break、continue。
  3. 访问修饰符关键字:如public、private、protected。
  4. 数据类型关键字:如int、double、char、boolean。
  5. 类和对象关键字:如class、new、extends、implements。
  6. 异常处理关键字:如try、catch、throw、throws、finally。

2.2 二目、三目运算符

规范:任何二目、三目运算符的左右两边需要加一个空格。

正例(添加空格):

int result = a + b;
boolean condition = (x > y) ? true : false;

image.gif

在正例中,二目运算符和三目运算符的左右两边都有一个空格,这是一种常见的代码风格。

反例(不添加空格):

int result = a+b;
boolean condition=(x>y)?true:false;

image.gif

java中常见的二目、三目运算符:

  • 二目运算符:+、-、*、/、%、=、==、>=、&&
  • 三目运算符:?:

2.3 缩进

规范:采用 4 个空格缩进。可以使用tab快捷键直接四个空格,禁止直接使用“tab”字符 。

IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。

image.gif

2.4 注释

规范:注释双斜线后紧跟一个空格。

// 正例: 这是示例注释,请注意在双斜线之后有一个空格
String param = new String();
//反例: 这是示例注释,请注意在双斜线之后没空格
String param = new String();

image.gif

2.5 强制转换

规范:强制转换时,右括号后无空格。

// 正例:
long first = 1000000000000L;
int second = (int)first + 2;
// 反例:
long first = 1000000000000L;
int second = (int) first + 2;

image.gif

2.6 方法参数

规范:方法参数逗号后加一个空格。

// 正例:下例中实参的 args1,后边必须要有一个空格。
method(args1, args2, args3);
// 反例:下例中实参的 args1,后边没空格。
method(args1,args2,args3);
method(args1 ,args2 ,args3);

image.gif

三、行数、字符数

3.1 单行字符数

规范:单行字符数不超过120个,超过时需要换行。

换行规则:

  • 第2/3/4/..行相对第一行缩进 4 个空格。
  • 运算符随下文一起换行。例如a + b,应该换行成a\n + b,而不是a + \nb
  • 点符号与下文一起换行。例如dog.eat(),应该换行成dog\n.eat(),而不是dog.\neat()
  • 方法的多个参数换行时,逗号不与下文一起换行。例如sum (1,2,3),应该换行成sum (1,2,\n3),而不是sum (1,2\n,3)
  • 在括号前不换行。例如fun (a),应该换行成\nfun (a),而不是fun \n(a)
// 正例:
StringBuilder sb = new StringBuilder(); 
// 超过 120 个字符的情况下,换行缩进 4 个空格,点号和方法名称一起换行
sb.append("Jack").append("Ma")... 
.append("alibaba")... 
.append("alibaba")... 
.append("alibaba");
// 反例:
StringBuilder sb = new StringBuilder(); 
// 超过 120 个字符的情况下,不要在括号前换行
sb.append("Jack").append("Ma")...append 
("alibaba"); 
// 参数很多的方法调用可能超过 120 个字符,不要在逗号前换行
method(args1, args2, args3, ... 
, argsX);

image.gif

3.2 方法行数

规范:单个方法的总行数不超过 80 行。

除注释之外的方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符的总行数不超过80 行。

 

四、括号

4.1 大括号换行规则

规范:大括号内为空时无需换行。

// 正例
int number = 10;
// 大括号内为空,则不换行
if (number > 0) {}
// 反例
int number = 10;
if (number > 0) 
{
}else{
}

image.gif

规范:大括号内非空时:

  • 左大括号:前不换行,后换行
  • 右大括号:前换行,右换行(有else时不换行)
// 正例
int number = 10;
if (number > 0) {
    System.out.println("这个数字是正数");
} else if(number < -3){
    System.out.println("这个数字不是正数");
} else{}
System.out.println("...");

image.gif

3.2 小括号规则

规范:小括号内侧不隔空格,外侧隔单空格。

// 正例:小括号内侧不隔空格,外侧隔单空格。
if (a == b)
// 反例:
// 小括号外侧没隔单空格。
if(a == b)
// 小括号内侧隔了空格
if ( a == b )

image.gif


相关文章
阿里巴巴开发规约之代码格式
    1.如果括大号内没内容那么不换行,     2.小括号变量不能与括号有空格     3.如果/对/同时/开关/做保留等字与括号之间必须加空格     4.
1415 0
|
2月前
|
设计模式 Java 关系型数据库
【阿里规约】阿里开发手册解读——命名规范篇
本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。
【阿里规约】阿里开发手册解读——命名规范篇
|
3月前
|
JSON 缓存 前端开发
阿里开发手册 嵩山版-编程规约 (十) 前后端规约
《阿里开发手册 嵩山版》中关于前后端规约的部分,涵盖了前后端交互的API设计、数据格式、错误处理、安全性等关键编程规约,目的是确保前后端开发高效协同,提升软件交付质量。
 阿里开发手册 嵩山版-编程规约 (十) 前后端规约
|
3月前
|
IDE 安全 Java
阿里开发手册 嵩山版-编程规约 (九) 注释规约
《阿里开发手册 嵩山版》中关于注释规约的部分,强调了注释的重要性和编写规范,包括Javadoc的使用、类和方法注释的要求、以及如何有效使用注释来提高代码的可读性和维护性。
 阿里开发手册 嵩山版-编程规约 (九) 注释规约
|
3月前
|
IDE 安全 Java
阿里开发手册 嵩山版-编程规约 (三)代码格式
《阿里开发手册 嵩山版》的编程规约部分详细介绍了代码格式规范,包括括号使用、空格、注释、行数限制等,旨在提高代码的可读性和维护性。
|
3月前
|
JSON 缓存 前端开发
阿里开发手册 嵩山版-编程规约 (十一) 其它
这篇文章是《阿里开发手册 嵩山版》中关于前后端规约的部分,涵盖了前后端交互的API设计、数据格式、错误处理、安全性等关键编程规约,目的是确保前后端开发高效协同,提升软件交付质量。
 阿里开发手册 嵩山版-编程规约 (十一) 其它
|
3月前
|
设计模式 安全 Java
阿里开发手册 嵩山版-编程规约 (一)命名规范
该文章主要介绍了阿里开发手册嵩山版中关于编程规约的命名规范,包括代码命名的强制和推荐规定,以及接口、类、枚举等的命名规则和各层命名规约等内容。
 阿里开发手册 嵩山版-编程规约 (一)命名规范
|
3月前
|
安全 Java 测试技术
阿里开发手册 嵩山版-编程规约 (五)日期时间的规范
《阿里开发手册 嵩山版》的日期时间规范部分提供了关于日期时间处理的强制性和推荐性规约,包括日期格式化、时间获取、避免硬编码日期、处理闰年问题等,以确保程序在时间处理上的准确性和稳定性。
|
3月前
|
缓存 安全 Java
阿里开发手册 嵩山版-编程规约 (二)常量定义
《阿里开发手册 嵩山版》是阿里巴巴集团技术团队的集体智慧结晶,旨在通过编程规约、异常日志、单元测试等多个维度的规范,提升Java开发者的编码效率和质量,确保软件的稳定性和安全性。本篇为编程规约 (二)常量定义。
|
3月前
|
存储 安全 Java
阿里开发手册 嵩山版-编程规约 (六)集合处理
《阿里开发手册 嵩山版》Java编程中的集合处理规范和最佳实践,旨在提升代码质量和开发效率。