词条 | 重构改善既有代码的设计(英文注释版) |
释义 | 本书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。 书名:重构改善既有代码的设计(英文注释版) 作者:(美)福勒 定价:¥69.00元 出版社:人民邮电出版社 出版时间:2008-2-1 开本:16 编辑推荐软件开发的不朽经典,生动阐述重构原理和具体做法,新添大量重构方法,使你与时供进,丰富的词汇和背景注释,助你轻松读经典。 重构,一言以蔽之,就是在不改变外都行为的前提下,有条不紊地改善代码。多年来,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。而本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。 今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语。英文注释版根据原作者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索引 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。