接手八千行祖传代码的第一周,我让AI把重构风险压缩成了一张清单
一、每个独立开发者都怕的那种项目
接手一个没有文档、没有测试、原作者早已失联的遗留项目,大概是独立开发者和小团队最头疼的场景之一。代码里混着五种命名风格,数据库查询直接拼在页面逻辑里,某个核心函数七百多行,谁也不敢动。
我的处境很典型:一个跑了六年的内部管理系统,八千多行 PHP 加上勉强能跑的定时任务。客户要求迁移到新架构,预算按“人天”计算。我第一次通读代码时估算:人工梳理全部调用关系、识别风险点、写回归测试,至少需要三周。而合同给的时间是十天。
痛点可以列得很具体:
- 不敢动:没有测试覆盖,改一行不知道会炸哪里;
- 看不透:业务逻辑和技术实现搅在一起,改之前得先理解“这段代码到底在干什么”;
- 说不清:给客户解释风险和工作量时,只能凭经验拍脑袋,缺乏可交付的凭据。
这三件事,恰恰是 AI 擅长分担的。
二、AI 在重构流程里能替你做什么
我的做法不是“让 AI 一键重写”——那样风险更大。而是把重构拆成 AI 能可靠完成的几个环节,人只做判断和把关。
第一步:生成代码地图。 把代码分块投喂给大模型,让它输出模块清单、函数职责、调用关系和依赖表。以前这步要人肉画两天,现在半天拿到初稿,再人工校对。
第二步:风险标注。 让 AI 按预设规则扫描:SQL 拼接、硬编码密钥、未捕获异常、隐式类型转换、时区处理、废弃 API。输出一张带行号的风险表。
第三步:划定安全边界。 这是最关键的一步。让 AI 把代码分成三类:可以安全重构的“绿区”、需要补测试才能动的“黄区”、只能封装隔离、绝不重写的“红区”。AI 给出分类建议,我逐条确认。
第四步:生成验证清单和回归测试骨架。 针对黄区和绿区,让 AI 产出重构前后的行为对照清单,以及可以跑起来的测试用例草稿。AI 写的测试会有遗漏和想当然的断言,但改测试比自己从零写快得多。
第五步:分批迁移 + 对照验证。 每迁移一个模块,让 AI 对比新旧实现的行为差异,输出“输入—旧输出—新输出”三列对照表,人工抽查关键路径。
三、可直接复用的提示词模板
这是我在风险标注环节反复打磨出的模板,适合任何语言的老代码:
你是一名资深代码审计工程师。我会提供一段遗留代码,请完成以下任务:
1. 【功能摘要】用不超过 5 句话说明这段代码的业务职责。
2. 【风险清单】逐条列出以下类别的风险点,标注行号和严重程度(高/中/低):
- SQL 拼接或注入风险
- 硬编码的密钥、IP、路径
- 未处理的异常和边界情况
- 依赖已废弃或不再维护的 API
- 隐式类型转换、时区、字符编码问题
- 副作用(写文件、发请求、改全局状态)
3. 【外部依赖】列出这段代码依赖的外部服务、数据表和全局变量。
4. 【重构分级】对每个函数给出建议:
绿区=逻辑清晰可安全重构;黄区=需先补测试;红区=建议只封装不重写。
并用一句话说明理由。
5. 【验证要点】如果重写这段代码,重构后必须验证哪些行为?列出可执行的检查项。
要求:不确定的地方明确标注"不确定",不要猜测。输出为 Markdown 表格。
代码如下:
<在这里粘贴代码>最后那句“不确定就说不确定”很重要——它显著减少了 AI 一本正经编造调用关系的情况。
四、前后对比:时间账算得清清楚楚
同一个项目,两种做法的估算对比(基于我个人的实际操作记录,仅供参考):
| 环节 | 纯人工估算 | 引入 AI 后实际 | 节省 |
|---|---|---|---|
| 代码梳理与调用关系 | 5 天 | 1.5 天 | 70% |
| 风险识别与分级 | 3 天 | 0.5 天 | 83% |
| 回归测试编写 | 4 天 | 1.5 天 | 62% |
| 重构实施与验证 | 5 天 | 4 天 | 20% |
| 文档交付 | 2 天 | 0.5 天 | 75% |
| 合计 | 约 19 人天 | 约 8 人天 | 约 58% |
几点观察:
- 收益最大的不是“写代码”,而是“读代码”和“写测试”。重构实施本身只省了 20%,因为核心逻辑还得人确认。这符合预期:AI 的价值在降低理解成本和覆盖盲区,不是替你做架构决策。
- 交付质量反而更高。给客户的那份风险分级表和验证清单,让客户第一次能看懂“钱花在哪、风险在哪”。这不是省时间,是多了一项能收费的交付物。
- 成本几乎可以忽略。整个项目调用大模型 API 的花费,相比省下的十来个人天,占比极小(具体模型价格以官网价格页为准)。
五、几条踩出来的经验
- 不要让 AI 直接输出“重构后的完整代码”再整段替换。小批量、可对照、可回滚,才是安全节奏。
- 红区宁可不动。那些七百行的函数,用适配器包起来就够了,重写的风险远大于收益。
- AI 的风险清单是初筛,不是结论。我平均会在它的基础上删掉 15% 的误报、补上 10% 它漏掉的点——但这两步都比从头做快得多。
- 把验证清单写进合同。重构完成的标准从“代码能跑”变成“清单上每一项都通过”,对双方都是保护。
写在最后
遗留代码重构从来不是技术问题,而是风险和信任问题。AI 改变不了代码本身的历史包袱,但它能把“凭感觉评估”变成“有清单、有分级、有验证”的可控流程——对独立接活的开发者来说,这既是时间,也是接单的底气。
如果你也在做类似的代码审计、重构辅助或批量文档生成工作,可以试试通过一个稳定的模型接口来跑这套流程,注册入口在这里:https://api.thistoken.ai/register
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。