基於《重構》的程式碼重生之路
阿新 • • 發佈:2022-05-22
我們為什麼要重構
你一定經歷過,工作中,歷史專案裡面,一個函式幾百行,變數命名不清晰,每每出現bug,用於修復bug的時間往往在看懂原開發者的意圖之上。總之為了早點下班,為了更美好的生活。我們有必要寫出清晰,優雅的程式碼,讓我們自己開心,也讓以後的開發者不在心中暗罵我們。
編寫思路
本文主要以《重構》第二版為參照,基於現實開發中的實際問題進行解析,並加入部分實際開發程式碼(虛擬碼)進行描述,希望讀者看完這篇文章,能夠有所收穫。
1. 提煉函式(Extract Function)
提煉函式,顧名思義就是將我們的程式碼塊以函式的形式進行存放,這種方式最大好處就是避免過長的程式碼,同時良好的函式命名也可以讓讀者知道這部分程式碼的用意。那麼我們如何判斷是否需要提煉函式呢,《重構》作者提出的觀點是,如果你需要花時間瀏覽一段程式碼才能弄清它到底在幹什麼
- 創造一個函式,根據函式的用途對其命名。
- 將待提煉的程式碼複製到新建的目標函式中。
- 仔細檢查提煉程式碼,是否錯在變數作用域問題,或者值的修改的問題,防止作用域汙染。
- 處理有問題的變數,自測, 完成提煉。
舉個例子:
1. 聚合邏輯相關程式碼,進行整合,防止同一邏輯程式碼相距過遠。
function test () { let a = 1; console.log('111111') console.log(a); }// 實際呼叫a的時候在1111下面,雖然不影響程式碼執行,但是推薦如下操作 function test () { console.log('111111') let a = 1; console.log(a); }
// 聚攏程式碼之後,就可以將邏輯相近的程式碼提煉出來
function consoleA () {
let a = 1;
console.log(a);
}
----------------