程式碼品質 #
本文討論了高品質程式碼的定義,包括其應達成的核心目標和影響其品質的六個關鍵要素。
| 程式碼的品質 | 高 | 低 |
|---|---|---|
| 既有需求 | 完全符合 | 在失控邊緣,不完全符合 |
| 需求變更時 | 對應工作量小 | 需大幅重做和重構 |
| 錯誤對系統的影響 | 仍能正常還原或優雅結束 | 進入不可知狀態,資料可能受損 |
| 有沒被預期的應用場景 | 系統仍可控 | 系統進入不可知狀態,資料可能受損 |
| 系統受到攻擊 | 在安全狀態,不會受損 | 進入未定義狀態,資料可能受損 |
| 對應的軟體樣貌 | 可信賴、易維護、Bug 少 | 不可信賴、難以維護、Bug 眾多 |
高品質程式碼應達成的四個目標:
- 能運作(解決問題)
- 能持續運作(持續解決問題,不會有天突然失能)
- 能適應不斷變化的需求(即便問題改變,仍能快速應對來解決)
- 不用重新發明輪子(省力、少出錯、運用現有知識、讓程式碼更易理解)
影響程式碼品質的六個關鍵:
- 可讀性佳
- 意外(驚喜)出現情況少
- 不會被誤用
- 可被模組化(Modularize):物件或系統由獨立交換(可替代)的小元件所組成
- 模組間使用良好定義的介面互相交流,進而縮限新增功能的修改範圍
- 功能被分解成可管理的區塊,整體系統更易理解和推理
- 程式碼可重用和可泛化:
- 可重用性(resuability):東西能在不同場景下用來解決相同問題
- 可泛化性(generalizability):東西能解決情境不同但概念相似的問題
- 可測試且能正確測試:防止錯誤或損壞的功能程式碼出現,或最後被釋出