重构

[美]马丁•福勒(Martin Fowler)

出版时间

2015-08-01

ISBN

9787115369093

评分

★★★★★
书籍介绍

本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

作者介绍

Martin Fowler,世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他的多部著作《分析模式》、《UML精粹》和《企业应用架构模式》等都已经成为脍炙人口的经典。

译者介绍

熊节,ThoughtWorks中国公司的高级咨询师、架构师和项目经理,在大型企业应用及互联网应用的架构和管理方面拥有丰富经验。作为敏捷方法学顾问和重构专家,他拥有在各种技术平台、编程语言、软件形态的项目中实施重构的丰富经验,并曾主持极具挑战性的超大规模电信软件系列重构工作。

AI导读
核心看点
  • 经典著作20年后更新版,示例语言改为JavaScript
  • 详解60多种重构手法,提供经过验证的代码变换技术
  • 强调小步修改与测试结合,降低开发风险并提升代码质量
适合谁读
  • 希望提升代码质量与可维护性的软件开发人员
  • 需要管理技术债务与项目进度的软件项目管理人员
  • 计算机及相关专业的高校师生与编程初学者
读前提醒
  • 务必养成每次修改后立即运行测试的习惯,确保安全性
  • 结合IDE自动提示功能,在实际工程中逐步实践重构
  • 新手需积累一定代码经验,方能深刻理解重构的必要性
读者共识
  • 程序员必读经典,有助于培养良好的代码感与设计思维
  • 第二版内容更丰富清晰,全彩精装版阅读体验更佳
  • 重构意识虽重要,但实际工作中常受限于时间与需求变更

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "养成重构后即运行测试的习惯非常重要。犯错误是很容易的——至少我知道我是很容易犯错的。做完一次修改就运行测试,这样在我真的犯了错时,只需要考虑一个很小的改动范围,这使得查错与修复问题易如反掌。这就是重构过程的精髓所在:小步修改,每次修改后就运行测试。如果我改动了太多东西,犯错时就可能陷入麻烦的调试,并为此耗费大把时间。小步修改,以及它带来的频繁反馈,正是防止混乱的关键。"
  • "to make the software easier to understand and modify."
  • "refactoring does not change the observable behavior of the software Why Should You Refactor? Refactoring Improves the Design of Software Refactoring Makes Software Easier to Understand Refactoring Helps You Find Bugs Refactoring Helps You Program Faster 即使在开发过程中,当你发现重复或相似的代码时,也应该立刻重构;当变化发生时,如果该变化影响不"
  • "复制一遍代码似乎不算太难,但却给未来留下各种隐患:一计费逻辑发生变化,我就得同时修改两个地方,以保证它们逻辑相同。如果你编写的是一个永不需要修改的程序,这样剪剪贴贴就还好。但如果程序要保存很长时间,那么重复的逻辑就会造成潜在的威胁。"
  • "每当我要进行重构的时候,第一个步骤永远相同:我得确保即将修改的代码拥有一组可靠的测试。这些测试必不可少,因为尽管遵重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错。程序越大,我的修改不小心破坏其他代码的可能性就越大——在数字时代,软件的名字就是脆弱。"
  • "很多时候那个未来的开发者就是我自己。此时重构就显得尤其重要了。我是一个很懒惰的程序员,我的懒惰表现形式之一就是:总是记不住自己写过的代码。事实上,对于任何能够立刻查阅的东西,我都故意不去记它,因为我怕把自己的脑袋塞爆。我总是尽量把该记住的东西写进代码里,这样我就不必去记它了。这么一来,下班后我还可以喝两杯Maudite啤酒,不必太担心它杀光我的脑细胞。"
  • "作为程序员,我们的职责就是设计出结构一致、抽象合宜的程序,而程序抽象能力的源泉正是来自函数。与其他抽象机制的设计一样,我们并非总能平衡好抽象的边界。随着系统能力发生演进(通常只要是有用的系统,功能都会演进),原先设定的抽象边界总会悄无声息地发生偏移。对于函数来说,这样的边界偏移意味着曾经视为一个整体、一个单元的行为,如今可能已经分化出两个甚至是多个不同的关注点。"
  • "任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。"
作者简介
作者 | Martin Fowler 世界软件开发大师,ThoughtWorks的首席科学家。他是一位作家、演说者、咨询师和泛软件开发领域的意见领袖。他致力于改善企业级的软件设计,对优秀的设计以及支撑优秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有卓越贡献。著有《重构》《分析模式》《领域特定语言》等经典著作。 译者 | 熊节 在IT行业已经打拼了18年,在金融、零售、政府、电信、制造业等行业的信息化建设方面有着丰富经验,是中国IT业敏捷浪潮的领军人物。熊节拥有利物浦大学MBA学位。 译者 | 林从羽 ThoughtWorks软件开发工程师,曾服务于国内外多家大型企业,致力于为团队更快更好地交付可工作的软件。拥抱敏捷精神,TDD爱好者,纯键盘工作者。
目录
第1章 重构,第一个案例 1
1.1 起点 1
1.2 重构的第一步 7
1.3 分解并重组statement() 8
1.4 运用多态取代与价格相关的条件逻辑 34

显示全部
用户评论
很好的一本书,感觉随着开发经验越多,读起来理解会更深刻,往往会发现产生了共鸣,自己很多地方也是这么做的
简单过了一下,具体手法没怎么看。加深了对重构这个技术的认识,想进行更多的尝试。
程序员保命神书!
其实很多手法现在用idea + sonar就可以了
关于重构,很赞成Kent Beck在结尾写的话:这有点像在悬崖峭壁上的小径行走,只要有光,你就可以前进,虽然谨慎却仍然自信。但是,一旦太阳下山,你就应该停止前进;夜晚你应该睡觉,并且相信明天早晨太阳仍旧升起。
很适合工作两三年的同学阅读。
常读常新
“只要有光,你就可以前进,虽然谨慎却仍然自信。但是,一旦太阳下山,你就应该停止前进;夜晚你应该睡觉,并且相信明天早晨太阳仍然升起。”技术类书籍写到这种高度,佩服佩服
下载
收藏