有些项目悄悄地积累债务。Leverage OJ 不是其中之一——它大声地积累,表现为比赛中途冻结的排名系统、在 PM2 集群下崩溃的认证系统、每次请求都扫描整个提交表的排行榜,以及离全量凭证泄露只差一个配置泄漏的密码哈希方案。
这是完整重写的故事:我们替换了什么、为什么,以及在这个过程中学到了什么。
1. 为什么选择重写而不是重构
技术债务清单
原版 Leverage OJ 是一个在真实约束下快速推进的项目。开发者是深思熟虑的——你可以从架构决策中看出来。但六年的功能添加、午夜修复和"在我机器上能跑"的补丁已经堆成了一座摇摇欲坠的塔。
大约 15 分钟
