格式《代码整洁之道》

格式

1. 垂直格式

  • 短的源文件比长的源文件会更好,一般在200行~500行之间为好
  • 源文件的结构应该是从上往下展开,顶部是高层次概念,底下是实现细节,可以简单理解为 public 放在前,private 放在后
  • 每组代码应该是完整的一条思路,不同组代码之间应该用空白行隔开
  • 相关代码应该靠近,避免把相关的概念放到不同文件中,即避免过度使用 protected
  • 变量声明应该尽可能靠近其使用位置
  • 实体变量应该在类的顶部声明
  • 函数调用应该放在一起,也就是被调用者在调用者的下面,保持程序的顺序性
  • 概念相关的代码应该放在一起,相关性越强,彼此之间的距离就应该越短

2. 水平格式

  • 代码行尽量短小,控制在120个字符以内最好
  • 操作符左/右加上空格,例如 =+-等左右都应该加上空格,而 , 则是右边加空格
  • 函数名和左括号不加空格
1
2
3
4
5
6
7
// 声明时不要加空格
public void print() {
...
}

// 调用时不要加空格
print();
  • 函数参数之间用逗号和空格隔开,可以明显区分参数
1
2
3
4
// 参数之间加上空格分隔
public void print (String prefix, String name) {
...
}
  • 有时为了强调运算符之间的关系,使用空格或括号分隔
1
2
3
4
5
6
7
8
9
// 1. 这种方式也可以,但是会被格式化工具清理掉
public double calc (double a, double b, double c) {
return b*b - 4*a*c;
}

// 2. 所以建议用括号分隔不同的计算,明确区分
public double calc (double a, double b, double c) {
return (b * b) - (4 * a * c);
}
  • 不建议使用对齐的变量声明
1
2
3
4
5
6
7
8
9
public class User {
// 有人喜欢把变量名对齐,
// 但是格式化工具会把排版清理掉,所以不建议这样写
private String firstName;
private String lastName;
private int age;
private boolean sex;
private String address;
}
  • 即使是单条语句,判断语句 ifwhile,以及函数都应该用大括号 {} 将代码包起来
1
2
3
4
5
6
7
8
9
10
11
12
13
// 不建议这么写
if (a > 10)
return a;

// 应该用大括号
if (a > 10) {
return a;
}

// 即使这样也应该用大括号
while (isTrue()) {
;
}
  • 不要违反缩进规则,特别是 ifwhile 和短函数
1
2
3
4
5
6
7
// 有人会这么写
if (a > 10) { reurn a };

// 建议缩进
if (a > 10) {
return a;
}

格式《代码整洁之道》

http://example.com/book/clean_code/formatter/

作者

jiaduo

发布于

2021-08-28

更新于

2023-04-02

许可协议