跳到主要內容

發表文章

目前顯示的是 11月, 2017的文章

Refactor 學習筆記 I Extract Method

Refactor 學習筆記 I Extract Method . 現在的公司對於程式技術上有一定的要求。雖然不是說不會寫程式,但是寫了多年程式並沒有深入研究 Refactor (重構)技巧。所以這次技術健檢的分數不甚理想XD。因此想要開始惡補一下。 Extract Method 動機 . 這是最常被使用的重構手法之一。這應該是看到一個過長的函式或是需要需要註解才能了解的程式碼,就應該將此段程式法放到一個獨立的函式中。 . 主要目的是為了有簡短而且良好命名的函式。因為如果每個函式的顆粒度都很小,那麼就容易彼此復用。再者如果函式都是很細的顆粒度,那麼要覆寫(Override)也會更簡單。 . 關鍵倒不是真的長度,而是函式名稱跟函式邏輯本體之前的語意距離太長。如果提煉出來可以增加清晰度,那就該做,就算函式名稱比原本程式碼還長也無所謂。 . 作法 . 函式名稱應該用意圖來命名,以[做什麼]來命名而不是[怎麼做]。但如果想不出一個更有意義的命名就別動 . 如果有僅用於被提煉碼的暫時變數,可以在目標函式宣告為暫時變數。 . 如果被提煉的程式碼會賦予區域變數值,那就要使用Replace Temp With Query來將暫時變數消滅再提煉。 感想ㄎ . 雖然 Extract Method 觀念最簡單,也最常用。但是也不是隨便亂提煉就行。自己要有一個中心思想,就算提煉顆粒度很細小,他人不太習慣,但自己有自己的理由可以提出與他人溝通即可。並非一定要有多處同時使用才提煉。也可以先提煉,然後才更容易復用。 . 最難處裡的就是被提煉的程式碼有賦予區域變數的情況,這可能是最需要特別訓練的部分。