V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qq1147
V2EX  ›  程序员

用 AI 编程工具,千万不要让 AI 重构代码

  •  
  •   qq1147 · 6 天前 · 2715 次点击

    血和泪的教训:

    1. 如果要重构,一定要先提交代码,保证能回退到没有重构之前的状态!

    2. 哪怕让 AI 梳理代码逻辑形成文档,哪怕自己调试代码跟着走一遍,然后记笔记,也不要让 AI 直接重构代码!

    3. AI 写的代码,能用就行,千万不要随便重构!

    19 条回复    2025-10-09 15:00:36 +08:00
    salor
        1
    salor  
       6 天前 via iPhone
    AI 拉的💩让 AI 自己擦屁股没毛病。
    勤提交 git 倒是真理。
    TimePPT
        2
    TimePPT  
    PRO
       6 天前   ❤️ 2
    试过重构了几次,包括前端、后端,有成功有失败。

    分享一些经验教训,只能说相对保险,但不一定完全有用,仅供参考:
    1. 重构前与模型充分讨论,并形成技术方案文档,方案中包括项目背景、目标、实现内容、验收标准、验收 checklist ,并根据 codebase 实现伪代码,如果重构涉及文件较多,可以让其给出可被验证的分步实现方案(哪怕中间有冗余的过渡代码或脚手架都没有关系)。
    2. 技术文档人工审阅后,让其严格按照审阅后的进行代码编写与测试,如果变动较大的,按照第一点中规划好的分步骤进行迭代,每次完成后完成 lint/format/test ,无误后 git commit
    3. 最后完成重构后,回归测试没问题,再清理无用依赖、临时文件、僵尸代码。然后再次回归,没问题,提交,并合并分支。
    4. 活用 AI 编程工具提供的 code review 功能,时不时用下,有奇效。
    5. 在 AI 没那么牛 B 之前,未保生产安全,人还是主驾驶。
    TimePPT
        3
    TimePPT  
    PRO
       6 天前
    @TimePPT 补充一下,以上经验仅限 GPT-5 High / Claude Sonnet 4.5 / Gemini 2.5 Pro

    要是用能力再次点的模型,不确定行不行
    lithiumii
        4
    lithiumii  
       5 天前 via Android
    用 aider ,自动帮你 commit
    avenger
        5
    avenger  
       5 天前 via iPhone
    明确需求
    回归测试
    独立分支
    重构失败就重新开始呗
    Moishine
        6
    Moishine  
       5 天前 via Android
    我一直用爱重构的,很好啊
    darkengine
        7
    darkengine  
       5 天前
    重构完了自己当 QA 把关咯,不然直接上线会有惊喜
    MIUIOS
        8
    MIUIOS  
       5 天前
    AI 写的东西最大的特点就是,整体上看没啥任何问题,一扣细节一堆问题。
    mightofcode
        9
    mightofcode  
       5 天前
    小重构还行 大的还不太行
    CyouYamato
        10
    CyouYamato  
       5 天前
    只能重构部分的功能/类/函数逻辑,你要是项目大范围一次性重构我目前结论就是做不到.更大的 max 模式不了解.
    我现在接手的代码就是上个哥们花着老板给他充的 200 美刀的 cursor 写的.我找个 bug 我要看乱七八糟一堆文件,目录结构堪称灾难.
    目前只能先动刀目录结构,再慢慢让 AI 先把公共代码抽取出来.后面再重构代码逻辑,改起来头大.但是不改后续写起来真的恶心死了.我又不能只靠 AI 写.
    tlerbao
        11
    tlerbao  
       5 天前
    我用 cursor ,重构完自己 review ,没问题 commit ,有问题完全跑偏,直接 rollback ,方便的一 B 换个模型再试一次
    bbbblue
        12
    bbbblue  
       4 天前
    我的经验是 要重构千万别 auto approve😂
    你就看着 AI 写 实时 review 不对马上纠正/自己上手补充
    会好很多

    然后重构尽可能面积小一点 虽然有子 agent 之类的 但切分还是自己来做吧
    dengj3355
        13
    dengj3355  
       4 天前
    目前我使用 codex ,非常稳定,几乎不会出错,vscode ChatGpt 5 Codex Plugin 可能会有些问题导致无法 Undo ,使用 Copilot Codex ( preview )总体质量和官方插件差不多,Copilot 会自动做快照,这个很不错,点击对话历史就能回到那时的快照,另外补一嘴,Codex 永远的神!用了 grok claude gemini 甚至 OpenAI 自家的 o4 o3 5 都比 Codex 差远了,Codex 真的可以独立开发一个中小型项目,只需要非常少量的干预即可
    aarontian
        14
    aarontian  
       4 天前
    经常重构,各种办法都用过了,大都是相对小的几万行的 repo ,拖拖拉拉最后多少重构完了。基本后续需要擦屁股,感觉重构方向清晰的话可能比手动快一点,但不如手动稳。

    无论如何重构后都很依赖测试,AI 多少都会改点逻辑和细节,而重构 prompt 是很难讲清楚所有细节的,最恶心的一回是 cursor 的 gpt-5 免费期间用 gpt5 重构过,各种改动后直接改细节逻辑不说,连配置文件的 c/v 都能复制错(一个 key 给我复制错一个字母害我 debug 半天,这种情况 sonnet 高强度用了大半年从没出现过)
    techphoebe
        15
    techphoebe  
       4 天前 via iPhone
    重构得有自己的想法,不能放手丢给 ai 搞,很容易过度设计,代码越写越多
    xuanbg
        16
    xuanbg  
       4 天前
    前段时间重构了一部分代码。重构的目的是将一些重复的类、重复的逻辑抽取出来打成一个包给各个项目使用,以便维护这些公共的功能的时候,东改改西改改,万一哪里没改到出 bug 。

    当然,这个目的很容易达成。但是,重构完发现这个复杂度并没有和预想中那样有所下降,反而还提升了不少。这究竟算重构成功了呢,还是算重构失败了?实在是有些难评。。。不过,这个副作用倒是收获了“防御式编码”的效果。毕竟,这代码被我搞得更难理解了!
    yjxjn
        17
    yjxjn  
       4 天前
    @Moishine 如果重构其中的模块,确实不错,但是如果重构整个工程,只要你不仔细 review ,AI 总会给你一个大惊喜~
    yjxjn
        18
    yjxjn  
       4 天前
    @CyouYamato 我重构过,我的结论就是比如某些小模块,AI 确实能做的不错,但是如果想重构整个工程,这货绝壁给你改的乱七八糟的。甚至完全破坏了。基于 CODEX 和 CC4.5,花了我 6 个小时,直接干掉了 400credit ,结果一跑,发现从第一步开始这货就把配置文件给我改了。😄,最终结果就是干脆跑不起来,页面样式都丢了不少。
    所以长记性了,一个模块一个模块重构,整个工程重构慎用。
    yjxjn
        19
    yjxjn  
       4 天前
    @xuanbg 抽重复代码做为接口方法来重构,AI 特别擅长,效果很好,代码写的比我强,但是比如你没按照最佳实践写,让他重构整个工程,那真是一言难尽。鸡肋。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:54 · PVG 23:54 · LAX 08:54 · JFK 11:54
    ♥ Do have faith in what you're doing.