永远都不要拷贝代码

经常,你可能会觉得,原来代码写得不好,想要重构,但是重构的时候,是先把原来的代码拷贝过来,确保不影响老的功能。然后新功能做好后,逐步修改老功能。最终实现完成重构,代码得到优化。

上面的故事和计划很美好,所以,它们十有八九不能被完整执行,后果往往就是,拷贝了一堆代码,老代码大摇大摆继续运行,新功能不断压来,系统里多了一堆代码的拷贝。这时候,只要祈祷不要出bug就好,不然就是双倍的工作量,恶劣的,还会造成数据不一致,新老代码操作数据有细微差别就会有这种情况,一般差别很细微,还特别不易发现。

如果相信我,一个一线写了五年代码的人,那就请相信,任何时候,都不是你拷贝代码的借口,哪怕是打着『重构』、『优化』这种冠冕堂皇的借口,也不可以,哪怕有 deadline,也不可以,哪怕时间紧也不可以,刀架脖子上了,那也不可以,那时候还写个屁代码啊?还不快跑。

拷贝代码,只会增加你自己的工作量,或者增加别人的工作量。不想越做越多的话,别那么干。

重构是一种艺术,如果你真想完全不破坏老的功能,正确的做法,是为老功能编写测试用例,然后直接改代码,抽取也好,剥离也好,就是不能拷贝,然后通过测试用例来判定,老功能是否受到破坏,而不是不敢动,通过拷贝来给自己做个沙盒,这一开始就是没有自信的表现,不能凭感觉,要靠科学。