如何学习

  1. 随时挑一个目标
  2. 没把握就停下来
  3. 学习原路返回
  4. 二重奏,和别人一起重构

要点列表

  • 第7页如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便
地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。


  • 第8页重构前,先检查自己是否有一套可靠的测试机制。这些测试必须有自我
检验能力。

  • 
第13页 重构技术就是以微小的步伐修改程序。如果你犯下错误,很容易便可发
现它。

  • 
第15页 任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解
的代码,才是优秀的程序员。


  • 第53页 重构(名词)∶对软件内部结构的一种调整,目的是在不改变软件可观察
行为的前提下,提高其可理解性,降低其修改成本。

  • 
第54页 重构(动词);使用一系列重构手法,在不改变软件可观察行为的前提下,
调整其结构。


  • 第58页事不过三,三则重构。


  • 第65页 不要过早发布接口。请修改你的代码所有权政策,使重构更顺畅。

  • 第88页 当你感觉需要撰写注释时,请先尝试重构,试着让所有注释都变得多余。

  • 第90页 确保所有测试都完全自动化,让它们检查自己的测试结果。

  • 
第90页一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时
间。

  • 第94页 频繁地运行测试。每次编译请把测试也考虑进去—每天至少执行每个测
试一次。

  • 
第97页 每当你收到bug报告,请先写一个单元测试来暴露这只bug。

  • 第98页 编写未臻完善的测试并实际运行,好过对完美测试的无尽等待。

  • 第99页 考虑可能出错的边界条件,把测试火力集中在那儿。


  • 第100页 当事情被大家认为应该会出错时,别忘了检查是否抛出了预期的异常。

  • 第101页 不要因为测试无法捕捉所有bug就不写测试,因为测试的确可以捕捉到大
多数bug。