重构,你还在纠结什么?

mac2023-06-09  15

重构,是让你享受抽象的乐趣

我对重构的初步认识就是把一个大函数抽成很多个小函数,然后尽量减少参数的传递与减少临时变量的存在.

在重构的时候有两点常常困扰着我,那就是性能与可读信息 和 如何构建完善的自动化测试防护网.(设计模式暂不讨论,但是设计模式与重构确实是息息相关的)

1) 测试防护网

我承认 构建完善的自动化测试防护网这件事应该是在开发阶段就要完成的事情,但是很多时候不得不承认的是,你没有一个快速的测试防护网, 更别提快速自动测试防护网了. 虽然在ide发展的今天很多编译上的错误在ide中就可以解决,但是难点就在与当前函数的功能是否被重构时遭到了破坏,这是很难预料到的. 但是重构由于是小步提交,与其配套的测试防护网也就必须得满足快捷与这一特性,但是很可惜的是至今我在大多数时候使用的任然是极重的人工手动功能测试,

2) 性能与可读性

在取舍性能和可读性的时候,我通常会短视的取当前的性能,而非将其重构掉. 在重构中主张的是,在重构的时候就一心重构就可以了,不必在意其他,如果影响了性能,那么在后面也可以使用其他手法来弥补. 但是我在重构的时候会将其留在那里不重构的原因是的当前只想重构这一个块业务内容,不想涉及到其他的类,(因为这一方面往往是与数据库查询相关,或是与硬盘IO操作,又或是即时互联网交互才会严重影响到性能)也不太想运用重构手法将其抽出超类, 除非我决心要彻底重构它. 但是在我构建出完善的测试防护网之前我是不会这么做的.

所以 你有什么好的快速构建自动测试防护网的思路么?

最新回复(0)