--- robots: noindex, nofollow tags: refactoring --- # Long Function  ## 徵兆與症狀 通常你看到一個超過十行的 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` 拆成單一任務,然後再抽取出來。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up