为什么制作组会把废案放在游戏文件里?

发布时间:
2024-06-25 16:19
阅读量:
37

如果你做过大型项目,你就会知道,屎山有多恶心。

没人知道某段代码会以什么方式影响到整个项目。

我遇到的一个恶心的事儿,经过排查,主要是全文搜索,非常确定某个文件夹下的代码都是无用的,我就把这个文件夹删了。

我还挺自信的,感觉这些代码绝对没用,因为我在里面发现了语法错误,如果真的有用,编译过程必然报错,而事实是编译过程很顺利。

然后,我醉了,删完之后,反而编译不通,而且报错的地方看起来和删掉的那个文件夹毫无关系。


我就不服了,查了两周,把40万行规模的代码研究得透透的,终于找到了问题。

编译过程其实是有bug的,删掉的那个文件夹中有语法错误,导致涉及到它的一个编译过程提早结束了,结束得刚刚好,正好绕过有bug的那部分脚本。

你说为什么没在这步报错?因为前人在那一步里加了“||exit 0”,也就是无论如何都强制脚本返回成功。

直到现在,这个屎山还是我负责呢,因为只有我最懂它了,领导说投资了两周时间研究,我现在是公司的重要资产,这个屎山项目的守护精灵(daemon),要世世代代镇守它。


后来,我还是把那个文件夹删了,但编译用的脚本太复杂,懒得看了。

我直接创建了一个fuck.c的文件,里面用字符画了个中指,这肯定不是有效代码,一样能起到制造编译错误的作用,后面的过程就一样了。

你敢想,有时语法错误是项目编译成功的必要条件。


总结下,废案不删除,多半是因为删除它们需要额外的人力成本,鬼知道会有什么蝴蝶效应。

保留它们,无非是占用点儿空间和流量,无伤大雅。

还可以留着让玩家挖掘,保不齐有奇效。

END