程式碼品質

程式碼品質 #

本文討論了高品質程式碼的定義,包括其應達成的核心目標和影響其品質的六個關鍵要素。

程式碼的品質
既有需求完全符合在失控邊緣,不完全符合
需求變更時對應工作量小需大幅重做和重構
錯誤對系統的影響仍能正常還原或優雅結束進入不可知狀態,資料可能受損
有沒被預期的應用場景系統仍可控系統進入不可知狀態,資料可能受損
系統受到攻擊在安全狀態,不會受損進入未定義狀態,資料可能受損
對應的軟體樣貌可信賴、易維護、Bug 少不可信賴、難以維護、Bug 眾多

高品質程式碼應達成的四個目標:

  • 能運作(解決問題)
  • 能持續運作(持續解決問題,不會有天突然失能)
  • 能適應不斷變化的需求(即便問題改變,仍能快速應對來解決)
  • 不用重新發明輪子(省力、少出錯、運用現有知識、讓程式碼更易理解)

影響程式碼品質的六個關鍵:

  • 可讀性佳
  • 意外(驚喜)出現情況少
  • 不會被誤用
  • 可被模組化(Modularize):物件或系統由獨立交換(可替代)的小元件所組成
    • 模組間使用良好定義的介面互相交流,進而縮限新增功能的修改範圍
    • 功能被分解成可管理的區塊,整體系統更易理解和推理
  • 程式碼可重用和可泛化:
    • 可重用性(resuability):東西能在不同場景下用來解決相同問題
    • 可泛化性(generalizability):東西能解決情境不同但概念相似的問題
  • 可測試且能正確測試:防止錯誤或損壞的功能程式碼出現,或最後被釋出