如果外行人听到“祖传代码”这四个字,会不会以为是前辈们留下来的珍贵财富;其实这是程序员最怕遇到的代码,不敢动,一动改半年。
这种代码通常的几个特点:
没有注释,没有文档,没有测试用例;
逻辑堆在一起,并且已经没人知道作者的想法;
功能比较关键,也挺好用的,运行比较稳定,就算有点儿问题,影响也不是很大;
很关键的一点,不能轻易修改,可能会产生不可预料的问题。
单位另外一个项目正在做老系统的升级,准备新做一套系统把功能实现;在翻老代码的时候,有一个方法各种if-else的判断,并且10个产品,有6个已经停售了,正常情况应该把相关的逻辑都摘出来扔掉,但是…没人改动,不知道对现有产品的逻辑产生影响;只能把原逻辑搬过来,未来新产品上线写新的逻辑,等待当前产品逐渐下线,完成代码的替换。
有网友曾发现了微软的祖传代码,在看一段内核内存管理的代码,发现循环多调用了一次,然后给当时Windows内存管理的大牛写信询问此事,很快得到回复:“It is a bug since day 1.”
在一些单位,祖传代码是保住饭碗的工具。一网友刚进单位的时候,发现一些代码的逻辑写的很绕,把代码写的极为复杂,后来发现负责的模块比较稳定的人都被fire掉了,于是才了解前辈们的用心良苦。
面对祖传代码,每个接手的程序员都会选择绕开,没有谁会鼓起勇气去解决,毕竟谁也不想自己掉到坑里。
偶将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
如果觉得《程序员是如何看待祖传代码的 – java – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!