"Reducing cognitive load" 在程式設計中指的是減少在閱讀、理解或使用程式碼時所需的心智負擔。目的是使程式碼更易於理解和維護。就像文言文雖然短,但要花更多的心力去了解、解釋,而且不同的人還可能解譯不同。
今天(9/25) 剛好 Ruddy 老師在講 人工智能驅動下的開發者體驗 -實務篇 強調的也是減少認知負荷,這樣開發者就會有效率。Ruddy 老師講的是開發者的平台 Support,
以下是在程式開發的時的一些要點,可以幫助減少程式碼的心智負擔:
Funciton / method 應該只做一件事情且做得很好 (SRP),這使得它更容易被測試和重用
變數、函數、類別等的名稱應該清清的反映其功能或目的
過多的巢狀條件或循環可以使程式碼難以追踪和理解
使用早期返回(early return)或其他技術來簡化條件語句。例如昨天談到的 require, check
良好的註解和文件可以幫助其他開發者快速理解程式碼的目的和行為。
全域變數可能導致預料之外的副作用和程式碼間的模糊依賴。
這可以使程式碼更加整齊和預測。
當適當時,使用已知的設計模式可以使程式碼更容易被理解。不過設計模式也不是為了套而套。過多就會變成不必要的優化
在沒有必要的情況下進行的優化可能會使程式碼變得複雜且難以理解。
保持函式/方法短小
以下方法不限於 Kotlin , 把每個段落提成 function 也會比較容易理解閱讀
fun process(data: List<String>) {
// ... 解析數據
// ... 驗證數據
// ... 儲存數據
}
// 較好的寫法
fun process(data: List<String>) {
val parsedData = parseData(data)
validateData(parsedData)
saveData(parsedData)
}