修復(fù)大多數(shù)壞味道的重構(gòu)技術(shù)。哪些重構(gòu)技術(shù)可以修復(fù)大多數(shù)壞味道?■有關(guān)解決方案請(qǐng)見附錄A。...[繼續(xù)閱讀]
海量資源,盡在掌握
修復(fù)大多數(shù)壞味道的重構(gòu)技術(shù)。哪些重構(gòu)技術(shù)可以修復(fù)大多數(shù)壞味道?■有關(guān)解決方案請(qǐng)見附錄A。...[繼續(xù)閱讀]
尚未提及的重構(gòu)技術(shù)。任何壞味道都未提及的重構(gòu)技術(shù)有哪些?為什么沒有涉及這些重構(gòu)技術(shù)?■有關(guān)解決方案請(qǐng)見附錄A。...[繼續(xù)閱讀]
其他壞味道。由這個(gè)列表,你是否能夠想到其他可能需要關(guān)注的壞味道?■有關(guān)解決方案請(qǐng)見附錄A。...[繼續(xù)閱讀]
●名字(包括匈牙利記法)中嵌有類型(TypeEmbeddedInName)●表達(dá)能力差的名字(UncommunicativeName)●不一致的名字(InconsistentNames)...[繼續(xù)閱讀]
癥狀●名字采用復(fù)合詞,即由一個(gè)詞再加上參數(shù)的類型組成。例如,方法addcourse(CourseC)即屬此類?!衩植捎眯傺览浄?在此將對(duì)象的類型編碼到名字中;例如,iCount作為一個(gè)整型的成員變量?!褡兞棵从车氖瞧漕愋?而不是其用途...[繼續(xù)閱讀]
癥狀名字未能充分表達(dá)其意圖?!駟巫址螂p字符名●無(wú)元音的名字●帶有編號(hào)的變量(例如,pane1、pane2等)●奇怪的縮寫●容易產(chǎn)生誤導(dǎo)的名字(不反映其實(shí)際用途或含義)原因最初實(shí)現(xiàn)時(shí),必須以某種方式進(jìn)行命名。你會(huì)給出當(dāng)時(shí)認(rèn)為...[繼續(xù)閱讀]
●死代碼(DeadCode)●過(guò)分一般性(SpeculativeGenerality)...[繼續(xù)閱讀]
癥狀●變量、參數(shù)、字段、代碼段、方法或類未在任何地方使用(可能除了測(cè)試以外)。原因●需求有所改變,或者采用了新的方法,而沒有進(jìn)行充分的清理?!襁^(guò)于復(fù)雜的邏輯會(huì)導(dǎo)致一些根本不會(huì)發(fā)生的條件組合;在簡(jiǎn)化條件時(shí)即可了解...[繼續(xù)閱讀]
癥狀●存在未用的類、方法、字段、參數(shù)等等。它們可能沒有客戶,或者僅有測(cè)試作為客戶?!駥?duì)于當(dāng)前實(shí)現(xiàn)的需求,代碼過(guò)于復(fù)雜。原因建立代碼時(shí),可能希望它將來(lái)能夠更加有用,但是卻事與愿違。人們?cè)噲D充分挖掘代碼的需求時(shí)...[繼續(xù)閱讀]
表I.3提供了一組重構(gòu)技術(shù)。在每種重構(gòu)技術(shù)的右邊,請(qǐng)寫出能夠抵消其作用的相應(yīng)重構(gòu)技術(shù)(即在表中同時(shí)列出重構(gòu)技術(shù)及其相應(yīng)的逆處理)?!鲇嘘P(guān)解決方案請(qǐng)見附錄C。表1.3重構(gòu)技術(shù)及其逆處理重構(gòu)技術(shù)逆處理AddParameter(增加參數(shù)) ...[繼續(xù)閱讀]