每个代码库都有自己的故事。Leverage——我一直在维护的 Online Judge 平台——也有,只是这个故事不太好看。经历了多年的功能叠加、半夜推上去的临时修复、以及偶尔出现的"在我机器上能跑"式 hack 进了生产,这个代码库积累的技术债已经够开一家小公司了。
决定做全量重写不是一时冲动。重写有风险,"第二系统效应"是真实存在的。但当一次代码审查翻出 29 个 bug——包括一个"所有 AC/WA 提交计数都静默出错"的问题——你就会开始重新考虑了。
为什么要重构?让我数数
Bug 1:PM2 Cluster 把功能变成了幽灵
大约 6 分钟
