血和泪的教训:
如果要重构,一定要先提交代码,保证能回退到没有重构之前的状态!
哪怕让 AI 梳理代码逻辑形成文档,哪怕自己调试代码跟着走一遍,然后记笔记,也不要让 AI 直接重构代码!
AI 写的代码,能用就行,千万不要随便重构!
![]() | 1 salor 2 天前 via iPhone AI 拉的让 AI 自己擦屁股没毛病。 勤提交 git 倒是真理。 |
![]() | 2 TimePPT PRO ![]() 试过重构了几次,包括前端、后端,有成功有失败。 分享一些经验教训,只能说相对保险,但不一定完全有用,仅供参考: 1. 重构前与模型充分讨论,并形成技术方案文档,方案中包括项目背景、目标、实现内容、验收标准、验收 checklist ,并根据 codebase 实现伪代码,如果重构涉及文件较多,可以让其给出可被验证的分步实现方案(哪怕中间有冗余的过渡代码或脚手架都没有关系)。 2. 技术文档人工审阅后,让其严格按照审阅后的进行代码编写与测试,如果变动较大的,按照第一点中规划好的分步骤进行迭代,每次完成后完成 lint/format/test ,无误后 git commit 3. 最后完成重构后,回归测试没问题,再清理无用依赖、临时文件、僵尸代码。然后再次回归,没问题,提交,并合并分支。 4. 活用 AI 编程工具提供的 code review 功能,时不时用下,有奇效。 5. 在 AI 没那么牛 B 之前,未保生产安全,人还是主驾驶。 |
![]() | 3 TimePPT PRO |
![]() | 4 lithiumii 1 天前 via Android 用 aider ,自动帮你 commit |
![]() | 5 avenger 1 天前 via iPhone 明确需求 回归测试 独立分支 重构失败就重新开始呗 |
![]() | 6 Moishine 1 天前 via Android 我一直用爱重构的,很好啊 |
![]() | 7 darkengine 1 天前 重构完了自己当 QA 把关咯,不然直接上线会有惊喜 |
![]() | 8 MIUIOS 1 天前 AI 写的东西最大的特点就是,整体上看没啥任何问题,一扣细节一堆问题。 |
![]() | 9 mightofcode 1 天前 小重构还行 大的还不太行 |
10 CyouYamato 23 小时 37 分钟前 只能重构部分的功能/类/函数逻辑,你要是项目大范围一次性重构我目前结论就是做不到.更大的 max 模式不了解. 我现在接手的代码就是上个哥们花着老板给他充的 200 美刀的 cursor 写的.我找个 bug 我要看乱七八糟一堆文件,目录结构堪称灾难. 目前只能先动刀目录结构,再慢慢让 AI 先把公共代码抽取出来.后面再重构代码逻辑,改起来头大.但是不改后续写起来真的恶心死了.我又不能只靠 AI 写. |
![]() | 11 tlerbao 21 小时 47 分钟前 我用 cursor ,重构完自己 review ,没问题 commit ,有问题完全跑偏,直接 rollback ,方便的一 B 换个模型再试一次 |
![]() | 12 bbbblue 20 小时 15 分钟前 我的经验是 要重构千万别 auto approve 你就看着 AI 写 实时 review 不对马上纠正/自己上手补充 会好很多 然后重构尽可能面积小一点 虽然有子 agent 之类的 但切分还是自己来做吧 |
![]() | 13 dengj3355 19 小时 45 分钟前 目前我使用 codex ,非常稳定,几乎不会出错,vscode ChatGpt 5 Codex Plugin 可能会有些问题导致无法 Undo ,使用 Copilot Codex ( preview )总体质量和官方插件差不多,Copilot 会自动做快照,这个很不错,点击对话历史就能回到那时的快照,另外补一嘴,Codex 永远的神!用了 grok claude gemini 甚至 OpenAI 自家的 o4 o3 5 都比 Codex 差远了,Codex 真的可以独立开发一个中小型项目,只需要非常少量的干预即可 |
14 aarontian 17 小时 46 钟前 经常重构,各种办法都用过了,大都是相对小的几万行的 repo ,拖拖拉拉最后多少重构完了。基本后续需要擦屁股,感觉重构方向清晰的话可能比手动快一点,但不如手动稳。 无论如何重构后都很依赖测试,AI 多少都会改点逻辑和细节,而重构 prompt 是很难讲清楚所有细节的,最恶心的一回是 cursor 的 gpt-5 免费期间用 gpt5 重构过,各种改动后直接改细节逻辑不说,连配置文件的 c/v 都能复制错(一个 key 给我复制错一个字母害我 debug 半天,这种情况 sonnet 高强度用了大半年从没出现过) |
15 techphoebe 12 小时 57 分钟前 via iPhone 重构得有自己的想法,不能放手丢给 ai 搞,很容易过度设计,代码越写越多 |
![]() | 16 xuanbg 11 小时 0 分钟前 前段时间重构了一部分代码。重构的目的是将一些重复的类、重复的逻辑抽取出来打成一个包给各个项目使用,以便维护这些公共的功能的时候,东改改西改改,万一哪里没改到出 bug 。 当然,这个目的很容易达成。但是,重构完发现这个复杂度并没有和预想中那样有所下降,反而还提升了不少。这究竟算重构成功了呢,还是算重构失败了?实在是有些难评。。。不过,这个副作用倒是收获了“防御式编码”的效果。毕竟,这代码被我搞得更难理解了! |
![]() | 18 yjxjn 6 小时 32 分钟前 @CyouYamato 我重构过,我的结论就是比如某些小模块,AI 确实能做的不错,但是如果想重构整个工程,这货绝壁给你改的乱七八糟的。甚至完全破坏了。基于 CODEX 和 CC4.5,花了我 6 个小时,直接干掉了 400credit ,结果一跑,发现从第一步开始这货就把配置文件给我改了。,最终结果就是干脆跑不起来,页面样式都丢了不少。 所以长记性了,一个模块一个模块重构,整个工程重构慎用。 |