閱讀筆記:Good Code, Bad Code Chapter 1 Code quality

總結

此篇文章是 Good Code, Bad Code: Think like a software engineer 第一章(Code quality)的閱讀筆記。此章旨在闡揚程式碼品質的重要性,以及作者認為高品質的程式碼中會有哪些特性、工程師在開發時又可以透過哪些方式撰寫優質程式碼。

筆記

為什麼好的程式碼很重要

程式碼的本意是在解決問題,而透過程式碼組合起來的軟體,其目的也是在解決各式各樣的問題。好的程式碼能確保軟體「可靠、易於維護且盡量不出錯」。

優質的程式碼不直接等於好用的軟體,但這是造就一個好用軟體的大前提。如果一段程式碼本身就不可靠、也無法保證其運作的可行性,那麼建立在此之上的軟體多半也無法順利處理它原本要解決的問題。

何謂好的程式碼

優質的程式碼應具備以下特性:

  1. 這段程式碼能夠解決問題
  2. 這段程式碼不僅滿足當下的需求,還能配合新的需求進行改動
  3. 不要重造輪子:當工程師在解決問題時,通常會將主需求切割為數個小問題依序解決。有些小問題或許已經有現成的解決方式,這些工具多半經過大量測試,其品質會比自行開發來的穩定。並且如果一個問題已經有了常見的解決方法,那麼使用第三方工具也能提升程式碼的可讀性,讓其他人在閱讀程式碼時,能夠更快理解該程式碼的用處。

如何寫出好程式碼

  1. 使其容易閱讀:閱讀後能了解該段程式碼「解決了什麼問題」、「過程如何」、「是否需傳入參數」以及「最後回傳的結果為何」
  2. 避免驚喜:程式碼應避免破壞共識、心智模型(mental model)
  3. 盡可能降低被誤用的可能性(誤用的後果可能不會在第一時間被發現,導致除錯困難)
  4. 模組化:降低改動難度、提升可測試性
  5. 提升復用性(reusable)與通用性(generalizable)
  6. 能夠被測試

參考文件