重構的過程中,我一定要用付費的 IDE 來做事嗎?我一定要把步驟切這麼小嗎?當我腦中就真的有一個非常清楚的樣貌,這時我可不可以不要 baby step,直接整段重寫?
我自己是覺得倒也沒關係,當你腦中已經確定了這一段重構完會長怎麼樣,那其實要不要再切小一點,這其實是你可以決定的事情。
我們這一篇會來試看看,一次做大步一點,幾乎整段重寫,會發生什麼事情。
我們拿來重構的是輪帶表 Reels 中的一個滾輪:Reel。
原本 Reels 裡存了一個 List of List of String 來代表資料。這裡還是有一些 primitive obsession 的壞味道,我們打算再拆小一點,讓一個新物件:Reel 來代表「一個滾輪」。有了 Reel 後,Reel 的行為就可以幫助我們簡化 Reels 的邏輯。
我們來看看這樣的重構,在測試的保護下,用「幾乎重寫」的方式來做,看起來會是怎樣。