在微博上看到100offer的博客《为什么千万不要重写代码》,里面列出了很多程序员为何会有冲动重写代码,以及重写带来的风险。下面我结合我最近做过的几个大型重构代码来说说自己的观点,如何有选择的重构和重写代码。
最近这段时间在重构项目,比较大的项目,涉及页面在100个左右的,我以为我的代码能够写得比之前的代码好,然后就没有参考之前的代码,一切推倒自己重写,然后前端界面做好了,后端的进行添加效果,配合的过程中,我发现原来的旧代码很多的东西其实可以重用的,很多他们之前写过的东西都可以借鉴。反而我自己的代码由于后端的人员不熟悉和使用上跟之前的不太一样,导致了沟通和反复修改,增加了项目的难度。还有之前的一次重构也存在相同问题。
重用代码的难点就是要读懂别人的代码,而看别人的代码总会带有自己的一点情绪进去,看到恶心的代码就会忍不住吐槽,甚至不想再看下去,想自己diy一个。特别是很多生产的代码经过压缩之后,在没有文档的情况下你完全不明白这个函数是什么作用,这个代码在新的需求里面到底会不会肿余,读代码的时间还不如我自己重写一个。
所以有选择的重构和重写代码是很有必要的,这是一个效率与实用的结合体,而不是一味的接受与一味的抛弃。
接受:原来代码里面的易用插件、共用的代码,共用的结构。
抛弃:过时的插件、老旧的结构和不兼容的代码。
面对糟糕的代码:Keep Calm & Carry On