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