重构(一)
第一步 写测试
好的测试是重构的根本。
代码块越小,代码的功能就愈容易管理。
这本书写于 1999 年。
好的代码应该清楚表达出自己的功能。
函数应该放在它所使用的数据的所属对象内。
减少临时变量,它没啥意义,至于性能代价,你应该在一个地方统一去处理。为此还可以多写一些循环,就是循环里面的临时变量也抽出来。
抽离代码,把相关性的放一起。
重构的节奏:测试、小修改、测试、小修改……
重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
重构改进软件设计、重构使软件更容易理解、重构帮助找到 bug、重构提高编程速度。
我不是个伟大的程序员,我只是个有着优秀习惯的好程序员。
重构应该是随时随地进行。
你之所以重构,是因为你想做别的什么事,而重构可以帮助你把这些事做好。
事不过三,三则重构。
结对编程重构,代码复审重构,一对一。
容易阅读、所有逻辑都只在唯一地点指定、新的改动不会危机现有行为、尽可能简单表达条件语句。
重写代码比重构简单的时候可以考虑就重写了。现有代码各种 bug,那就更可以重写了。
重构可以提高生产力的。
事先设计足够合理的方案,然后慢慢重构。
坏味道:duplicated code 1. 同一个类的两个函数含有相同的表达式。2. 两个互为兄弟的子类内含相同表达式。
说明写进一个独立函数种,以用途命名。关键在于函数做什么,如何做。
讲总是一起变化的东西放在一块儿。
当你觉得需要撰写注释时,请先尝试重构,试着让所有注释都变得多余。注释可以用来记述将来的打算,标记你并无十足的把握,还可以记录为什么做某事。
测试是可以提高开发效率的。
一套测试就是一个强大的 bug 侦测器,能够大大缩减查找 bug 所需要的时间。
用单元测试来暴露 bug。
测试你最担心出错的部分,这样你就能从测试工作中得到最大的利益。
编写未臻完善的测试并实际运行,好过对完美测试的无尽等待。
边界条件的测试,对 read 而言是第一个字符、最后一个字符和倒数第二个字符。
花合理时间抓出大多数 bug 好过穷尽一生抓出所有 bug。
重构列表: 重构词汇表,简短概要,动机,做法,范例。
blog comments powered by Disqus