習題1小步前行。挑選一種重構技術,并從中找出某一處,在此盡管可以采用粒度更大的步驟,不過更適于小步前行?!鲇嘘P解決方案請見附錄A。習題2簡單設計。A.證明Beck對簡單設計所指出的各個規則正確。B.這些規則為什么存在不同優...[繼續閱讀]
海量資源,盡在掌握
習題1小步前行。挑選一種重構技術,并從中找出某一處,在此盡管可以采用粒度更大的步驟,不過更適于小步前行?!鲇嘘P解決方案請見附錄A。習題2簡單設計。A.證明Beck對簡單設計所指出的各個規則正確。B.這些規則為什么存在不同優...[繼續閱讀]
無論是使用重構,還是在開發新的重構技術,都應當以一種適當的方式進行,即能夠使系統從一個正常狀態穩步前進到下一個正常狀態。在進行重構時,我們傾向于小步驟但更安全(smallstepsbutsafer)的方法,而不是快速但往往不安全(fastbutn...[繼續閱讀]
●注釋(Comments)●過長的方法(LongMethod)●過大的類(LargeClass)●過長的參數表(LongParameterList)...[繼續閱讀]
癥狀●代碼中出現注釋符號(∥或/*)。(有些IDE對不同類型的注釋代碼設置了不同的顏色,這對于區別注釋會有所幫助。)原因注釋之所以出現,最可能的原因是:作者認為某些東西沒有說清楚,所以才增加了注釋。有些注釋特別有用:●指出...[繼續閱讀]
癥狀●存在大量的代碼行。(只要看到超過5~10行代碼的方法,我就會立即對其置疑)。原因我把這看作是Columbo并發癥(Columbosyndrome)。Columbo是一個偵探,其口頭禪總是“再多一點點”。對于方法也是類似的,自方法開始建立以來,在其發展...[繼續閱讀]
癥狀●存在大量實例變量●存在大量方法●存在大量代碼行原因過大的類并非一蹴而就,往往是一次增大一點。作者不斷地向類增加另一個新的功能,直到最終變得過于龐大。之所以會出現這個問題,有時是因為對于組成整個類的各部...[繼續閱讀]
癥狀●方法的參數多于1個或2個。原因可能是試圖盡量減少對象之間的耦合。你的做法不是由被調用對象來了解類之間的關系,而是令調用者來確定所有一切;如此一來,方法所關注的就是有關信息(譯者注:即由調用者提供的信息)要求它...[繼續閱讀]
習題7壞味道和重構。請考慮以下壞味道:A.注釋B.過大的類C.過長的方法D.過長的參數表對于以下所列的各種重構,請指出它們可能對哪些壞味道的修正有所幫助(寫出相應的表示字母):——復制受察數據——抽取類——抽取接口——抽取...[繼續閱讀]