重构

[美] Martin Fowler

出版时间

2008-01-31

ISBN

9787115168047

评分

★★★★★

标签

计算机

书籍介绍

本书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。

AI导读
核心看点
  • 重构改善既有代码的设计与可理解性
  • 识别代码坏味并运用多态优化
  • 小步修改并频繁测试确保安全
适合谁读
  • 有经验需提升代码质量的程序员
  • 从事软件项目管理与设计的开发者
  • 希望理解敏捷重构理念的新手
读前提醒
  • 先掌握可靠的测试机制再开始重构
  • 理解重构不改变外部行为的关键原则
  • 从识别常见坏味入手逐步实践小步修改
读者共识
  • 本书是程序员必读的经典之作
  • 帮助建立重构理念并优化设计思维
  • 技巧性强但需结合实践灵活应用

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

精彩摘录
  • "养成重构后即运行测试的习惯非常重要。犯错误是很容易的——至少我知道我是很容易犯错的。做完一次修改就运行测试,这样在我真的犯了错时,只需要考虑一个很小的改动范围,这使得查错与修复问题易如反掌。这就是重构过程的精髓所在:小步修改,每次修改后就运行测试。如果我改动了太多东西,犯错时就可能陷入麻烦的调试,并为此耗费大把时间。小步修改,以及它带来的频繁反馈,正是防止混乱的关键。"
  • "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啤酒,不必太担心它杀光我的脑细胞。"
  • "作为程序员,我们的职责就是设计出结构一致、抽象合宜的程序,而程序抽象能力的源泉正是来自函数。与其他抽象机制的设计一样,我们并非总能平衡好抽象的边界。随着系统能力发生演进(通常只要是有用的系统,功能都会演进),原先设定的抽象边界总会悄无声息地发生偏移。对于函数来说,这样的边界偏移意味着曾经视为一个整体、一个单元的行为,如今可能已经分化出两个甚至是多个不同的关注点。"
  • "任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。"
目录
Chapter 1:Refactoring,a First Example 重构,第一个例子
The Starting Point 起点
The First Step in Refactoring 重构第一步
Decomposing and Redistributing the Statement Method 分解并重组slalemenl方法
Replacing the Conditional Logic on Price Code with Polymorphism 用多态代替价格条件逻辑代码

显示全部
用户评论
讲述重构的经典著作
大部分的做法在阅读书之前都有使用过,看这本书更重要的是系统性和总结性。书本整体价值还是很高的,what when where why how都介绍得很清楚。我觉得可能再加入一些整体系统的重构文案会更好,大部分case还是比较散,即使是书中说到的大型重构也不是太完整。当然重构都是小步快跑,所以这一点也不是特别致命。
详细的解释和案例,看到了熟悉的UML图,行文构造有些像四人帮写的《设计模式》,也有motivation,mechanic, example等等。另,英文注释版棒极了:给看全英文献的人最好的曙光就是在旁边给出某些“生词”的注释了。
Martin是我最中意公司TW的首席科学家,读完这本书,才发现以前开发中所遇到的诸多问题应该如何采取更合理的方式去解决。书中除了大量的重构方法外,还包含了很多设计模式相关的东西,看的人爽之又爽。软件开发必备的参考书!!
刚刚毕业那会儿,看过一遍,但是貌似有很多没看懂,至今还看到当年标的一些注解和疑惑,挺好玩的,O(∩_∩)O哈哈~,原来当年我也是这么蠢萌萌的。这次再看就完全不一样的感觉,几年的开发和维护系统的经验,让我更理解这本书的意义,产生了很多共鸣,书中提到的每一个模式,我几乎都经历过,只是没有这么好的总结能力,当然个中模式有差异和相似,针对的不同的情况选择相似中的某一个还是有收获的。谢谢Martin Fowler,谢谢注释者。 建议从业者塌下心读读这本书,你一定会有很多收获的。
重构属于软件工程里面的,还有测试也是,今天才知道。这本书写的很好,英文评注版的原汁原味点。重构适用于新手,会帮助养成很好的编写习惯:定义名称,定义变量范围,OOP.不怎么包含技术知识点,更多的是方法论.
不用多说的经典
收藏