雖不影響功能,但兩週後回頭閱讀,或交接他人維護時,註解是理解意圖的關鍵。養成「寫碼即寫註」習慣,為自己也為團隊。
五個用戶的系統不需引入 EJB、複雜框架、屬性檔、多執行緒等。單純為學習新技術而複雜化專案屬不專業表現。請教資深開發者,以最簡單方案解決問題。
過度壓縮程式碼反而降低可讀性。例:
// 難以閱讀的單一巨大 if
if (newStatusCode.equals("SD") && (sellOffDate == null || todayDate.compareTo(sellOffDate) < 0 || (lastUsedDate != null && todayDate.compareTo(lastUsedDate) > 0))
|| (newStatusCode.equals("OBS") && (OBSDate == null || todayDate.compareTo(OBSDate) < 0))) {
newStatusCode = "NYP";
}
拆分為兩個獨立 if-else,僅多幾行括號,可讀性大幅提升:
if (newStatusCode.equals("SD") && (sellOffDate == null || todayDate.compareTo(sellOffDate) < 0 || (lastUsedDate != null && todayDate.compareTo(lastUsedDate) > 0))) {
newStatusCode = "NYP";
} else if (newStatusCode.equals("OBS") && (OBSDate == null || todayDate.compareTo(OBSDate) < 0)) {
newStatusCode = "NYP";
}
定義常數集中管理:
public class A {
public static final String S_CONSTANT_ABC = "ABC";
public boolean methodA(String sParam1) {
return A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1);
}
}
未來修改只需改一處,避免漏改導致 Bug。
開源框架(Struts、Spring、Hibernate 等)經大量專案驗證。除非極特殊需求,否則直接使用成熟框架最新版。小專案(如 3 個畫面)更不需引入重型框架。
println 效能殺手:測試 10,000 迴圈,有 println 耗時 10.52 秒,無 println 僅 0.001 秒。解法:包裝列印方法,透過模式開關控制:
public static final int DEBUG_MODE = 1;
public static final int PRODUCTION_MODE = 2;
public static void myPrintMethod(int logMode, double value) {
if (logMode > DEBUG_MODE) return;
System.out.println(value);
}
字串串接效能差:20 次串接,String 耗 0.08 秒,StringBuffer 僅 0.01 秒。頻繁修改字串務必使用 StringBuffer/StringBuilder。
介面對商業客戶與功能同等重要。無專業設計師時,開發者應遵循三原則:
無論排程多緊,每個商業需求必須落筆成文,避免口頭溝通導致的誤解與範圍蔓延。
核心原則:
加班不等於產出。遵守前九條準則,自然產出低 Bug、高可維護性的程式碼,品質自會提升。
這十大準則非教條,而是經驗沉澱。內化為習慣,才能在壓力下仍產出專業級程式碼。