阿里巴巴开发规范——代码格式
代码格式
【强制】
如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块则:1) 左大括号前不换行。
2) 左大括号后换行。
3) 右大括号前换行。
4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。【强制】
左小括号和右边相邻字符之间不出现空格;右小括号和左边相邻字符之间也不出现空格;而左大括号前需要加空格。详见第 5 条下方正例提示。
反例:if (空格 a == b 空格)【强制】
if/for/while/switch/do 等保留字与括号之间都必须加空格。【强制】任何二目、三目运算符的左右两边都需要加一个空格。
说明:包括赋值运算符=、逻辑运算符&&、加减乘除符号等。【强制】
采用 4 个空格缩进,禁止使用 tab 字符。
说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
正例: (涉及 1-5 点)
public static void main(String[] args) {// 缩进 4 个空格String say = "hello";// 运算符的左右必须有一个空格int flag = 0;// 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格if (flag == 0) {System.out.println(say);}// 左大括号前加空格且不换行;左大括号后换行if (flag == 1) {System.out.println("world");// 右大括号前换行,右大括号后有 else,不用换行} else {System.out.println("ok");// 在右大括号后直接结束,则必须换行}}
- 【强制】注释的双斜线与注释内容之间有且仅有一个空格。
正例:
// 这是示例注释,请注意在双斜线之后有一个空格
String commentString = new String(); 【强制】
在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开。
正例:
long first = 1000000000000L;
int second = (int)first + 2;【强制】
单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:
1)第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。
2)运算符与下文一起换行。
3)方法调用的点符号与下文一起换行。
4)方法调用中的多个参数需要换行时,在逗号后进行。 5)在括号前不要换行,见反例。
正例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,换行缩进 4 个空格,并且方法前的点号一起换行
sb.append("zi").append("xin")....append("huang")....append("huang")....append("huang");
反例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,不要在括号前换行
sb.append("you").append("are")...append("lucky");
// 参数很多的方法调用可能超过 120 个字符,逗号后才是换行处
method(args1, args2, args3, ..., argsX);
【强制】
方法参数在定义和传入时,多个参数逗号后边必须加空格。
正例:下例中实参的 args1,后边必须要有一个空格。
method(args1, args2, args3);
10.【强制】
IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 Windows 格式。
11.【推荐】单个方法的总行数不超过 80 行。
说明:除注释之外的方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符的总行数不超过80 行。
正例:代码逻辑分清红花和绿叶,个性和共性,绿叶逻辑单独出来成为额外方法,使主干代码更加清晰;共性逻辑抽取成为共性方法,便于复用和维护。
12.【推荐】没有必要增加若干空格来使变量的赋值等号与上一行对应位置的等号对齐。
正例:
int one = 1;
long two = 2L;
float three = 3F;
StringBuilder sb = new StringBuilder();
说明:增加 sb 这个变量,如果需要对齐,则给 one、two、three 都要增加几个空格,在变量比较多的情
况下,是非常累赘的事情。
13.【推荐】不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性。
说明:任何情形,没有必要插入多个空行进行隔开。
阿里巴巴开发规范——代码格式相关推荐
- vscode代码格式排列_vscode 一键规范代码格式的实现
使用vscode的过程中 自己或者push代码以后 代码的格式可能会出现错乱, 作为一个成熟的开发 , 当然应该遵守一些代码规范, 首先代码整洁度应该排在第一位 使用vscode 格式化代码 在少量的 ...
- vscode 一键规范代码格式
使用vscode的过程中 自己或者push代码以后 代码的格式可能会出现错乱, 作为一个成熟的开发 , 当然应该遵守一些代码规范, 首先代码整洁度应该排在第一位 使用vscode 格式化代码 在少量的 ...
- Apsara Clouder阿里巴巴开发规范认证
apsara n. 飞天:阿普萨拉 俗话说:"没有规矩,不成方圆."今天我们来介绍一下,阿里巴巴对于开发规范的考试认证. 报名地址: https://edu.aliyun.com/ ...
- 阿里巴巴开发规范--精选常用规范
一.编程规范 (一)命名规范 1.类名使用驼峰法,DO/BO/DTO/VO/AO/PO除外 正例:UserDO 补充 pojo vo (与前端交互的所有对象,包括接参和返回) query (查询的筛选 ...
- vscode代码格式排列_vscode怎么一键规范代码格式
具体方法如下: 文件 -> 首选项 -> 设置 -> {} 在右侧用户设置中可以对当前编辑器默认的进行更改 下面的复制到用户设置中, ctrl + s 即可完成对代码的规范. { / ...
- 优雅编程之阿里巴巴开发规范分享及扩展学习(三十八)
开心一笑 [小明的前女友开了家小宾馆,小明进去吃碗牛肉面,吃完就付钱,她前女友说什么都不肯收,于是小明把钱放在桌子上就走了,没想到她前女友追出来把钱塞给了小明.小明就跟他说:"做生意不容易啊 ...
- 阿里巴巴使用的mysql_解读阿里巴巴开发规范之MySQL
前言 从7月份毕业开始算起,也是将近有5个月的工作经验了吧.在工作上,经历了一段时间的适应,现在接触到不同大神写出来的代码,发现各有优劣,于是就在思考一个问题,什么样的代码才是最正常最规范的呢?我的同 ...
- 《阿里巴巴开发规范》读书笔记重点
[强制]不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁. 反例: List a ...
- 毕业设计 c语言编译器的设计开发-字节代码格式设计与实现 开题报告,C语言编译器设计与实现...
C语言编译器设计与实现(任务书,外文翻译,毕业论文20000字,答辩PPT) 摘 要 随着计算机的广泛应用,计算机程序设计语言也从初期的机器语言发展为汇编语言,以及现在的各种高级程序设计语言.而编译技 ...
最新文章
- 以太坊公链私链_如何使用以太坊构建汽车制造供应链系统
- 高逼格的 SQL 写法:行行比较,别问为什么,问就是逼格高。。
- mysql怎么查看索引情况_mysql 查看索引使用情况
- Redis集群明细文档(转)
- DOM4J介绍与代码示例【转载】
- Sklearn 与 TensorFlow 机器学习实用指南第二版
- IE9 Platform Preview 3昨天发布
- c语言 struct 的初始化
- python生成曲线图
- 【转】:localStorage使用总结
- 基于c语言的移动通信调制,π/4-QPSK调制方式及其与GSMK调制方式的比较
- iBase4j项目搭建
- wps文字表格制作拼音田字格模板_用word2003表格快速制作拼音田字格的方法.doc
- 苹果appstore审核等待很长时间的解决方案
- 我的前端故事----欢乐大富翁( ̄︶ ̄)↗ (摇骰子+棋盘)
- css和html实现梦幻西游页面特效
- 2.0 Mesh Beacon帧格式
- Linux下查看输入设备、获取输入事件的详细方法
- Cortex-M3和Cortex-M4 Fault异常基础知识
- 支付宝 APP登录 获取用户信息 PHP
热门文章
- c++代码转为go_C++程序员是如何评价GO的
- POWER BI中国主要城市交通健康榜
- c++ 三次多项式拟合_最小二乘法多项式曲线拟合数学原理及其C++实现
- java中import一个项目时出现中文全是繁体字时的解决情况
- tryhackme-WindCrop
- 手把手教你调试Pixhawk垂直起降参数
- 复盘《新冠疫苗在线预约系统》设计过程Nodejs+express+Mysql+前端
- 1至2019中,有多少个数的数位中包含数字9
- 使用js-xlsx实现文件的导出
- 电脑删除的视频怎么恢复?