内容简介 · · · · · ·
随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以step by step的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用于任何面向对象编程语言。
本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明... (展开全部) 随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以step by step的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用于任何面向对象编程语言。
本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明,重构是防止软件没落的可行方式。
本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细目录,给出了重构的工作原理,并以step by step的形式给出了应用每一种重构的指南。这些示例都是用Java语言写成的,但其中的思想却可以运用到任何面对象的编程语言中。
第一作者Martin Fowler,除了是对象技术方面的专家外,还是UML和模式方面的专家。他撰写的Analysis Patterns、UML Distilled、Patterns of Enterprise Application Architecture和Planning Extreme Programming几本书也广受赞誉,在亚马逊上的评价也极高(最低星级为4星),从这些也足可见其在业内的显赫地位。相信这本书以影印版的形式在国内推出,巨匠巨著,原汁原味,无疑是给国内广大软件开发人员提供了一盏前进路上的明灯。
读者对象:软件开发人员,项目管理人员,高等院校计算机及相关专业师生,其他相关人员
本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明... (展开全部) 随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以step by step的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用于任何面向对象编程语言。
本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明,重构是防止软件没落的可行方式。
本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细目录,给出了重构的工作原理,并以step by step的形式给出了应用每一种重构的指南。这些示例都是用Java语言写成的,但其中的思想却可以运用到任何面对象的编程语言中。
第一作者Martin Fowler,除了是对象技术方面的专家外,还是UML和模式方面的专家。他撰写的Analysis Patterns、UML Distilled、Patterns of Enterprise Application Architecture和Planning Extreme Programming几本书也广受赞誉,在亚马逊上的评价也极高(最低星级为4星),从这些也足可见其在业内的显赫地位。相信这本书以影印版的形式在国内推出,巨匠巨著,原汁原味,无疑是给国内广大软件开发人员提供了一盏前进路上的明灯。
读者对象:软件开发人员,项目管理人员,高等院校计算机及相关专业师生,其他相关人员
豆瓣成员常用的标签(共66个) · · · · · ·
喜欢读"重构<改善既有代码的设计>(英文影印版)"的人也喜欢 · · · · · ·
按有用程度 按页码先后 最新笔记
-
第九章
我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,.. (更多)我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,经过重构后,程序便一目了然了... (收起)2012-01-31 09:51:57 回应
-
8.3 将值对象改为引用对象
8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (更多)8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (收起)2011-12-28 17:31:04 回应
-
第142页
越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们.. (更多)越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们阅读的困难度。而且工作中也经常出现重复代码,这些都需要重构。 刚看到搬移函数,实在是大有感触,前阵子写程序出现一些复杂的关联查询,我总是在考虑应当将其放到哪个对象所对应的service中合适,有的时候这些查询也可能在控制层被多个controller调用,存放位置不当,每次引用的dao就会很多,可能这些对程序的影响并不是很大,但是每次要调用这个函数时查找起来却很复杂,如果在书写这个函数之前我们能好好考虑下它所实现的功能,究竟是与哪个对象关联最大,然后就将其存放进哪个对象,这样是不是对我们以后对函数的引用要清晰很多? (收起)2011-12-27 11:14:05 回应
-
第142页
越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们.. (更多)越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们阅读的困难度。而且工作中也经常出现重复代码,这些都需要重构。 刚看到搬移函数,实在是大有感触,前阵子写程序出现一些复杂的关联查询,我总是在考虑应当将其放到哪个对象所对应的service中合适,有的时候这些查询也可能在控制层被多个controller调用,存放位置不当,每次引用的dao就会很多,可能这些对程序的影响并不是很大,但是每次要调用这个函数时查找起来却很复杂,如果在书写这个函数之前我们能好好考虑下它所实现的功能,究竟是与哪个对象关联最大,然后就将其存放进哪个对象,这样是不是对我们以后对函数的引用要清晰很多? (收起)2011-12-27 11:14:05 回应
-
第九章
我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,.. (更多)我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,经过重构后,程序便一目了然了... (收起)2012-01-31 09:51:57 回应
-
8.3 将值对象改为引用对象
8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (更多)8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (收起)2011-12-28 17:31:04 回应
-
第九章
我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,.. (更多)我应该在阅读设计模式之前读这本书的,因为设计模式很多都在本书中得到了体现,或者说,设计模式是在综合了本书的很多重构方法中得出的,书中反复利用了“多态”的重构方法,是面向对象思想的完美体现。第九章的很多例子,我平时工作中遇到的都很多,比如9.4 remove control flag,9.5 replace nested conditional with guard clauses等,日常开发中就经常犯有这种问题,虽然并不影响功能,但是对于后来阅读时的确很不便,经过重构后,程序便一目了然了... (收起)2012-01-31 09:51:57 回应
-
8.3 将值对象改为引用对象
8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (更多)8.3和8.4章谈论了引用对象和值对象之间的转换和重构,老实说,看的我有点摸不着头脑,以前接触到的都是java中的传递全部都是值传递,不存在引用传递,但是这里又提出“引用”的概念,让我又想起了c中的指针。 按照我的理解,似乎只有在单例模型情况下才有可能创建出引用对象,否则,java中创建的一般都是值对象... 不知道理解的是否正确? (收起)2011-12-28 17:31:04 回应
-
第142页
越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们.. (更多)越读下去,越觉得这本书写的很棒,简单易懂,例子全部都是抽取的代码的一部分,这样针对性更强,比起有些书动辄好几页的代码,读起来舒服多了。 可能有的人觉得这本书不太实用,太过强调代码书写的完美性和易读性,但是我开发几年看来,这本书实在是大有裨益,工作中经常遇到接手其他人代码困难的缘故,一是因为每个人的代码书写风格不同,二是缺少注释,三则是代码书写的复杂化,太过长篇的函数体,增加了我们阅读的困难度。而且工作中也经常出现重复代码,这些都需要重构。 刚看到搬移函数,实在是大有感触,前阵子写程序出现一些复杂的关联查询,我总是在考虑应当将其放到哪个对象所对应的service中合适,有的时候这些查询也可能在控制层被多个controller调用,存放位置不当,每次引用的dao就会很多,可能这些对程序的影响并不是很大,但是每次要调用这个函数时查找起来却很复杂,如果在书写这个函数之前我们能好好考虑下它所实现的功能,究竟是与哪个对象关联最大,然后就将其存放进哪个对象,这样是不是对我们以后对函数的引用要清晰很多? (收起)2011-12-27 11:14:05 回应
书评 · · · · · · (共69条) 我来评论这本书
热门评论 最新评论
软件工程的江湖
-
- 云水(故知止其所不知,至矣) 纵览武侠江湖,制胜法门不外两项,内功和外功。二者得一可天下去得,但最终皆入内外兼修之境 倚天是自内而外,先修内功九阳真经,然后以此为基础,加上太极拳和太极剑,最终成就天下第一高手 笑傲是自外而内,先学独孤九剑,后学吸星大法,最后学易筋经。 神雕也不外如是,玉女心经算是外功,内功则是独孤求败之法门。 只修内不修外...... (2回应)2009-11-30 9/10有用来自 人民邮电出版社2008版
如果想了解设计模式,请一定要读这本书
-
- gouerli 断断续续的读了几个月,终于读完了,文中的内容虽然有些零散,甚至觉得要求过于完美,但是对于理解设计模式还是有很大的帮助,基本看完这本书,你就会明白设计模式最初是如何一步步的设计出来,其实就是重构的最终体现。虽然目前工作中仍然对于重构使用不多,公司也对这项事情不够重视,但我相信,在我以后的开发设计中,一定会......2012-02-01
不了解代码坏味,还写程序?写你妹。
-
- 天下无双 《重构》的意义不仅仅在于“改善既有代码的设计”,也指导了我们如何从零开始构建代码的时候避免不良的代码风格。 在时间紧任务重的时候,我通常会采用快糙猛的设计,然后在交工之后进行重构,这部分重构工作可能是吃力不讨好的,加班没有钱的,但是如果你去做,你就会知道他可能会在将来拯救了你的一个周末。 快糙猛的设计并不代......2012-01-30 来自 人民邮电出版社2010版
浅尝辄止,取其精华
-
- MrROY 这本书的价值还是很厚重的. 作者对代码的设计追求非常“过分”,这让我怀疑有些东西是否导致过度设计了。经过一段时间的思考和消化,我觉得作者的是希望把自己遇到的所以设计问题都浓缩在短短的代码中来,把每一个瑕疵都尽量去掉。 但是在正式的项目中,如果我们这样“吹毛求疵”的话,那么项目的周期很容易失控,所以我对本书的建议......2012-01-06 1/2有用来自 人民邮电出版社2010版
C语言的重构,没有发挥出更大的威力。
-
- 弹头2012(开心,快乐,每一天) 2005年读过这本书,因为一直用C语言开发,感觉对于函数和模块级别,可用的重构方法非常有限,但还是对有了这样本书感到庆幸,还专门总结了一篇《C语言下的重构方法》,现在来看,C语言的束缚太多了,就不适合做业务软件。这本书因为作为《代码大全》的培训辅助用书,后来又读了一遍,并且做了很多重构演练,但是总觉得没有发挥出更大......2011-12-07 来自 中国电力2003版
看过一遍就可以放一边的书
-
- 文章 的确如译者所说这书看过一遍就可以放在一边了,而不是做为工具书常常翻阅。 对来有多年经验的开发人员来说,重构应该在开发过程中不知不觉就应用的和掌握的。 这本书的价值在于它把大部分常用的重构手法都进行条款化,并明确指出了重构的工作要一小步一小步进行的,每一小步的工作都是为了保证原有程序的正确性。明确指出重构的工作应该在......2011-11-23 来自 人民邮电出版社2010版
"重构<改善既有代码的设计>(英文影印版)"的论坛 · · · · · ·
| 经典图书《重构:改善既有代码的设计》图灵再版出版倒... | 来自冬天里的阳光 | 2010-01-29 |
这本书的其他版本 · · · · · · ( 全部6 )
- 中国电力版 2003-8-1 / 1972人读过 / 有售
- Addison-Wesley Professional版 1999-7-8 / 95人读过 / 有售
- 人民邮电出版社版 2010 / 201人读过 / 有售
- 人民邮电出版社版 2008-2 / 47人读过
以下豆列推荐 · · · · · · (全部)
- 站在巨人的肩膀上(一)基本读物 (7655cjc)
- IT技术 (Divine)
- 学习资料 (风子)
- 好陡峭的学习曲线(对我来说) (compactset)
- rIPPER 的IT书架 (rIPPER色影师)
谁读这本书?
喜欢这本书的人常去的小组 · · · · · ·

- RubyOnRails (739)

- china-pub网上书店 (778)

- Ruby (2861)

- 学习发布会 (856)

- InfoQ中文站 (992)

- LISP (2011)

- Python编程 (19004)

- Vim (6198)
喜欢这本书的人关注的活动 · · · · · ·
订阅关于重构<改善既有代码的设计>(英文影印版)的评论:
feed: rss 2.0











