出版時(shí)間:2008-2 出版社:人民郵電 作者:福勒 頁(yè)數(shù):469 字?jǐn)?shù):590000
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書(shū)清晰地揭示了重構(gòu)的過(guò)程,解釋了重構(gòu)的原理和最佳實(shí)踐方式,并給出了何時(shí)以及何地應(yīng)該開(kāi)始挖掘代碼以求改善。書(shū)中給出了70多個(gè)可行的重構(gòu),每個(gè)重構(gòu)都介紹了一種經(jīng)過(guò)驗(yàn)證的代碼變換手法的動(dòng)機(jī)和技術(shù)。本書(shū)提出的重構(gòu)準(zhǔn)則將幫助你一次一小步地修改你的代碼,從而減少了開(kāi)發(fā)過(guò)程中的風(fēng)險(xiǎn)?! ”緯?shū)適合軟件開(kāi)發(fā)人員、項(xiàng)目管理人員等閱讀,也可作為高等院校計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)師生的參考讀物。
作者簡(jiǎn)介
Martin Fowler世界軟件開(kāi)發(fā)大師,在面向?qū)ο蠓治鲈O(shè)計(jì)、UML、模式、XP和重構(gòu)等領(lǐng)域都有卓越貢獻(xiàn),現(xiàn)為著名軟件開(kāi)發(fā)咨詢(xún)公司ThoughtWorks的首席科學(xué)家。他的多部著作《分析模式》、《UML精粹》和《企業(yè)應(yīng)用架構(gòu)模式》等都已經(jīng)成為膾灸人口的經(jīng)典。
書(shū)籍目錄
Chapter 1:Refactoring,a First Example 重構(gòu),第一個(gè)例子 The Starting Point 起點(diǎn) The First Step in Refactoring 重構(gòu)第一步 Decomposing and Redistributing the Statement Method 分解并重組slalemenl方法 Replacing the Conditional Logic on Price Code with Polymorphism 用多態(tài)代替價(jià)格條件邏輯代碼 Final Thoughts 結(jié)語(yǔ) Chapter 2:Principles in Refactoring 重構(gòu)原則 Defining Refactoring 何謂重構(gòu) Why Should You Refactor? 為何重構(gòu) When Should You Refactor? 何時(shí)重構(gòu) What Do I Tell My Manager? 怎樣說(shuō)服經(jīng)理 Problems with Refactoring 重構(gòu)的問(wèn)題 Refactoring and Design 重構(gòu)與設(shè)計(jì) Refactoring and Performance 重構(gòu)與性能 Where Did Refactoring Come From? 重構(gòu)的起源 Chapter 3:Bad Smells in Code(by Kent Beck and Martin Fowler) 代碼壞昧 Duplicated Code 重復(fù)代碼 Long Method 過(guò)長(zhǎng)方法 Large Class 過(guò)長(zhǎng)類(lèi) Long Parameter List 過(guò)長(zhǎng)參數(shù)列表 Divergent Change 發(fā)散式變化 Shotgun Surgery 霰彈式修改 Feature Envy 特性依戀 Data Clumps 數(shù)據(jù)泥團(tuán) Primitive Obsession 基本類(lèi)型偏執(zhí) Switch Statements switch語(yǔ)句 Parallel Inheritance Hierarchies 平行繼承體系 Lazy Class 冗余類(lèi) Speculative Generality 理論上的一般性 Temporary Field 臨時(shí)字段 Message Chains 消息鏈 Middle Man 中間人 Inappropriate Intimacy 過(guò)度親密 Alternative Classes with Different Interfaces 接口不同的等效類(lèi) Incomplete Library Class 不完整的庫(kù)類(lèi) Data Class 數(shù)據(jù)類(lèi) Refused Bequest 拒絕繼承 Comments 注釋過(guò)多 Chapter 4:Building Tests 構(gòu)建測(cè)試 The Value of Self-testing Code 自測(cè)試代碼的重要性 The JUnit Testing Framework Junit測(cè)試框架 Adding More Tests 添加更多測(cè)試 Chapter 5:Toward a Catalog of Refactorings 重構(gòu)目錄 Format of the Refactorings 重構(gòu)描述的格式 Finding References 尋找引用 How Mature Are These Refactorings? 這些重構(gòu)的成熟度如何 Chapter 6:Composing Methods 組合方法 Extract Method 提取方法 Inline Method 內(nèi)聯(lián)方法 Inline Temp 內(nèi)聯(lián)臨時(shí)變量 *Replace Temp with Query 用查詢(xún)方法代替臨時(shí)變量 Introduce Explaining Variable 引入解釋性變量 Split Temporary Variable 分離臨時(shí)變量 *Remove Assignments to Parameters 去除參數(shù)賦值 Replace Method with Method Object 用方法對(duì)象代替方法 Substitute Algorithm 替換算法 Chapter 7:Moving Features Between Objects 在對(duì)象之間移動(dòng)特性 *Move Method 移動(dòng)方法 Move Field 移動(dòng)字段 Extract Class 提取類(lèi) Inline Class 內(nèi)聯(lián)類(lèi) Hide Delegate 隱藏委托類(lèi) Remove Middle Man 去除中間人 Introduce Foreign Method 引入外加方法 *Introduce Local Extension 引入本地?cái)U(kuò)展類(lèi) Chapter 8:Organizing Data 組織數(shù)據(jù) Self Encapsulate Field 自封裝字段 Replace Data Value with Object 用對(duì)象代替數(shù)據(jù)值 Change Value to Reference 將值對(duì)象改為引用對(duì)象 Change Reference to Value 將引用對(duì)象改為值對(duì)象 Replace Array with Object 用對(duì)象代替數(shù)組 Duplicate Observed Data 重復(fù)被觀(guān)察數(shù)據(jù) *Change Unidirectional Associationto Bidirectional 將單向關(guān)聯(lián)改為雙向 Change Bidirectional Association to Unidirectional 將雙向關(guān)聯(lián)改為單向 *Replace Magic Number with Symbolic Constant 用字面常量代替魔數(shù) Encapsulate Field 封裝字段 Encapsulate Collection 封裝集合 Replace Record with Data Class 用數(shù)據(jù)類(lèi)代替記錄 *ReplaceType Code with Class 用類(lèi)代替類(lèi)型碼 Replace Type Code with Subclasses 用子類(lèi)代替類(lèi)型碼 Replace Type Code with State/Strategy用State/Strategy 代替類(lèi)型碼 Replace Subclass with Fields 用字段代替子類(lèi) Chapter 9:Simplifying Conditional Expressions 簡(jiǎn)化條件語(yǔ)句 Decompose Conditional 分解條件語(yǔ)句 Consolidate Conditional Expression 合并條件語(yǔ)句 Consolidate Duplicate Conditional Fragments 合并重復(fù)的條件片段 Remove Control Flag 去除控制標(biāo)志 Replace Nested Conditional with Guard Clauses 用守衛(wèi)語(yǔ)句代替嵌套條件語(yǔ)句 Replace Conditional with Polymorphism 用多態(tài)代替條件語(yǔ)句 Introduce Null Object 引入Null對(duì)象 Introduce Assertion 引入斷言 Chapter 10:Making Method Calls Simpler 簡(jiǎn)化方法調(diào)用 Rename Method 重命名方法 Add Parameter 添加參數(shù) Remove Parameter 去除參數(shù) Separate query from Modifier 將查詢(xún)方法與修改方法分離 Parameterize Method 參數(shù)化方法 Replace Parameter with Explicit Methods 用顯式方法代替參數(shù) Preserve Whole Object 保持對(duì)象完整 Replace Parameter with Method 用方法代替參數(shù) Introduce Parameter Object 引入?yún)?shù)對(duì)象 Remove Setting Method 去除設(shè)置方法 Hide Method 隱藏方法 Replace Constructor with Factory Method 用工廠(chǎng)方法代替構(gòu)造器 Encapsulate Downcast 封裝向下轉(zhuǎn)型 Replace Error Code with Exception 用異常代替錯(cuò)誤碼 Replace Exception with Test 用測(cè)試代替異常Chapter 11:Dealing with Generalization 處理泛化關(guān)系 Pull Up Field 上移字段 Pull UP Method 上移方法 Pull Up Constructor Body 上移構(gòu)造器主體 Push Down Method 下移方法 Push Down Field 下移字段 Extract Subclass 提取子類(lèi) Extract Superclass 提取超類(lèi) Extract Interface 提取接口 Collapse Hierarchy 合并繼承層次 Form Template Method 形成Template Method Replace Inheritance with Delegation 用委托代替繼承 Replace Delegation with Inheritance 用繼承代替委托5Chapter 12:Big Refactorings(by Kent Beck and Martin Fowler) 大型重構(gòu) Tease Apart Inheritance 分解繼承層次 Convert Procedural Design to Objects 將過(guò)程式設(shè)計(jì)轉(zhuǎn)換為面向?qū)ο蟆 eparate Domain from Presentation 將領(lǐng)域邏輯與表現(xiàn)分離 Extract Hierarchy 提取繼承層次Chapter 13:Refactoring,Reuse,and Reality(by William Opdyke) 重構(gòu),復(fù)用與現(xiàn)實(shí) A Reality Check 現(xiàn)實(shí)的檢驗(yàn) Whv Are Developers Reluctant to Refactor Their Programs? 開(kāi)發(fā)人員為何不愿重構(gòu)程序 A Reality Check(Revisited) 再談現(xiàn)實(shí)的檢驗(yàn) Resources and References for Refactoring 重構(gòu)的資源和參考文獻(xiàn) Implications Regarding Software Reuse and Technology Transfer 對(duì)軟件復(fù)用與技術(shù)傳播的意義 A Final Note 結(jié)語(yǔ) References 參考文獻(xiàn) Chapter 14:Refactoring Tools(by Don Roberts and John Brant) 重構(gòu)工具 Refactoring with a Tool 使用工具重構(gòu) Technical Criteria for a Refactoring Tool 重構(gòu)工具的技術(shù)標(biāo)準(zhǔn) Practical Criteria for a Refactoring Tool 重構(gòu)工具的實(shí)用標(biāo)準(zhǔn) Wrap Up 結(jié)語(yǔ) Chapter 15:Putting It All Together(by Kent Beck) 集大成 References參考文獻(xiàn) List of Soundbites 要點(diǎn)列表Updates 更新內(nèi)容 Index 索引
編輯推薦
軟件開(kāi)發(fā)的不朽經(jīng)典,生動(dòng)闡述重構(gòu)原理和具體做法,新添大量重構(gòu)方法,使你與時(shí)供進(jìn),豐富的詞匯和背景注釋?zhuān)爿p松讀經(jīng)典?! ≈貥?gòu),一言以蔽之,就是在不改變外都行為的前提下,有條不紊地改善代碼。多年來(lái),正是本書(shū)原版的出版,使重構(gòu)終于從編程高手們的小圈子走出,成為眾多普通程序員日常開(kāi)發(fā)工作中不可或缺的一部分。而本書(shū)也因此成為與《設(shè)計(jì)模式》齊名的經(jīng)典著作,被譯為中、德、俄、日等眾多語(yǔ)言,在世界范圍內(nèi)暢銷(xiāo)不衰。 今天,無(wú)論是重構(gòu)本身,業(yè)界對(duì)重構(gòu)的理解,還是開(kāi)發(fā)工具對(duì)重構(gòu)的支持力度,都與本書(shū)最初出版時(shí)不可同日而語(yǔ)。英文注釋版根據(jù)原作者M(jìn)artin Fowler維護(hù)的本書(shū)網(wǎng)站,對(duì)原書(shū)進(jìn)行了擴(kuò)充,加入了大量新增重構(gòu),使這部不朽經(jīng)典歷久彌新。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版