直接让AI上手重构遗留代码库,结果往往喜忧参半。AI生成的代码看起来合理,却经常漏掉藏在奇怪地方的临界业务逻辑。你花在验证上的时间,比AI帮你省下的还多。而且重构后的代码虽然清爽了,却可能在六周后生产环境里冒出微妙的行为偏差。

关键差距在于准备。不是让AI凭通用模式瞎猜,而是给它理解你特定代码库所需的上下文。

打开网易新闻 查看精彩图片

第一步:画清边界。遗留代码的麻烦在于牵一发而动全身,所以必须主动收缩范围。选定具体模块、类或相关函数,用 plain language 写清楚职责。比如折扣计算模块:它管的是"应用折扣、促销和会员等级后的最终价格",不管拉取客户数据、验证优惠码、也不管税后计算。最关键的约束要单独标出来:折扣不能叠加,20%会员折扣和15%优惠码同时存在时只取20%,这是业务定死的规则。

这段描述就是你要贴在每个AI提示词前面的上下文头。写它花20分钟,但能避免反复解释,更能拦住AI因不知道"不叠加"规则而搞出的错误。

第二步:摸清依赖。AI重构时随手就会改函数签名、返回类型或模块接口,根本不知道谁在调用它们。重构前你需要一张依赖地图。Python可以用内置ast模块和导入分析脚本生成调用图,JavaScript靠ESLint和模块分析工具,GitHub高级搜索能跨仓库找函数引用。

AI可以帮你做这一步,但输出只能当起点。让它列出某函数在哪些文件被调用,每个调用点的文件行号、返回值怎么用、调用方传没传关键参数——这些得人工复核。

第三步:固化约束。业务规则散在注释、测试用例、甚至提交历史里,AI读不到或读不准。把关键约束显式写成检查清单,重构后逐条验证。比如折扣模块:不叠加规则是否保留?会员等级查询是否仍走customer_service.py?价格计算后是否仍由外部调用方处理税费?

准备工作的投入产出很直观:前期多花一两个小时,后期少踩生产事故的坑。AI辅助重构的真正价值,不在于生成速度,而在于生成的东西能放心用。