重构

Martin Fowler

出版时间

2003-08-01

ISBN

9787508315546

评分

★★★★★
书籍介绍
Martin Fowler和《重构:改善既有代码的设计》(中文版)另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。《重构:改善既有代码的设计》(中文版)解释重构的原理(principles)和最佳实践方式(best practices),并指出何时何地你应该开始挖掘你的代码以求改善。《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键。点击进入该书更多详细信息。
AI导读
核心看点
  • 系统阐述重构原理与最佳实践,提供完整重构名录。
  • 强调小步修改与频繁测试,确保代码行为不变且安全。
  • 旨在改善代码设计,提升可读性与可维护性,降低修改成本。
适合谁读
  • 具备一定编程经验,希望提升代码质量的软件开发者。
  • 从事敏捷开发,需要频繁调整系统内部结构的工程师。
  • 希望建立重构意识,摆脱混乱代码泥潭的程序员。
读前提醒
  • 书中步骤描述详尽,建议结合自动化工具阅读,避免繁琐。
  • 新手可能难以理解,建议先积累代码量再读,注重理念。
  • 知易行难,不要死记硬背手法,重在培养重构的思维习惯。
读者共识
  • 软件工程领域的经典之作,被誉为程序员的必读指南。
  • 重构不仅是技术,更是改善设计、发现Bug的重要手段。
  • 虽部分手法显琐碎,但建立的重构意识对职业生涯极有益。

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

精彩摘录
  • "养成重构后即运行测试的习惯非常重要。犯错误是很容易的——至少我知道我是很容易犯错的。做完一次修改就运行测试,这样在我真的犯了错时,只需要考虑一个很小的改动范围,这使得查错与修复问题易如反掌。这就是重构过程的精髓所在:小步修改,每次修改后就运行测试。如果我改动了太多东西,犯错时就可能陷入麻烦的调试,并为此耗费大把时间。小步修改,以及它带来的频繁反馈,正是防止混乱的关键。"
  • "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啤酒,不必太担心它杀光我的脑细胞。"
  • "作为程序员,我们的职责就是设计出结构一致、抽象合宜的程序,而程序抽象能力的源泉正是来自函数。与其他抽象机制的设计一样,我们并非总能平衡好抽象的边界。随着系统能力发生演进(通常只要是有用的系统,功能都会演进),原先设定的抽象边界总会悄无声息地发生偏移。对于函数来说,这样的边界偏移意味着曾经视为一个整体、一个单元的行为,如今可能已经分化出两个甚至是多个不同的关注点。"
  • "任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。"
用户评论
重构这本书在现在看来,技术指导意义大于实际意义,有助于建立重构的理念,敏捷开发中不可缺失的一环
我觉得这本书吧,技巧性十足,但实用性不够。为什么呢?因为他的解决方法是在建立在你知道问题出在哪里了,但往往我们的难点在于不知道问题具体在哪里
非常值得一读,对于重新审视现有代码有极大的帮助
重构的概念不止是软件
此书总结了不少代码的问题及重构的方法,对于设计与编程的见解相当正确,但难免流于俗套 - 大道理谁都懂,但知易行难永远是硬道理, 尤其其对于每种情况进行重构的极其繁冗的步骤描述,实在是相当的不高明, 本人认为这是本书的一个败笔, 但其后对于重构自动化工具的介绍则是黑暗中的一道阳光 - 我们需要这种工具。(目前来看Visual Studio的插件VA的重构功能最为好用,但却还是远远不够)
精辟,实用价值很高
到了一定经验才会思考的问题,怎么把功能看着正常的代码写的更简单易懂一些。 谢谢黄总的这次重构,自己难得的一课!以后看代码,会多想一下,怎么实现会思路更清晰。 标注了这么多年。终于翻完了第一遍!
很受用,前段时间遇到的一些困惑似乎都在里面找到了答案
程序员都要看看
侯捷的书,应该不错啊!出第二版了,可以翻第二版了。
下载
收藏