最近看了一遍《重构2》,使用JavaScript描述的,中间描述了很多种重构方法。
重点:目的只有一个:
可维护性
这本书成功地说服了我这一点:软件质量属性中,可维护性最重要。
目前,软件越来越庞大,逻辑越来越复杂。以前写程序重在算法,使用最小的CPU和内存,尽可能快的计算结果。时代在变,性能固然重要,但是可维护性更重要,因为相对于硬件成本,人力成本更高。对于可维护性差的软件,以后修改的成本会更高。
计算机基础:软件可维护性的7个质量特性:可理解性,可测试性,可修改性,可靠性,可移植性,可用性和效率。
如何来提高软件的可维护性?其实《重构2》讲的全是这些。
- 可测试性。确保所做的修改是正确的。书中啰哩啰嗦的讲每一小步都要通过测试。
- 可理解性。人类大脑理解能力有限,各种提炼,封装,改名,拆分,不都是为了让代码容易理解么。
- 可修改性。不可修改的软件能重构?修改一个功能,原来可能需要修改多个地方。重构后,只用修改一个地方就好了。
- 可靠性。卫语句和断言,都是为了防止不必要的异常处理逻辑。专注主要逻辑。
总之,只要能够提升我们正在写的代码的可维护性,多付出一点总是值得的。写代码的时候,考虑一下,以后我的代码交给别人来维护,别人能很容易看懂,然后修改,最后测试它么。