我让AI重构2000行屎山代码,咖啡没泡好它干完了
上周二下午三点多,我在终端里敲了 claude "帮我重构这个 2000 行的 Python 脚本",然后起身去厨房搞了杯手冲。咖啡还没滤完,回来一看,它已经搞完了——重构、单元测试、还顺手修了个隐藏了三个月的边界条件 bug。
我端着杯子愣了几秒。
真变了。
先交代下:我用 Claude Code 大概三周,主要是日常搬砖用,偶尔周末拿它搭点 side project。不是什么"AI 取代程序员"的危言耸听,就是一个天天跟黑窗口打交道的人,对这种 agent 式编程的真实感受。
它到底是个啥
说白了,就是终端里的 AI 编程助手。没 UI,没侧边栏,就你熟悉的那个黑窗口,敲命令,它干活。
跟 Copilot 那种"你写着写着它帮你补下一行"的思路完全不同。Claude Code 是 agent 模式——你扔给它一个任务,它自己读文件、写代码、跑命令、看报错、改、再跑,循环到搞定。你就看着终端刷刷刷地输出,跟有个老练的同事在旁边 pair programming 似的。
我一开始挺怀疑的。之前用过几个 AI 编程工具,demo 看着贼炫,实际用起来连 import 路径都能搞错。但 Claude Code 第一个任务就把我震了。
案例一:七层 if-else 屎山
我手里有个祖传数据清洗脚本,1800 多行,核心逻辑嵌套了七层 if-else。每次改需求我都得先做心理建设,改完还得烧香。
在项目目录下敲了:
claude "重构 src/data_cleaner.py,把嵌套条件拆成策略模式,保持功能完全一致"它先自己读了文件(终端里能看到它在跑 cat 和 grep),然后咔咔开写。大概三分钟后停下来,跟我说:原始逻辑里有个分支永远不会被触发,因为上层条件已经覆盖了,问我要不要干掉。
我当时就傻了。这段死代码躺了两年,我每次看到都隐隐觉得不对,但从没认真验证过。它自己发现了,还附上了逻辑推导。
最终输出:策略模式拆成 7 个类,每个类不超过 40 行,带完整单元测试。我跑了一遍,全绿。又用生产数据跑了 diff,输出完全一致。
说实话,我自己手写这套重构大概要一整天。它用了五分钟。
案例二:翻车——它偷偷改了我的 webpack 配置
当然不是每次都这么顺。第二周我让它给一个 Next.js 项目加暗色模式。
任务本身很简单,就加个主题切换。它改完组件、加好 context provider 之后,我习惯性 git diff 看了一眼——卧槽,它把我 next.config.js 里一段自定义 webpack 配置给改了。
等等,这里我要更正一下——不是"改",是直接"优化"掉了。那段配置是我半年前为了兼容一个上古依赖库加的,注释里用大写英文写着 // DO NOT TOUCH - LEGACY DEPENDENCY。显然,Claude Code 不理解人类这种绝望的求生信号。
结果那个老依赖直接炸了,页面白屏。我花了一个多小时排查,最后 git bisect 才定位到是它这个改动。
教训:让它干活之前,一定先 git commit。它的"主动性"是双刃剑——能帮你发现隐藏 bug,也能在你不知情的情况下搞一些"它觉得对"的事。现在养成习惯了,每次让它干大事之前先提交,干完仔细 review diff。不提交就让它干活,等于把车钥匙给陌生人。
案例三:跨文件连锁改动
第三个场景让我真觉得这种 agent 模式有点东西。
我让它"把所有 API 路由的错误处理统一成新的 ErrorResponse 格式"。涉及 14 个路由文件,每个文件的错误处理写法还不太一样。
传统做法是我一个个文件打开改,边改边骂当初为什么不统一。或者写个脚本批量处理,但正则很难覆盖所有变体——有的用 res.status(500).json(),有的用 throw new Error(),有的自己封装了个错误处理函数,五花八门。
Claude Code 的做法:先 grep 出所有相关文件,逐个读,识别不同的错误处理模式,然后针对每种模式写替换逻辑,逐一改过去。改完自己跑了一遍 lint 和 type check。
有个文件里混了 GraphQL 和 REST 的错误处理,它居然识别出来了,只改了 REST 部分,GraphQL 的保持原样。这种上下文理解程度,我觉得比我预期的好不少。当然也可能是我预期太低了,毕竟之前被各种 AI 工具毒打过。
无界面的好与坏
好处很明显:快,轻,完全融入工作流。不用切浏览器、不用摸鼠标,就在终端里说完需求,切到别的窗口继续干活。它跑完了叫我一声。这种体验跟 IDE 插件完全不一样——它不打扰你,你不需要盯着它一行行写代码。
而且因为它是 agent 模式,会自己跑命令看结果。写完代码自己跑测试,测试挂了看报错、定位、修正、再跑。这个"自己检查自己"的闭环,让最终输出质量高了一大截。据我了解,它底层用的是 Claude 4 Sonnet(2025 年 5 月那个版本),代码能力确实比之前的版本强不少。
坏处也有:没有 diff 预览,至少目前版本没有。你只能事后 git diff 看它改了什么。有时候它一口气改太多文件,review 起来也挺累的。还有就是前面说的,偶尔会过度自信做一些不必要的改动。嗯...这个怎么说呢,有点像带了个技术很强但不太懂人情世故的 junior,得盯着点。
跟 Cursor / Copilot 的体验差异
三个我都用过,简单说下感受:
- **Copilot**:补全很溜,写代码时加速明显,但不会帮你做架构决策。适合"我知道要写什么,帮我快点写出来"的场景
- **Cursor**:交互式 AI 编程体验好,适合边写边问,UI 友好。我认识不少刚入行的朋友更喜欢这个
- **Claude Code**:适合"扔个任务然后走开",终端原生,agent 能力强。但门槛高一点,得习惯命令行
我现在是组合用:日常写代码开着 Copilot 补全,需要大范围改动或探索性任务时切到 Claude Code。两者不冲突,各有所长。大概就是"加速器"和"副驾驶"的区别。
什么人适合用
如果你符合下面几条,大概率会喜欢:
- 每天大量时间泡在终端里
- 经常需要重构或跨文件改动
- 想省掉那些"知道怎么改但懒得动手"的重复劳动
- 不介意事后 review diff(甚至享受 code review 的过程)
如果你是刚入门的新手,可能 Cursor 那种带 UI 的交互方式更友好。毕竟 Claude Code 目前还是个命令行工具,有一定的使用门槛。而且说实话,如果你不太习惯看 diff、不太清楚它改了什么,可能会踩坑。
最后说两句
三周下来,Claude Code 已经进了我工具箱前三。它不是魔法,有时候会犯蠢,有时候会"过度优化",但它在理解任务意图和自主闭环执行这两件事上的表现,让我愿意忍受那些小毛病。
AI 编程工具这一年进化太快了。从 2024 年初的代码补全,到年中 Cursor 那种对话式辅助,再到现在这种 agent 式执行——每次迭代都在重新定义"程序员的工作流"。2025 年 Anthropic 和 OpenAI 在这块的竞争也白热化了,对我们来说倒是好事。
我现在的感觉是:那些重复性的、机械的、不需要太多判断的编码工作,以后大概率会越来越依赖这类工具。但理解业务、做架构决策、review AI 产出的代码——这些事情反而变得更重要了。
真要说有什么遗憾的话,大概就是它还不能帮我写周报吧。
你试过 Claude Code 或者类似的 agent 编程工具吗?体验怎么样?有没有踩过什么有意思的坑?评论区聊聊,我泡好咖啡等着看。☕
#claudecode #ai编程 #开发工具 #效率提升 #程序员日常
读者评论 4