1. 如果你发现自己需要为程序添加一个特性, 而代码结构使你无法很方便地达到目的, 那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。
2. 重构前,先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验能力。
3. 重构技术就是以微小的步伐修改程序。 如果你犯下错误, 很容易便可发现它。
4. 任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。
5. 重构(名词):对软件内部结构的一种调整, 目的是在不改变软件可观察行为的前提下, 提高其可理解性,降低其修改成本。
6. 重构(动词):使用一系列手法,在不改变软件可观察行为的前提下,调整其结构。
7. 事不过三,三则重构。
8. 不要过早发布接口。 请修改你的代码所有权政策,使重构更顺畅。
9. 当你感觉需要撰写注释时,先尝试重构,试着让所有注释都变得多余。
10. 确保所有测试都是完全自动化,让它们检查自己的测试结果。
11. 一套测试就是一个强大的bug侦测器, 能够大大缩减查找bug所需要的时间。
12. 频繁地进行测试。 每次编译请把测试也都考虑进去——每天至少执行每个测试一次。
13. 每当你收到bug报告, 请先写一个单元测试来暴露这只bug。
14. 编写未臻完善的测试并实际运行,好过对完美测试的无尽等待。
15. 考虑可能出错的边界条件,把测试火力集中在那儿。
16. 当事情被大家认为应该会出错时, 别忘了检查是否抛出了预期的异常。
17. 不要因为测试无法捕捉所有bug就不写测试, 因为测试的确可以捕捉到大多数bug。
18. 任何有返回值的函数, 都不应该有看得到的副作用。