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