更新于

AI 结对编程一年的故事


大约一年多前,我开始把 AI 工具带进日常开发流程——最开始是 GitHub Copilot,后来换成 Cursor,再后来是 Claude Code。

这篇文章是一个记录,不是教程。我想写下这段时间里真实发生的事:什么时候 AI 帮了大忙,什么时候让我差点出事,以及最终我的工作方式变成了什么样子。

一、第一个月:什么都想让 AI 写

刚开始用 Cursor 的那段时间,有点像刚买了一把锤子——什么都想砸。

第一周,我让 AI 帮我写了一个 FastAPI 的用户认证模块。30 分钟内,代码出来了,测试通过了,我提交了 PR。当时的心情是:这玩意真的太强了,以后我的效率要飞天了。

然后 code review 的时候,我的同事问:“这个 JWT 签名用的 secret 是从哪里来的?”

我打开代码一看——SECRET_KEY = "your-secret-key-here"。AI 生成的默认占位符,我根本没注意到,直接提交了。

当然那只是测试环境,没有真的泄漏什么。但这件事让我第一次意识到:AI 输出的代码,每一行都需要你真正看明白,不是说跑通了就完事。

关于这类 AI 生成代码中的常见陷阱,AI 编程常见错误与避坑指南里有更系统的整理。

二、第三个月:开始怀疑自己在退化

兴奋劲儿过去之后,我开始有点担心。

有一天,我需要写一个简单的字符串处理函数,脑子里刚想到逻辑,手已经在打开对话框了。等等,我以前可以直接写出来的,为什么现在第一反应是”问 AI”?

这种感觉让我停下来想了一段时间。我做了一个小实验:把 AI 工具关掉一周,只用文档和自己的脑子。

结果很有意思:写代码变慢了大概 20%–30%,但我明显更清楚自己在写什么了。遇到不确定的地方,我会认真读文档,而不是让 AI 给我一个”可能对”的答案。

一周后重新打开工具,我对它的使用方式有了明显变化:AI 是我的第二意见,不是我的第一反应

三、第五个月:发现了 AI 真正的”甜蜜区”

用了几个月之后,我开始摸出规律——AI 工具不是对所有任务同样有用,有几类任务让我觉得”缺了 AI 简直是折磨”:

正则表达式和格式转换

写一个精确匹配特定日志格式的正则,手写的话我可能要花 20 分钟反复测试。现在我直接描述格式,AI 给出初版,我验证一下就可以了。节省的不只是时间,还有大量的心智负担。

不熟悉的框架的第一步

每次上手新框架,我最怵的是”第一个 Hello World 怎么跑起来”——环境配置、依赖版本兼容性、文件结构……这些 AI 处理得很好,能快速帮我越过”入门门槛”。

进了门之后,深度功能还是得自己啃文档。

重复性代码的生成

数据库的 CRUD、API 接口的 Pydantic schema、单元测试的 fixture——这类代码逻辑不复杂,但写起来枯燥且容易出笔误。AI 在这里的命中率极高,我能把精力留给真正需要思考的部分。

解释代码而不是写代码

有时候接手别人写的代码,逻辑很绕,注释又少。让 AI 解释一遍比自己慢慢读快多了。这个用法其实比”让 AI 写代码”更稳——因为 AI 解释的是已有代码,不是凭空生成。

四、第七个月:一次让我印象深刻的”协作失败”

大概七个月的时候,我在做一个数据处理任务:从外部 API 拉取数据,做清洗和转换,写入数据库。

我把整个任务描述给 AI,让它帮我设计方案。方案出来了,看起来很合理。我开始按照这个方案实现。

实现完一半的时候,我发现方案里有一个根本性的问题:它假设外部 API 的数据量是固定的,而实际上数据量可能超过内存限制。如果按这个方案跑,迟早会 OOM。

回过头来想,问题出在哪里?出在我把任务描述给了 AI,但没有给它关键的约束条件——数据量可能是 GB 级别的。AI 没有任何理由知道这一点,它给出的方案在它的信息范围内是合理的。

这次之后,我养成了一个习惯:在让 AI 做方案设计前,先列出所有约束:

- 数据规模:单次任务 10万–500万行
- 内存限制:容器 2GB
- 延迟要求:允许跑 2–6 小时
- 依赖限制:不能用 Spark(运维成本)

把约束写清楚之后,AI 的方案质量明显提升了。

五、第九个月:切换到 Claude Code,工作流的一次重塑

大概第九个月,我把主要工具切换到了 Claude Code(用 API 中转接入,因为直连网络有时候不稳定)。

和 Cursor 最大的体感差别:Claude Code 更像一个可以执行任务的同事,而不是一个代码补全工具。你可以说”帮我把这个模块的所有函数都加上类型注解”,它会真的去做,不是提示你怎么做。

这个能力让我把一类任务彻底从自己的工作清单里移出去了:机械性的批量修改

重命名一批变量、统一代码风格、给遗留代码补注释、把 Python 2 语法升级到 Python 3——这些任务我以前会做、但每次都很烦。现在直接交给 Claude Code,我去做别的事。

Claude Code 的 Agentic 工作流和任务执行能力,Claude Code 真实场景任务实践里有具体案例。

六、第十一个月:终于找到我的节奏

到大概第十一个月,我觉得自己摸到了一个稳定的节奏。

AI 工具做什么

  • 所有新功能的初稿(我会重写,但有初稿比从空文件开始快很多)
  • 正则、格式转换、算法题的第一版(高命中率场景)
  • 批量机械修改(节省大量枯燥时间)
  • 代码解释和文档生成
  • 单元测试脚手架

我自己做什么

  • 所有涉及安全的代码(认证、权限、加密)必须自己写,或至少逐行审查
  • 系统设计和架构决策
  • 数据库 schema 设计
  • 性能敏感路径的优化

两者协作的节点

  • 我提需求和约束,AI 给初稿
  • 我做 review 和修改,AI 根据我的意见迭代
  • 最终决策(接受/拒绝/重写)永远是我的

这套分工不是”最优的”,它是”适合我的”。不同人、不同项目类型,最优节奏会不同。

七、对比一年前后的变化

一年过去,我尝试客观地总结一下:

维度一年前现在
写代码的速度基准+20%–40%(任务类型高度相关)
对 AI 输出的信任度盲目信任有分辨地信任
代码 review 的习惯跑通就提交看完每行再提交
工具切换频率频繁稳定在 Claude Code
遇到问题时先问 AI先想一下,再决定是否问

最大的变化可能是思维方式:我不再把 AI 工具当成”能帮我省事的黑盒”,而是把它当成一个需要你给清晰指令、需要你检查输出的工具型同事

这个定位转变之后,失望少了很多,也不再觉得”AI 没有帮上忙是因为工具不行”——通常是因为我没有给出足够好的指令或足够完整的约束。

八、相关阅读

如果你也在寻找稳定的 Claude API 接入方式,YoTradeApi 提供国内可用的 Claude 全系列中转,让你专注于写代码而不是折腾网络。