去年接手了一个跑了四年的内部系统,代码堆得跟毛线团似的。同事说"用 AI 试试",于是我开始了一段从"能用"到"敢用"的折腾。这篇不是教程,就是几个真实踩坑的记录,希望别有人再走一遍。
1. 别让模型"猜"你的代码
第一次直接把一个 800 行的 Service 丢给模型让它重构,结果它按照自己脑补的规范重写了一遍,注释倒是漂亮,但和业务完全对不上。后来我学乖了:先让它通读相关模块,把调用链和状态流转讲清楚,再动手改。上下文给够,产出才靠谱。
2. 一次只动一个模块
AI 最大的诱惑是"顺手帮你把相邻文件也改了"。我吃过亏:一次重构顺手"优化"了三个不相关的函数,上线后排查问题多花了两天。现在我的规则是,每次只给一个明确的改动范围,改完立刻看 diff,绝不顺手牵羊。
3. 测试是你的救命稻草
没有测试的老项目,AI 重构就是裸奔。我后来强制自己先给要改的模块补几个关键用例,再让模型改。有测试兜底,模型改错了能第一时间发现;没测试,问题可能要到上线后等用户来报告。
4. 边界条件要写进提示词
模型对"正常路径"很擅长,但对空值、超时、并发这些边界情况经常视而不见。有次它把一个缓存逻辑重写后,漏了并发下的双重检查,压测直接炸了。现在我的提示词里固定有一段"请特别关注空指针、超时、并发与资源释放",效果好很多。
5. 让 AI 解释,而不是让 AI 全权代理
后来我发现,最高效的用法不是让 AI 直接改完,而是让它先解释这段代码为什么这么写,我再决定要不要重构。很多时候老代码的"烂"是有历史原因的------某个看起来多余的判断,其实是当年为了兼容某个特殊环境。理解了背景再动手,重构才有意义。
写在最后
AI 是放大器,不是决策者。你的业务理解越深,它越能帮你省时间;你越是想偷懒全丢给它,后面填坑的时间就越多。工具就摆在那,关键还是看人怎么用。去年接手了一个跑了四年的内部系统,代码堆得跟毛线团似的。同事说"用 AI 试试",于是我开始了一段从"能用"到"敢用"的折腾。这篇不是教程,就是几个真实踩坑的记录,希望别有人再走一遍。
1. 别让模型"猜"你的代码
第一次直接把一个 800 行的 Service 丢给模型让它重构,结果它按照自己脑补的规范重写了一遍,注释倒是漂亮,但和业务完全对不上。后来我学乖了:先让它通读相关模块,把调用链和状态流转讲清楚,再动手改。上下文给够,产出才靠谱。
2. 一次只动一个模块
AI 最大的诱惑是"顺手帮你把相邻文件也改了"。我吃过亏:一次重构顺手"优化"了三个不相关的函数,上线后排查问题多花了两天。现在我的规则是,每次只给一个明确的改动范围,改完立刻看 diff,绝不顺手牵羊。
3. 测试是你的救命稻草
没有测试的老项目,AI 重构就是裸奔。我后来强制自己先给要改的模块补几个关键用例,再让模型改。有测试兜底,模型改错了能第一时间发现;没测试,问题可能要到上线后等用户来报告。
4. 边界条件要写进提示词
模型对"正常路径"很擅长,但对空值、超时、并发这些边界情况经常视而不见。有次它把一个缓存逻辑重写后,漏了并发下的双重检查,压测直接炸了。现在我的提示词里固定有一段"请特别关注空指针、超时、并发与资源释放",效果好很多。
5. 让 AI 解释,而不是让 AI 全权代理
后来我发现,最高效的用法不是让 AI 直接改完,而是让它先解释这段代码为什么这么写,我再决定要不要重构。很多时候老代码的"烂"是有历史原因的------某个看起来多余的判断,其实是当年为了兼容某个特殊环境。理解了背景再动手,重构才有意义。
写在最后
AI 是放大器,不是决策者。你的业务理解越深,它越能帮你省时间;你越是想偷懒全丢给它,后面填坑的时间就越多。工具就摆在那,关键还是看人怎么用。去年接手了一个跑了四年的内部系统,代码堆得跟毛线团似的。同事说"用 AI 试试",于是我开始了一段从"能用"到"敢用"的折腾。这篇不是教程,就是几个真实踩坑的记录,希望别有人再走一遍。
1. 别让模型"猜"你的代码
第一次直接把一个 800 行的 Service 丢给模型让它重构,结果它按照自己脑补的规范重写了一遍,注释倒是漂亮,但和业务完全对不上。后来我学乖了:先让它通读相关模块,把调用链和状态流转讲清楚,再动手改。上下文给够,产出才靠谱。
2. 一次只动一个模块
AI 最大的诱惑是"顺手帮你把相邻文件也改了"。我吃过亏:一次重构顺手"优化"了三个不相关的函数,上线后排查问题多花了两天。现在我的规则是,每次只给一个明确的改动范围,改完立刻看 diff,绝不顺手牵羊。
3. 测试是你的救命稻草
没有测试的老项目,AI 重构就是裸奔。我后来强制自己先给要改的模块补几个关键用例,再让模型改。有测试兜底,模型改错了能第一时间发现;没测试,问题可能要到上线后等用户来报告。
4. 边界条件要写进提示词
模型对"正常路径"很擅长,但对空值、超时、并发这些边界情况经常视而不见。有次它把一个缓存逻辑重写后,漏了并发下的双重检查,压测直接炸了。现在我的提示词里固定有一段"请特别关注空指针、超时、并发与资源释放",效果好很多。
5. 让 AI 解释,而不是让 AI 全权代理
后来我发现,最高效的用法不是让 AI 直接改完,而是让它先解释这段代码为什么这么写,我再决定要不要重构。很多时候老代码的"烂"是有历史原因的------某个看起来多余的判断,其实是当年为了兼容某个特殊环境。理解了背景再动手,重构才有意义。
写在最后
AI 是放大器,不是决策者。你的业务理解越深,它越能帮你省时间;你越是想偷懒全丢给它,后面填坑的时间就越多。工具就摆在那,关键还是看人怎么用。