080、遗留代码迁移:从 Python2 到 3、从 JS 到 TS 的 AI 辅助迁移方案
一个让我凌晨三点还在改代码的迁移事故
上周二凌晨,生产环境的告警把我从床上拽起来。一个运行了六年的Python2数据处理管道,在迁移到Python3后,突然把一批中文订单号全部变成了乱码。我盯着日志里那行UnicodeDecodeError,脑子里只有一个念头:当初写这段代码的人,一定没想过这玩意儿能活过2020年。
更讽刺的是,这个迁移项目我用了Claude Code来辅助,本以为能省下80%的工作量,结果被一个str和bytes的隐式转换坑到怀疑人生。后来复盘发现,AI生成的迁移代码在95%的场景下都正确,但恰恰是那5%的边界情况——比如混合编码的字符串拼接、urllib到urllib.request的路径变化——成了定时炸弹。
今天这篇笔记,我就把这次迁移踩过的坑、用AI辅助的实战套路,以及从Python2到3、从JS到TS的迁移方案,掰开了揉碎了写出来。别指望AI能一键搞定,它只是个高级点的sed工具。