統一編碼風格不是為了「好看」,而是為了:
原則:可讀性優於個人偏好,團隊共識大於個人堅持。
com.company.project.module // 標準
com.company.project.utils // 避免 utils、common 等無意義包名
UserService, OrderController, Serializable, Runnable
calculateTotal(), userName, pageSize, MAX_CONNECTIONS
static final int DEFAULT_TIMEOUT = 3000;
static final String CONFIG_FILE = "application.yml";
byte[] buffer; // 正確:強調「byte 數組」類型
// byte buffer[]; // 避免:C 風格殘留
1. 版權/許可證頭註釋
2. package 語句
3. import 語句(標準庫 → 第三方 → 本地,字母序)
4. 類/介面文檔註釋(Javadoc)
5. 類/介面定義
6. 字段(常量 → 靜態 → 實例,public → protected → private)
7. 構造器(參數少 → 多)
8. 方法(公共 → 私有,邏輯相關分組)
9. 內部類/枚舉
10. main 方法(若有,置底)
// 推薦風格
public void doSomething(int param) {
if (param > 0) {
List list = new ArrayList<>();
for (String item : list) {
process(item);
}
}
}
@param、@return、@throws、@see 標籤@author(代碼屬於團隊,非個人)//),解釋「為什麼」而非「做什麼」// Java 7+ 標準寫法
try (FileOutputStream fos = new FileOutputStream(file)) {
project.save(fos, "IDE Project File");
} // 自動關閉,即使拋異常
// 循環/多次拼接
StringBuilder sb = new StringBuilder();
for (String part : parts) {
sb.append(part).append(',');
}
String result = sb.toString();
// 避免:整個方法同步
public synchronized void update() { ... }
// 推薦:僅同步臨界區
public void update() {
// 非臨界操作...
synchronized (lock) {
// 核心狀態修改
}
}
catch (Exception e)public final class Order {
private final List- items;
public Order(List
- items) {
this.items = Collections.unmodifiableList(new ArrayList<>(items)); // 防禦性複製+不可變視圖
}
}
eclipse-formatter.xml / idea-code-style.xml)規範是團隊協作的契約,而非束縛。建立「約定優於配置」的文化,讓工具承擔機械檢查,人專注業務邏輯與架構設計。定期回顧調整,保持規範與技術棧演進同步。