一 命名风格
- 所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。
正例: alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
反例:DaZhePromotion【打折】/ getPingfenByName()【评分】
- 类名使用 UpperCamelCase 风格
- 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。
- 常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例:MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
反例:MAX_COUNT / EXPIRED_TIME
- 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾,测试类命名以它要测试的类的名称开始,以 Test 结尾。
- 杜绝完全不规范的英文缩写,避免望文不知义。
反例:AbstractClass“缩写”成 AbsClass;condition“缩写”成 condi;Function“缩写”成 Fu
- 在常量与变量命名时,表示类型的名词放在词尾,以提升辨识度。
正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
二 常量定义
- long 或 Long 赋值时,数值后使用大写 L,不能是小写 l,小写容易跟数字混淆,造成误解。
说明:public static final Long NUM = 2l; 写的是数字的 21,还是 Long 型的 2?
- 浮点数类型的数值后缀统一为大写的 D 或 F。
正例:public static final double HEIGHT = 175.5D;
public static final float WEIGHT = 150.3F
三 代码格式
- 如果大括号内为空,简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块,则:
1)左大括号前不换行。
2)左大括号后换行。
3)右大括号前换行。
4)右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
- 任何二目、三目运算符的左右两边都需要加一个空格。
说明:包括赋值运算符 =、逻辑运算符 &&、加减乘除符号等。
- 左小括号和右边相邻字符之间不需要空格;右小括号和左边相邻字符之间也不需要空格;而左大括号前需要加空格。
- if / for / while / switch / do 等保留字与左右括号之间都必须加空格。
- 采用 4 个空格缩进,禁止使用 Tab 字符。IDEA 设置 Tab 为 4 个空格时,请勿勾选 Use tab character;
而在 Eclipse 中,必须勾选 insert spaces for tabs。
- 注释的双斜线与注释内容之间有且仅有一个空格。
- 在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开。
正例:
double first = 3.2D;
int second = (int)first + 2;
- 单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:
1)第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。
2)运算符与下文一起换行。
3)方法调用的点符号与下文一起换行。
4)方法调用中的多个参数需要换行时,在逗号后进行。
5)在括号前不要换行,见反例。
反例:
StringBuilder builder = new StringBuilder();
// 超过 120 个字符的情况下,不要在括号前换行
builder.append("you").append("are")...append
("lucky");
// 参数很多的方法调用可能超过 120 个字符,逗号后才是换行处
method(args1, args2, args3, ...
, argsX);
- 方法参数在定义和传入时,多个参数逗号后面必须加空格。
正例:下例中实参的 args1 逗号后边必须要有一个空格。
method(args1, args2, args3)
10.没有必要增加若干空格来使变量的赋值等号与上一行对应位置的等号对齐。
正例:
int one = 1;
long two = 2L;
float three = 3F;
StringBuilder builder = new StringBuilder();
11.不同逻辑、不同语义、不同业务的代码之间插入一个空行,分隔开来以提升可读性。
说明:任何情形,没有必要插入多个空行进行隔开。
标签:正例,规约,编程,反例,空格,换行,命名,大括号 From: https://www.cnblogs.com/Sco-/p/16990030.html