程式碼是給人看的,順便給機器執行。這 10 條守則源自實戰慘痛教訓,違者必有災難。
未註解代碼 = 技術債務。Javadoc 規範:類別、公用方法、複雜演算法必註。註解要解釋「為什麼」,而非「做什麼」(程式碼已說明做什麼)。
單行三元運算子、巢狀邏輯壓成一行 → 除錯地獄。拆分成多個 if、引入說明性變數、犧牲幾行代碼換取清晰度。
// 坏:單行難讀
if (a.equals("SD") && (sellOff==null || today.before(sellOff) || (lastUsed!=null && today.after(lastUsed))) || ...) { ... }
// 好:拆分、命名
boolean isSdValid = a.equals("SD") && (sellOff==null || today.before(sellOff) || (lastUsed!=null && today.after(lastUsed)));
boolean isObsValid = a.equals("OBS") && (obsDate==null || today.before(obsDate));
if (isSdValid || isObsValid) { ... }
魔術數字、字串散落各處 → 維護噩夢。定義 static final 常數,集中管理。
public static final String STATUS_ACTIVE = "ACTIVE";
if (STATUS_ACTIVE.equals(status)) { ... }
成熟框架經過百萬行生產驗證。Struts/Spring/Hibernate 解決通用問題,業務邏輯才是你的價值。簡單系統(3 頁面)不需要 Struts。
System.out.println 同步鎖 + I/O,迴圈中會拖垮效能(實測 10,000 次:無輸出 0.001s vs 有輸出 10.5s)。+ 產生大量中間物件,改用 StringBuilder/StringBuffer(實測 20 次:String 0.08s vs StringBuffer 0.01s)。log.debug() 可由等級控制輸出。哪怕一頁紙、一張白板照,也要留下痕跡。口頭需求 = 不存在的需求。
長工時 ≠ 高產出。健壯、少 Bug、可維護的代碼才是核心資產。經理買單的是品質,而非加班時數。
知易行難。將這 10 條內化為肌肉記憶,你會從「寫代碼的人」進化為「工程師」。