通常你看到一個超過十行的 method/function,內心都需要問自己一下,這個 method/function 是不是作太多事情了。
只往程式庫裡面加東西,但卻不移除任何東西。
按照人類大腦運作方式,往程式庫裡面加上新 method/function 往往比改寫既有 method/function 來的容易一些,需要一陣子後才會驚覺程式庫變成難以處理的怪獸。
有個實用方法,如果你覺得需要在 method/function 裡面寫註解,通常寫個新 method/function 會好一些。
Extract Function
來減少 mehtod/function 的大小。Replace Temp with Query
;若是需要傳遞的參數越來越多,可以用 Introduce Parameter Object
或 Preserve Whole Object
。Replace Function with Command
。Decompose Conditional
來處理條件判斷,如果有多個 switch 結構在判斷類似事情的話,可以考慮使用 Replace Conditional with Polymorphism
。Split Loop
拆成單一任務,然後再抽取出來。