撰寫易讀程式碼的三大法則
程式碼的可讀性至關重要,它影響著程式碼的維護、擴展和團隊協作。經驗不足的開發者經常會寫出難以閱讀的程式碼。本文將介紹三個提升程式碼可讀性的法則,幫助你寫出更清晰易懂的程式碼。
法則一:避免過度巢狀結構
巢狀結構的缺點
經驗不足的開發者常犯的錯誤之一就是撰寫深度巢狀的程式碼。 這種邏輯難以理解,因為在閱讀每一層級時,都需要將允許我們深入巢狀結構的條件記在腦海中。 當你到達核心邏輯時,你的大腦可能已經達到其容量的極限,但你仍然需要理解核心邏輯,同時考慮你已經記在腦海中的事情。
如何簡化巢狀結構
為了解決這個問題,撰寫易讀程式碼的第一個法則就是避免深度巢狀結構。 我們可以通過以下幾種方式簡化程式碼:
-
反轉條件 (Inversion): 我們可以反轉條件,例如,如果不是維護期間才執行內部邏輯,我們可以改為,如果是維護期間,則不進行下一步。 這樣可以將巢狀結構減少一層。
-
合併相關的 If 語句: 如果兩個
if
語句相關,例如檢查使用者是否已驗證和檢查使用者是否已授權,它們都是與身份驗證相關的驗證,我們可以將它們合併。 請注意,這樣做會失去日誌訊息的一些精細度。
巢狀結構簡化的優點
現在,閱讀你程式碼的人會發現,他們不再需要在閱讀核心邏輯時將這些條件記在腦海中。 他們只需知道,如果程式碼已執行到某個點(例如此處),則不再需要考慮先前的程式碼。 他們可以將其從腦海中拋棄,然後專注於下一個程式碼區塊。
提取 (Extraction)
-
複雜邏輯提取: 提取一些複雜的邏輯到其自己的方法或函數中。
-
具描述性的命名: 給這些函數或方法一個具描述性的名稱。
法則二:避免程式碼重複
重複程式碼的缺點
假設你的程式碼包含多個具有相同功能的函數。 如果你需要修改這個功能(例如,移除快取行為),你需要在多個地方進行修改,這很容易遺漏。 這就是程式碼重複帶來的問題。
如何避免程式碼重複
為了解決這個問題,撰寫易讀程式碼的第二個法則就是避免程式碼重複。 我們可以將重複的程式碼提取到一個共用的函數中,然後在需要的地方呼叫這個函數。
避免程式碼重複的優點
現在,閱讀你程式碼的人只需要修改單個共用點。 這也使程式碼不那麼複雜,進而使其更具可讀性。
法則三:使用有意義的命名
命名問題的嚴重性
想像一段程式碼,它的變數、函數和類別名稱都是無意義的縮寫或只有作者才懂的術語。 這樣的程式碼幾乎無法閱讀和理解。
如何使用有意義的命名
為了解決這個問題,撰寫易讀程式碼的第三個法則就是不要使用只有你才懂的命名。 確保你的命名是清晰、簡潔和有意義的,以便其他人可以輕鬆理解你的程式碼。
- 遵循命名慣例: 存在許多不同的命名慣例,但是只要你嘗試遵循一些命名慣例,並且記住你使用的名稱對於程式碼的潛在讀者應該是有意義的,那麼你就不會犯太大的錯誤。
有意義的命名的優點
如果我們簡單地修改這段程式碼,使其具有更具意義的名稱,那麼很明顯這段程式碼實際上試圖做什麼。 就這麼簡單。
總結
這就是撰寫易讀程式碼的三個法則。 遵循這些法則可以大大提高你的程式碼的可讀性,使其更容易維護、擴展和協作。