分享
 
 
 

重构改善既有代码的设计(英文注释版)

王朝百科·作者佚名  2010-05-18
窄屏简体版  字體: |||超大  

作者:(美)福勒著

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索引

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有