断舍离是一种整理生活的方式,指的是将那些不需要用到的东西清理舍弃,释放空间,减轻负担。这种方式对于那些被各种乱七八糟,总以为哪一天会用到的杂物堆得满满的人来说,可以极大地提高生活质量。
同理,在写代码时,也是需要有断舍离的精神。
今天我在更新项目时,又掉进了老旧代码的坑了,这个项目已经运行了十几年,先后经过很多人的维护,到处充斥着已经没用的代码,或者注释了的代码。这些僵尸代码有些已经在项目中躺了超过十年了。一直在干扰着维护人员:
弃用的代码没有注释掉,有些甚至能说明代码的作用也没有。在追踪代码时,耗费很长的时间去理解代码,最后满怀疑惑地去问产品,才知道这个功能早就废弃了...
时不时会报错。弃用的代码相关联的服务被停止,如数据表被删除,就会报错,浪费人力去修复。
在追踪代码时,弃用的代码往往会带来很大的困惑,比如追踪一个函数,项目中竟然有五个文件都定义了这个函数,又得花时间去排查
为何弃用的代码还会一直保留呢?
自己写的代码不舍得删
自己的劳动成果,肯定会更加珍惜,在别人看来只是几十行的代码,可自己知道这几十行代码可是半天的脑力结晶。而且大多人对自己写的代码都有莫名的喜爱,觉得自己的代码很牛逼,这么好的代码怎么舍得删除,即使现在不用,后续也可能会用到。最多,就将其注释掉吧
别人写的代码不敢删
删自己的代码最多是心疼,删别人的代码可能就是蛋疼了。因为不清楚这些代码背后埋着什么雷,可能看着没什么作用,但也许在其他某个偏远的猥琐的小角落正在依赖着我们删除的代码。于是又引发一堆麻烦...
断舍离,不然终将受其乱
即使有诸多的理由让我们不舍得或者不敢删代码。但从项目的可维护性与扩展性来讲,弃用的代码是必须删的,不管是不是你写的,都必须进行处理。在此方面,不同人的表现截然不同,有的是只管自己的一亩三分地,只维护自己管辖的代码,着眼于完成手上的功能,而不会去顾及这个项目的可持续性。而有的人即会从整个项目出发,不断去优化,在这过程肯定会挖出不少地雷,但这是让项目代码质量提升的必行之路,也是自己成长的途径。
修改、删除代码远比添加代码更加困难,很多人都会因为恐惧而不怕下手,情愿得过且过,继续往一个臃肿的项目再累加代码,直至项目终有一天不可维护,再推倒重构。
优秀的开发人员之所以能优秀,在于他们难以容忍质量低下的代码,他们在给代码动手术时虽也有恐惧,但从不因为恐惧而退缩,正因此,才逐日变得优秀。