資深架構師總結的十條核心準則,貫穿編碼、設計、協作、職業素養全生命週期。違反者輕則技術債堆積,重則專案失控、職業生涯受阻。
- 寫註釋,寫好註釋
解釋「為什麼」而非「做什麼」。公共 API 必須 Javadoc;複雜演算法、業務規則、臨時妥協(TODO/FIXME)逐行註釋。
反例:i++; // i 加 1 正例:// 避開索引 0 保留給系統預留通道
- 別讓事情複雜化
5 用戶的專案不用 EJB、Spring Cloud、Kubernetes。選擇「剛好夠用」的技術棧。
原則:YAGNI (You Aren't Gonna Need It)。
- 「少即是多」不代表「越短越好」
可讀性 > 代碼行數。將超長 if 條件拆分為多個具名布林變數或輔助方法。
重構前:單行 200 字元 if 重構後:3 個 isEligible()、hasValidLicense() 方法。
- 杜絕硬編碼
魔術數字、字串、URL、SQL 全部提煉為 static final 常數或配置檔。
工具:SonarQube 檢測 Magic Number、Checkstyle 強制常數命名。
- 別重複造輪子,也別盲目引入框架
三頁面專案不用 Struts/Spring MVC。現有成熟庫(Apache Commons、Guava、Jackson)優先於自寫工具類。
評估:Star 數、Issue 活躍度、授權相容性、學習曲線。
- 別濫用 System.out.println 除錯
I/O 同步阻塞極其耗時(實測 10,000 次列印耗時 10 秒 vs 純計算 1 毫秒)。
替代:SLF4J + Logback 非同步 Appender;條件式日誌 if (log.isDebugEnabled());StringBuilder 替代字串拼接。
- 重視 GUI/UX,哪怕你是後端
業務方只看介面。原型先行、用戶視角驗收、分頁/搜尋/匯出樣樣齊全。
鐵律:沒有 UI 設計稿不動工;每個列表頁必須有分頁。
- 需求必須文檔化
口頭需求 = 沒有需求。輕量級:Markdown + 版本控制;重量級:Confluence + Jira Epic/Story。
底線:無文檔不寫代碼,變更必須走流程。
- 單元測試是寫代碼的一部分,不是事後補票
TDD 紅-綠-重構循環。測試覆蓋率門檻 ≥ 80%(核心領域 100%)。
規則:先寫測試再寫實作;測試命名 shouldXxxWhenYyy;測試代碼同樣遵循整潔原則。
- 產出質量,而非工時
準點下班、持續重構、知識分享、導師制。
衡量:Bug 密度、交付週期、技術債比率、團隊滿意度。
總結
這十條不是口號,而是肌肉記憶。每次 Code Review 都拿清單對照,半年內必見代碼庫質量質變。把規則內化為習慣,才是從「碼農」進化為「工程師」的分水嶺。