重构

当前位置:首页 > 教材 > 研究生/本专科 > 重构

出版社:人民邮电出版社
出版日期:2010
ISBN:9787115221704
作者:Martin Fowler
页数:428页

作者简介

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

书籍目录

第1章 重构,第一个案例1
1.1 起点1
1.2 重构的第一步7
1.3 分解并重组statement()8
1.4 运用多态取代与价格相关的条件逻辑34
1.5 结语52
第2章 重构原则53
2.1 何谓重构53
2.2 为何重构55
2.3 何时重构57
2.4 怎么对经理说60
2.5 重构的难题62
2.6 重构与设计66
2.7 重构与性能69
2.8 重构起源何处71
第3章 代码的坏味道75
3.1 DuplicatedCode(重复代码)76
3.2 LongMethod(过长函数)76
3.3 LargeClass(过大的类)78
3.4 LongParameterList(过长参数列)78
3.5 DivergentChange(发散式变化)79
3.6 ShotgunSurgery(霰弹式修改)80
3.7 FeatureEnvy(依恋情结)80
3.8 DataClumps(数据泥团)81
3.9 PrimitiveObsession(基本类型偏执)81
3.10 SwitchStatements(switch惊悚现身)82
3.11 ParallelInheritanceHierarchies(平行继承体系)83
3.12 LazyClass(冗赘类)83
3.13 SpeculativeGenerality(夸夸其谈未来性)83
3.14 TemporaryField(令人迷惑的暂时字段)84
3.15 MessageChains(过度耦合的消息链)84
3.16 MiddleMan(中间人)85
3.17 InappropriateIntimacy(狎昵关系)85
3.18 AlternativeClasseswithDifferentInterfaces(异曲同工的类)85
3.19 IncompleteLibraryClass(不完美的库类)86
3.20 DataClass(纯稚的数据类)86
3.21 RefusedBequest(被拒绝的遗赠)87
3.22 Comments(过多的注释)87
第4章 构筑测试体系89
4.1 自测试代码的价值89
4.2 JUnit测试框架91
4.3 添加更多测试97
第5章 重构列表103
5.1 重构的记录格式103
5.2 寻找引用点105
5.3 这些重构手法有多成熟106
第6章 重新组织函数109
6.1 ExtractMethod(提炼函数)110
6.2 InlineMethod(内联函数)117
6.3 InlineTemp(内联临时变量)119
6.4 ReplaceTempwithQuery(以查询取代临时变量)120
6.5 IntroduceExplainingVariable(引入解释性变量)124
6.6 SplitTemporaryVariable(分解临时变量)128
6.7 RemoveAssignmentstoParameters(移除对参数的赋值)131
6.8 ReplaceMethodwithMethodObject(以函数对象取代函数)135
6.9 SubstituteAlgorithm(替换算法)139
第7章 在对象之间搬移特性141
7.1 MoveMethod(搬移函数)142
7.2 MoveField(搬移字段)146
7.3 ExtractClass(提炼类)149
7.4 InlineClass(将类内联化)154
7.5 HideDelegate(隐藏“委托关系”)157
7.6 RemoveMiddleMan(移除中间人)160
7.7 IntroduceForeignMethod(引入外加函数)162
7.8 IntroduceLocalExtension(引入本地扩展)164
第8章 重新组织数据169
8.1 SelfEncapsulateField(自封装字段)171
8.2 ReplaceDataValuewithObject(以对象取代数据值)175
8.3 ChangeValuetoReference(将值对象改为引用对象)179
8.4 ChangeReferencetoValue(将引用对象改为值对象)183
8.5 ReplaceArraywithObject(以对象取代数组)186
8.6 DuplicateObservedData(复制“被监视数据”)189
8.7 ChangeUnidirectionalAssociationtoBidirectional(将单向关联改为双向关联)197
8.8 ChangeBidirectionalAssociationtoUnidirectional(将双向关联改为单向关联)200
8.9 ReplaceMagicNumberwithSymbolicConstant(以字面常量取代魔法数)204
8.10 EncapsulateField(封装字段)206
8.11 EncapsulateCollection(封装集合)208
8.12 ReplaceRecordwithDataClass(以数据类取代记录)217
8.13 ReplaceTypeCodewithClass(以类取代类型码)218
8.14 ReplaceTypeCodewithSubclasses(以子类取代类型码)223
8.15 ReplaceTypeCodewithState/Strategy(以State/Strategy取代类型码)227
8.16 ReplaceSubclasswithFields(以字段取代子类)232
第9章 简化条件表达式237
9.1 DecomposeConditional(分解条件表达式)238
9.2 ConsolidateConditionalExpression(合并条件表达式)240
9.3 ConsolidateDuplicateConditionalFragments(合并重复的条件片段)243
9.4 RemoveControlFlag(移除控制标记)245
9.5 ReplaceNestedConditionalwithGuardClauses(以卫语句取代嵌套条件表达式)250
9.6 ReplaceConditionalwithPolymorphism(以多态取代条件表达式)255
9.7 IntroduceNullObject(引入Null对象)260
9.8 IntroduceAssertion(引入断言)267
第10章 简化函数调用271
10.1 RenameMethod(函数改名)273
10.2 AddParameter(添加参数)275
10.3 RemoveParameter(移除参数)277
10.4 SeparateQueryfromModifier(将查询函数和修改函数分离)279
10.5 ParameterizeMethod(令函数携带参数)283
10.6 ReplaceParameterwithExplicitMethods(以明确函数取代参数)285
10.7 PreserveWholeObject(保持对象完整)288
10.8 ReplaceParameterwithMethods(以函数取代参数)292
10.9 IntroduceParameterObject(引入参数对象)295
10.10 RemoveSettingMethod(移除设值函数)300
10.11 HideMethod(隐藏函数)303
10.12 ReplaceConstructorwithFactoryMethod(以工厂函数取代构造函数)304
10.13 EncapsulateDowncast(封装向下转型)308
10.14 ReplaceErrorCodewithException(以异常取代错误码)310
10.15 ReplaceExceptionwithTest(以测试取代异常)315
第11章 处理概括关系319
11.1 PullUpField(字段上移)320
11.2 PullUpMethod(函数上移)322
11.3 PullUpConstructorBody(构造函数本体上移)325
11.4 PushDownMethod(函数下移)328
11.5 PushDownField(字段下移)329
11.6 ExtractSubclass(提炼子类)330
……
第12章 大型重构359
第13章 重构,复用与现实379
第14章 重构工具401
第15章 总结409
参考书目413
要点列表417
索引419

编辑推荐

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是《重构:改善既有代码的设计》原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。《重构:改善既有代码的设计》也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。《重构:改善既有代码的设计》凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与《重构:改善既有代码的设计》最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

前言

第一次听到“重构”这个词,是在2001年10月。在当时,它的思想足以令我感到震撼。软件自有其美感所在。软件工程希望建立完美的需求与设计,按照既有的规范编写标准划一的代码,这是结构的美;快速迭代和RAD颠覆“全知全能”的神话,用近乎刀劈斧砍(crack)的方式解决问题,在混沌的循环往复中实现需求,这是解构的美;而Kent Beck与Martin Fowler两人站在一起,以XP那敏捷而又严谨的方法论演绎了重构的美——我不知道是谁最初把refactoring一词翻译为“重构”,或许无心插柳,却成了点睛之笔。 我一直是设计模式的爱好者。曾经在我的思想中,软件开发应该有一个“理想国”——当然,在这个理想国维持着完美秩序的,不是哲学家,而是模式。设计模式给我们的,不仅仅是一些具体问题的解决方案,更有追求完美“理型”的渴望。但是,Joshua Kerievsky在那篇著名的《模式与XP》(收录于《极限编程研究》一书)中明白地指出:在设计前期使用模式常常导致过度工程(over-engineering)。这是一个残酷的现实,单凭对完美的追求无法写出实用的代码,而“实用”是软件压倒一切的要素。从一篇《停止过度工程》开始,Kerievsky撰写了“Refactoring to Patterns”系列文章。这位犹太人用他民族性的睿智头脑,敏锐地发现了软件的后结构主义道路。而让设计模式在飞速变化的网络时代重新闪现光辉的,又是重构的力量。 在一篇流传甚广的帖子里,有人把《重构》与《设计模式》并列为“Java行业的圣经”。在我看来这种并列其实并不准确。实际上,尽管我如此喜爱这本《重构》,但自从完成翻译之后,就再也没有读过它。不,不是因为我已经对它烂熟于心,而是因为重构已经变成了我的另一种生活方式,变成了我每天的“面包与黄油”,变成了我们整个团队的空气与水,以至于无需再到书中寻找任何“神谕”。而《设计模式》,我倒是放在手边时常翻阅,因为总是记得不那么真切。

内容概要

Martin Fowler  世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他的多部著作《分析模式》、《UML精粹》和《企业应用架构模式》等都已经成为脍炙人口的经典。
其他参编者——
Kent Beck 软件开发方法学的泰斗,极限编程的创始人。他是Three Rivers Institute公司总裁,也是Agitar Software的成员。
John Brant和Don Roberts The Refactory公司的创始人,Refactoring Browser (http://st-www.cs.illinois.edu/users/brant/Refactory/)的开发者,多年来一直从事研究重构的实践与理论。
William Opdyke 目前在朗讯贝尔实验室工作,他写的关于面向对象框架的博士论文是重构方面的第一篇著名文章。

章节摘录

插图:现在,重构的处境也是如此。我们知道重构的好处,我们知道重构可以给我们的工作带来立竿见影的改变。但是我们还没有获得足够的经验,我们还看不到它的局限性。这一节比我希望的要短。暂且如此吧。随着更多人学会重构技巧,我们也将对它有更多了解。对你而言这意味着:虽然我坚决认为你应该尝试一下重构,获得它所提供的利益,但与此同时,你也应该时时监控其过程,注意寻找重构可能引入的问题。请让我们知道你所遭遇的问题。随着对重构的了解日益增多,我们将找出更多解决办法,并清楚知道哪些问题是真正难以解决的。数据库重构经常出问题的一个领域就是数据库。绝大多数商用程序都与它们背后的数据库结构紧密耦合在一起,这也是数据库结构如此难以修改的原因之一。另一个原因是数据迁移(migration)。就算你非常小心地将系统分层,将数据库结构和对象模型间的依赖降至最低,但数据库结构的改变还是让你不得不迁移所有数据,这可能是件漫长而烦琐的工作。在非对象数据库中,解决这个问题的办法之一就是:在对象模型和数据库模型之间插入一个分隔层,这就可以隔离两个模型各自的变化。升级某一模型时无需同时升级另一模型,只需升级上述的分隔层即可。这样的分隔层会增加系统复杂度,但可以给你带来很大的灵活度。如果你同时拥有多个数据库,或如果数据库模型较为复杂使你难以控制,那么即使不进行重构,这分隔层也是很重要的。你无需一开始就插入分隔层,可以在发现对象模型变得不稳定时再产生它,这样你就可以为你的改变找到最好的平衡点。对开发者而言,对象数据库既有帮助也有妨碍。某些面向对象数据库提供不同版本的对象之间的自动迁移功能,这减少了数据迁移时的工作量,但还是会损失一定时间。如果各数据库之间的数据迁移并非自动进行,你就必须自行完成迁移工作,这个工作量可是很大的。这种情况下你必须更加留神类中的数据结构变化。你仍然可以放心将类的行为转移过去,但转移字段时就必须格外小心。数据尚未被转移前你就得先运用访问函数造成“数据已经转移”的假象。一旦你确定知道数据应该放在何处,就可以一次性地将数据迁移过去。

图书封面


 重构下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计30条)

  •     看似都是些很简单的处理代码的方法,Fowler 一讲马上就明白了。偶尔会涉及到一些面向对象技术需要花点心思去理解,当然,这个本来就是编程的基本。还有就是用到某些设计模式,这个去参考一下四人帮的《设计模式》就好。我想说的是,我很喜欢书本里传递出来的对于追求编写优秀代码的态度。精益求精。作者 Fowler 对重构手法的描述相当的条理清晰,而且基本都有使用范例。而且书本还有专门整理的手法列表,使用起来很方便。所以整本书,这次看完后,以后大致就会把它作为一本工具书来用了。目前只是了解了那些方法。还需要其探索清楚的是,进行程序开发时什么时候应该开始重构,那里需要重构。再进一步就是,把重构融入程序开发过程当中,编程一个一个的习惯。就是所谓的融会贯通吧。另一方面是,面对不同的语言、IDE,去熟悉运用各种重构工具。这将大大地提高开发效率。想起了另外一本书,《修改代码的艺术》。很相似。目的都是让既有的程序代码变得更好。重构手法对代码的修改比较保守一点,不会改变代码的外在表现。《修改代码的艺术》面对的情况要更糟糕一些,必须要进行一些较大动作的修改。为了保证修改的顺畅进行,首先需要引入完备的针对性测试。练就那些技能,不是某一天能够做到的事情。而是一种持续的过程,秉持着精益求精的理念,对这些技术越来越纯熟。从零开始,就像一个修炼过程。更多的还是需要在实践过程中去学习。杰良-2013-07-07
  •     经典图书新版上市,china-pub即将首发,感兴趣的朋友一定不能错过,精彩样章,抢先试读:http://www.china-pub.com/computers/common/mianfeisd.asp?id=196374
  •     《重构》的意义不仅仅在于“改善既有代码的设计”,也指导了我们如何从零开始构建代码的时候避免不良的代码风格。在时间紧任务重的时候,我通常会采用快糙猛的设计,然后在交工之后进行重构,这部分重构工作可能是吃力不讨好的,加班没有钱的,但是如果你去做,你就会知道他可能会在将来拯救了你的一个周末。快糙猛的设计并不代表胡写乱写。这里我会谨慎地采用不良风格,比如说长方法,长参数列表,包装类这些能够显而易见地重构而又能加速开发的坏代码,而避免过深继承,紧耦合,数据分散之类的以后需要很大精力来重构以及导致大麻烦的213代码。作者对于代码质量的要求并不偏执也不过分,其实只是良好代码的最基本要求,连重估里面提到的这些都做不到,你还做架构?做你妹。你还用design pattern?用你妹。你还写代码?写你妹。你还赚钱养家?赚你妹!!!!

精彩短评 (总计101条)

  •     算是 java 的方法论之一,各种模式在 python 和 go 中仍然能看到影子,刚入职的学生比较喜欢生搬硬套各种模式,以为这就是最佳实践。
  •     翻过,感觉每个方法都会,但是要能灵活运用。工作后重构感觉就像在玩橡皮泥,能把代码捏来捏去各种花式洗牌。
  •     里面的术语实在太多,其实好多在工作中都做了,只是不系统,很多书中提到的可控制且高效率的方式进行重构的原则,现在的IDE都已经做了很好,一个快捷键就OK,但是不读这本书,只能是知其然不知其所以然,翻过几遍也忘的差不多了,现在偶尔翻翻 GOF4 的书,原来觉得不太好,现在感觉还不错
  •     堪称经典的一本书。挺喜欢的。例子很多。很细。反应现实软件开发存在的问题与如何重构。
  •     最近在接触一个很老的系统,老板一直希望将代码处理的更完善,想到重构系统,可是又没有这方面的经验,网上查了下找到这本书,非常不错的书,值得一读,在重构中可以让一个程序员学到更多的知识,强烈推荐!
  •     这是一本关于重构的很经典的书,不可不读。
  •     个人很喜欢这本书,不枯燥,也很有启发。虽然在实际运用中还没看到特别大的效果,但是感觉很好。
  •     很好,一直放桌上,有时间就翻翻,作者对重构简直是无以复加了
  •     思想和范例很有参考价值
  •     配合Clean Code能让代码上升一个档次
  •     我能写出更优雅的代码了
  •     虽然着重点是代码重构,不过对于新手也是一本好书,告诉你怎样的代码是坏代码,怎么写才是好代码
  •     还用说什么么。。。用起来!!!
  •     重构的经典
  •     这本书就不用多说了, Martin Fowler的经典之作,虽然是用c++的来演说的,但是对于面向对象,以及架构的设计阐述得很好,应该是每个立志成为优秀程序员架构师的必备书籍。
    感觉书中作者对于程序的风格、设计要求几乎已经到了偏执的程度,他对代码的整理不像是一种技术,更像是一种艺术,那种对代码的审视角度更多地像是从一种工程美学去看,拒绝任何一点瑕疵、缺憾、笨拙、丑陋、bad smell,要求百分百的优雅、精致、完美。这不正像一个艺术家对自己作品至善至美的要求吗?而且他所列出的技术上的bad smell恰恰也是我平时看上去感觉别扭、丑陋、笨拙的地方,这种工程与美学、技术与艺术的相通,也许就是事物同一性的一种体现吧?
  •     M
  •     早就接触到了这本书,以前都是随便看看。没认为他有多重要。 看完设计模式,觉得,自己就掌握了一切,最后发觉,自己越来越迷茫。 大的框架和原理是比较明白。 但是小细节,就是不断的重构。自己真的力不从心,无从下手。 再回头看这本书,感觉不错。
  •     重构:改善既有代码的设计(软件开发的不朽经典) 经典书籍
  •     计算机科学 软件工程
  •     重构这本书真的是不朽经典,估计成书于2000年以前,到现在还流行,足见经典;clr via C#,深入讲解,专业性太强了
  •     刚收到书,摸起来纸张不错,就是每页的文字比较少啊,既然是经典就向经典学习,计划在两个星期看完!手头上正好有个需要重构的项目,边看边实践!
  •     有些东西的确知道,但是缺少理论总结,这本书总结的挺好,才看到一半,已经觉得不错了
  •     一个程序员可以不学开发语言,但不能不学习重构。
  •     能看到重构是怎么回事,都是有哪些方法,每个方法是具体如何实现的,遇到问题的时候能想起这些方法,或者嗅到坏代码的味道,就明白了
  •     本书介绍了重构的一些知识,对我非常有帮助,对于一些已有代码的改善起到了巨大的作用
  •     很多地方都用的到,例如经典的测试驱动开发都用重构。在eclipse插件中有部分集成的功能
  •     当时真的被它的书名、名头、书的厚度吓坏了,其实内容丰富有趣、通俗易懂。每个小节短小精悍、只讲一个知识点,前后关联不大,可以从自己感兴趣的任何一章任何一节开始读。只要开始看,这么经典的书也很快能看完。唯一的缺点是书比较老了,出版的时候java1.2刚发布,但是不影响。
  •     买这本书的时候是冲着它的顶顶大名去的,看完之后果然受益匪浅,打算在需要的时候再读几遍。虽然现在的项目代码有些“坏味道”,但是现在不是重构的良好时机。这也是遵循书中所提到的“两顶帽子”原则。如果没有把握去重构的话,就不要重构。但是总体来说,这本书还是让我开拓了眼界,增长了见识。唯一不足的地方就是翻译,有点中国式的教条~~
  •     大师的作品,很不错的代码重构类书籍
  •     主要是讲重构和模式一类的,新手可能看不懂,不过多看几遍就好了
  •     翻译的不错。索引重新按照中文编排,比较有心。
  •     重构是手段,合适的设计模式才是目的。
  •     教你如何使用小型手术刀。
  •     书里面描述了多种程序的坏味道,提供了多种的重构方案。
  •     一天时间,详细看了1·~5章,其他重构细节浏览了一遍,没到五星的那种冲击。 1. 理解CH3中“坏味道”为什么坏是关键,告诉我们什么地方该重改 2. 具体工作了,发现了“坏味道”,再查询CH6~CH14对应的重构方法 3. 重构最基本原则“小步前进,频繁测试”
  •     Java开发必读书籍,很多原则现在的ide也有很好的支持
  •     奥利奥老师推荐的!
  •     确实是不朽经典,我们很多同事都购买了,作为参考书来进行重构软件和学习讨论。
  •     软件开发的不朽经典+设计模式,学到很多东西
  •     对于想学习重构的学习者来说是一本必不可少的书,看完后,编写代码规范很多,很喜欢!
  •     有点旧了
  •     还没能把知识运用于项目中
  •     适合初学者
  •     代码重构,编码人员必备
  •     重构--做过的程序员才是好程序员
    重构--读过的经理才能做好经理
    重构--享受过的软件才是好软件
  •     经典就是经典,很适合放到身边,有重构要求时就翻一翻。
  •     重构,现在写软件一定要注意重构,还要结合设计模式来学习
  •     计算机科学就是这样一门科学:它相信所有问题都可以通过增加一个间接层来解决。读完之后简直就是魔术!与《设计模式》成为面向对象的姐妹书:设计模式是目标,而重构就是通向设计模式之路。面向对象编程本质就是建模完全可以用类图和UML表示。重构的目的是设计模式
  •     当时有在做项目维护与优化,这本书非常值得一看。
  •     对于我这种强迫症人格的人来说,这本书第5章往后都是废话
  •     重构和设计模式是java的两本圣经,ITeye创始人范凯强力推荐此书。这本书对你的影响是潜移默化的,经常读一读对自己很有好处
  •     在当下的软件开发环境中,经常会使用他人的成果,而这些代码也许能用,但未必合乎规范,容易修改复用。这样的情况下,重构的技术手段,就成了救命稻草。重构反对推倒重来,提倡渐进改变。因为代码不是食物,怎么会腐败呢?只要你有技术能力,随便改。
  •     比较老的书了
  •     重构是软件开发迭代过程中不可或缺的一步,很赞的一本书
  •     编程经典,持续改进
  •     这本书是重构中的经典篇章
  •     读完此书,你会觉得重构原来普通程序员也可以!
  •     重构在大型项目中越来越重要,即使是普通的程序员也应该随时保持自己代码的整洁度,维持高质量的代码并不是一件简单的事,需要对OO思想的深刻理解和清晰的结构划分
  •     非常好的一本书,其实是原2003年的再版 区别不大,此版本改为侯杰一人翻译,此书对重构的思想由浅入深
  •     实践结合最容易去除bad smell哦
  •     讲述重构的具体操作,有助于在开发阶段减少自己代码中的bad smell
  •     好书,立足于细节,不光是重构,平时写新代码时也可以参考
  •     作为一名程序员,以前很少在代码的重构上花费很大的力气,但是这也导致自己总是感觉提升很慢却找不到原因,读了这本书之后才有一种茅塞顿开的感觉,才真正的找到问题的根源,在这里作者循序渐进的讲解,让我如梦初醒,我自己也感觉到作为一名程序员自己的路还很长,自己要学的还很多。
  •     书不错,以前看了设计模式,现在来看重构,感觉少了点什么,比如依赖注入,我现在还没在书里面找到这个设计模式应该怎么使用。
  •     我现在做的个项目是将原有的系统进行升级,因为需要在原有的系统上进行修改,这本书给了一些重构的思想和方法。比如说,当现有的程序结构不再适合现有的功能,我们就来重构现有的结果,让他适应新的需求,虽然比较麻烦,但是这好处很多,一是方便理解,二是好的结构提供了更好的扩展。
  •     其实,我现在是做C++,但是买了这本java的重构的书,可见他有多么经典。。。
  •     如果你已经看过《编写可读代码的艺术》的话,那这本书最佳的读法应该就是:只看前四章,剩下的内容,快速翻一遍即可。 书里很详细的介绍了各种重构的手法,但,确实没有太多必要,还是《可读艺术》更实用一些
  •       首先,你应该关注的是提高书写干净,毫不含糊的,可维护代码的能力。 下列书籍应该大大有助于您:
      
      测试驱动开发(肯特·贝克)
      重构(马丁·福勒)
      实现模式(肯特·贝克)
      代码大全:第二版(史蒂夫·麦康奈尔)
      Working Effectively With Legacy Code(Michael Feathers)
      Clean Code (Robert C. Martin)
      上述的读书顺序可能使有些人感到惊讶,但我敢打赌,这是最有效的阅读顺序。
  •     重构,从事代码工作的人,在经历编码的初阶迈向下一境界的一道坎~ 希望能够继续在这条路上走下去,走的更好,走出精彩!
  •     特别实用的一本重构方面的书
  •     不用怕,重构就好了。
  •     导师推荐的书,当时看了觉得受用不大,或者说,没有那么大,但是现在发现,真的是一部好书,写好代码的必备
  •     虽然以我现有的编程水平,并不能完全理解里面一半以上的内容,但它仍然是一本通俗易懂的好书。
  •     早上看完了《重构:改善既有代码的设计》一书。有些失望。或许是这本书面世太久,里面的方法到如今已经成了常识。但总的来说是一本可以快速浏览一遍的书,至少会坚定自己的一个信心:当代码经过自己的手时,它应该变得比之前更好。不要害怕重构,因为重构是一步一步来的,确保步子不太大,确保每一小步的正确性。然后一遍一遍来。花在重构上的时间,从更长的眼光来看,终将会为我们带来更高的开发效率,节省更多的时间。
  •     代码整理: 重构好书籍
  •     我认为的阅读顺序应该是:Java编程思想-Junit(测试)-UML-设计模式-重构-重构与模式~
  •     有没有码农和我一样很久才发现书中的delegation其实是composition…
  •     重构应融入日常Coding中。
  •     重构是每个程序员肯定会用到的。
  •     很好的一本书,感觉随着开发经验越多,读起来理解会更深刻,往往会发现产生了共鸣,自己很多地方也是这么做的
  •     “一种甚嚣尘上的观点认为只要掌握重构的思想就足够了,没必要记住那些详细琐碎的重构手法。”
  •     以前读
  •     借阅,无笔记
  •     软件开发架构的方法论。
  •     熊节翻译的一般般
  •     真正理解重构的意义就从它开始了
  •     稍微看了一些,这本书对于程序员来说很值得看,里面讲了很多代码重构的一些建议,对于提升代码的质量还是有很大帮助的!
  •     读的是kindle版,但编程这东西:纸上得来终觉浅,绝知此事要躬行。
  •     看完了,对自己的代码还是有很大改善,明年还是要在阅读一遍
  •     nice
  •     重构,改善代码的好书
  •     这本书让我学习了如何重构,现在的项目有大量冗余的代码,这本书给我帮助很大。非常赞的一本书
  •     这本书非常的nice,虽然都是简单的样例,但是每一种都能够反射出内在的含义,而且很好的体现了设计模式,工厂、策略、状态比比皆是,设计准则也体现的玲离尽致。
  •     a book training you how to write highly maintainable and robust code.
  •     对重构的描述很全很详细,大量的重构方法值得学习。。
  •     重构,是为了开发不至于陷入无法归还的泥潭,刮除轮胎上的淤泥,保持方向,才能越发接近目标。
  •     直观
  •     很不错,对学习重构有很大帮助
  •     指导重构 可以反思设计
  •     重构的方法写的很透彻
  •     程序员必看
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024