重構改善既有代碼的設計(英文注釋版)

重構改善既有代碼的設計(英文注釋版)

《重構改善既有代碼的設計(英文注釋版)》,作者是(美)福勒 ,由人民郵電出版社於 2008 年出版。描述的是本書清晰地揭示了重構的過程,解釋了重構的原理和最佳實踐方式,並給出了何時以及何地應該開始挖掘代碼以求改善。書中給出了70多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術。本書提出的重構準則將幫助你一次一小步地修改你的代碼,從而減少了開發過程中的風險。

基本信息

作者:(美)福勒
ISBN:10位[7115168040]13位[9787115168047]
出版社人民郵電出版社
出版日期:2008-2-1
定價:¥69.00元

內容提要

本書清晰地揭示了重構的過程,解釋了重構的原理和最佳實踐方式,並給出了何時以及何地應該開始挖掘代碼以求改善。書中給出了70多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術。本書提出的重構準則將幫助你一次一小步地修改你的代碼,從而減少了開發過程中的風險。
本書適合軟體開發人員、項目管理人員等閱讀,也可作為高等院校計算機及相關專業師生的參考讀物。

編輯推薦

軟體開發的不朽經典,生動闡述重構原理和具體做法,新添大量重構方法,使你與時供進,豐富的辭彙和背景注釋,助你輕鬆讀經典。
重構,一言以蔽之,就是在不改變外都行為的前提下,有條不紊地改善代碼。多年來,正是本書原版的出版,使重構終於從編程高手們的小圈子走出,成為眾多普通程式設計師日常開發工作中不可或缺的一部分。而本書也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界範圍內暢銷不衰。
今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與本書最初出版時不可同日而語。英文注釋版根據原作者MartinFowler維護的本書網站,對原書進行了擴充,加入了大量新增重構,使這部不朽經典歷久彌新。

作者簡介

MartinFowler世界軟體開發大師,在面向對象分析設計、UML、模式、XP和重構等領域都有卓越貢獻,現為著名軟體開發諮詢公司thoughtworks的首席科學家。他的多部著作《分析模式》、《UML精粹》和《企業套用架構模式》等都已經成為膾炙人口的經典。

目錄

Chapter1:refactoring,aFirstExample重構,第一個例子 
TheStartingPoint起點 
TheFirstStepinRefactoring重構第一步 
DecomposingandRedistributingtheStatementMethod分解並重組slalemenl方法 
ReplacingtheConditionalLogiconPriceCodewithPolymorphism用多態代替價格條件邏輯代碼 
FinalThoughts結語 
Chapter2:PrinciplesinRefactoring重構原則 
DefiningRefactoring何謂重構 
WhyShouldYouRefactor?為何重構 
WhenShouldYouRefactor?何時重構 
WhatDoITellMyManager?怎樣說服經理 
ProblemswithRefactoring重構的問題 
RefactoringandDesign重構與設計 
RefactoringandPerformance重構與性能 
WhereDidRefactoringComeFrom?重構的起源 
Chapter3:BadSmellsinCode(byKentBeckandMartinFowler)代碼壞昧 
DuplicatedCode重複代碼 
LongMethod過長方法 
LargeClass過長類 
LongParameterList過長參數列表 
DivergentChange發散式變化 
ShotgunSurgery霰彈式修改 
FeatureEnvy特性依戀 
DataClumps數據泥團 
PrimitiveObsession基本類型偏執 
SwitchStatementsswitch語句 
ParallelInheritanceHierarchies平行繼承體系 
LazyClass冗餘類 
SpeculativeGenerality理論上的一般性 
TemporaryField臨時欄位 
MessageChains訊息鏈 
middleman中間人 
InappropriateIntimacy過度親密 
AlternativeClasseswithDifferentInterfaces接口不同的等效類
IncompleteLibraryClass不完整的庫類 
DataClass數據類 
RefusedBequest拒絕繼承 
Comments注釋過多 
Chapter4:BuildingTests構建測試 
TheValueofSelf-testingCode自測試代碼的重要性 
TheJUnitTestingFrameworkJunit測試框架 
AddingMoreTests添加更多測試 
Chapter5:TowardaCatalogofRefactorings重構目錄 
FormatoftheRefactorings重構描述的格式 
FindingReferences尋找引用 
HowMatureAreTheseRefactorings?這些重構的成熟度如何
Chapter6:ComposingMethods組合方法 
ExtractMethod提取方法 
InlineMethod內聯方法 
InlineTemp內聯臨時變數 
*ReplaceTempwithQuery用查詢方法代替臨時變數 
IntroduceExplainingVariable引入解釋性變數 
SplitTemporaryVariable分離臨時變數 
*RemoveAssignmentstoParameters去除參數賦值 
ReplaceMethodwithMethodObject用方法對象代替方法 
SubstituteAlgorithm替換算法 
Chapter7:MovingFeaturesBetweenObjects在對象之間移動特性
*MoveMethod移動方法 
MoveField移動欄位 
ExtractClass提取類 
InlineClass內聯類 
HideDelegate隱藏委託類 
RemoveMiddleMan去除中間人 
IntroduceForeignMethod引入外加方法 
*IntroduceLocalExtension引入本地擴展類 
Chapter8:OrganizingData組織數據 
SelfEncapsulateField自封裝欄位 
ReplaceDataValuewithObject用對象代替數據值 
ChangeValuetoReference將值對象改為引用對象 
ChangeReferencetoValue將引用對象改為值對象 
ReplaceArraywithObject用對象代替數組 
DuplicateObservedData重複被觀察數據 
*ChangeUnidirectionalAssociationtoBidirectional將單向關聯改為雙向 
ChangeBidirectionalAssociationtoUnidirectional將雙向關聯改為單向 
*ReplaceMagicNumberwithSymbolicConstant用字面常量代替魔數 
EncapsulateField封裝欄位 
EncapsulateCollection封裝集合 
ReplaceRecordwithDataClass用數據類代替記錄 
*ReplaceTypeCodewithClass用類代替類型碼 
ReplaceTypeCodewithSubclasses用子類代替類型碼 
ReplaceTypeCodewithState/Strategy用State/Strategy代替類型碼 
ReplaceSubclasswithFields用欄位代替子類 
Chapter9:SimplifyingConditionalExpressions簡化條件語句 
DecomposeConditional分解條件語句 
ConsolidateConditionalExpression合併條件語句 
ConsolidateDuplicateConditionalFragments合併重複的條件片段 
RemoveControlFlag去除控制標誌 
ReplaceNestedConditionalwithGuardClauses用守衛語句代替嵌套條件語句 
ReplaceConditionalwithPolymorphism用多態代替條件語句 IntroduceNullObject引入Null對象 
IntroduceAssertion引入斷言 
Chapter10:MakingMethodCallsSimpler簡化方法調用 
RenameMethod重命名方法 
addparameter添加參數 
RemoveParameter去除參數 
SeparatequeryfromModifier將查詢方法與修改方法分離
ParameterizeMethod參數化方法
ReplaceParameterwithExplicitMethods用顯式方法代替參數
PreserveWholeObject保持對象完整
ReplaceParameterwithMethod用方法代替參數 
IntroduceParameterObject引入參數對象
RemoveSettingMethod去除設定方法 
HideMethod隱藏方法 
ReplaceConstructorwithFactoryMethod用工廠方法代替構造器
EncapsulateDowncast封裝向下轉型 
ReplaceErrorCodewithException用異常代替錯誤碼 
ReplaceExceptionwithTest用測試代替異常
Chapter11:DealingwithGeneralization處理泛化關係 
PullUpField上移欄位 
PullUPMethod上移方法 
PullUpConstructorBody上移構造器主體 
PushDownMethod下移方法
PushDownField下移欄位 
ExtractSubclass提取子類 
ExtractSuperclass提取超類
ExtractInterface提取接口
CollapseHierarchy合併繼承層次 
FormTemplateMethod形成TemplateMethod 
ReplaceInheritancewithDelegation用委託代替繼承 
ReplaceDelegationwithInheritance用繼承代替委託5
Chapter12:BigRefactorings(byKentBeckandMartinFowler)大型重構 
TeaseApartInheritance分解繼承層次 
ConvertProceduralDesigntoObjects將過程式設計轉換為面向對象 
SeparateDomainfromPresentation將領域邏輯與表現分離
ExtractHierarchy提取繼承層次
Chapter13:Refactoring,Reuse,andReality(byWilliamOpdyke)重構,復用與現實
ARealityCheck現實的檢驗
WhvAreDevelopersReluctanttoRefactorTheirPrograms?開發人員為何不願重構程式
ARealityCheck(Revisited)再談現實的檢驗
ResourcesandReferencesforRefactoring重構的資源和參考文獻 
ImplicationsRegardingSoftwareReuseandTechnologyTransfer對軟體復用與技術傳播的意義 
AFinalNote結語 
References參考文獻 
Chapter14:RefactoringTools(byDonRobertsandJohnBrant)重構工具 
RefactoringwithaTool使用工具重構
TechnicalCriteriaforaRefactoringTool重構工具的技術標準 
PracticalCriteriaforaRefactoringTool重構工具的實用標準
WrapUp結語 
Chapter15:PuttingItAllTogether(byKentBeck)集大成 
References參考文獻 
ListofSoundbites要點列表
Updates更新內容 
Index索引

相關詞條

相關搜尋

熱門詞條

聯絡我們