红网时刻新闻
128.26MB · 2025-09-23
原文:Vincent Quigley - 2025.09.02
直到 18 个月前,我的每一行代码都还是亲手编写的。而今天,AI 编写了 80% 的初始实现代码,而我则专注于架构设计、代码审查以及同时主导多个开发线程。
这并非又一篇“AI 将改变一切”的空谈文章。本文旨在探讨将 AI 集成到实际生产开发流程中的复杂现实:哪些方法真正有效,哪些纯属浪费时间,以及为什么 把 AI 看作一个“学不会东西的初级开发者” 成了我获取成功的思维模型。
背景故事:在 Sanity 公司,我们每个月都会举办工程研讨会,由一位同事分享他最近在尝试的新东西。上次轮到我时,便展示了如何使用 Claude Code。
在我的职业生涯中,解决编程问题的方法经历了四次转变:
最初的5 年,我通过阅读书籍和 SDK 文档来学习。
接下来的12 年,我依赖谷歌搜索来寻找社区提供的答案。
然后是18 个月,我使用 Cursor 进行 AI 辅助编程。
直到最近的6 周,我开始使用 Claude Code,实现完全的 AI 编程委托。
每一次转变都比上一次来得更快。而切换到 Claude Code?我只花了几小时就上手并开始高效产出了。
抛开那些天花乱坠的宣传,我当前的工作流是这样的。我主要是将 AI 作为“辅助思考”的工具,与它协作,共同完成最终要投入生产环境的代码。
别指望 AI 能一次性生成完美无缺的代码。作为一名工程师,你的职责是为问题找到最佳解决方案,而不仅仅是写一堆代码。
然后,你带着从这次尝试中学到的东西,再次反馈给它。
这不是失败,而是必经的过程!指望第一次尝试就获得完美结果,就像指望一个初级开发者在毫无背景信息的情况下,独立完成一个复杂的功能一样不切实际。
最大的挑战是什么?AI 无法在两次会话之间保留学习成果(除非你花时间手动给它灌输“记忆”)。所以,通常每一次对话都是从零开始。
我的解决方案:
为每个项目创建一个特定的上下文文件,包含以下内容:
得益于 MCP 集成,我现在可以将 AI 连接到:
如果没有这些上下文,你就得一遍又一遍地解释相同的限制。而有了它们,你相当于直接从第二次尝试开始,而不是从零开始。
我现在会并行运行多个 Claude 实例,这感觉就像在管理一个小型开发团队,只不过团队成员每天早上都会重置他们的记忆。
关键策略:
写代码只是工作的一部分,代码审查同样重要。采用 AI 也让我的代码审查流程发生了演变。
这为我和同事节省了时间和额外的审查回合。
在 Sanity 公司,我们的原则是工程师要对自己提交的代码负责,即使代码是 AI 生成的。我需要确保提交的代码是:
关键在于:我现在对自己写的“代码”更加挑剔,因为其中很多都不是我逐字敲出来的。没有了情感上的依恋,审查质量自然更高。
我们正在测试使用 Cursor 通过 Slack 触发的代理来处理一些简单的任务:
目前的局限性:
但这其中蕴含的潜力是什么?想象一下,在睡觉的时候,有代理程序在处理你待办事项列表里的小任务。我们 Sanity 公司正在积极探索这一点,并在团队之间分享经验,以找出真正有效的方法。
我们来谈谈钱。我使用 Claude Code 的费用,占到了公司付给我月薪的一个不小的比例。
但对于这项投资,我换来了:
投资回报率(ROI)是显而易见的,但对于一位全身心投入 AI 开发的资深工程师,需要准备每月 1000-1500 美元的预算。当然,随着工程师对 AI 的使用越来越熟练,他们的 AI 开销效率也会提高,但这需要给他们时间。
AI 辅助开发并非一帆风顺。以下是我经常遇到的持续性挑战:
学习问题 AI 不会从错误中学习。你得一遍又一遍地纠正它同样的误解。对应解决方案是:提供更好的文档和更明确的指令。
自信问题 AI 会非常自信地写出有问题的代码,并声称它很棒。务必进行验证,尤其是在以下方面:
上下文限制问题 大型代码库会超出 AI 的上下文窗口大小。将问题分解成更小的部分,并提供集中的上下文。
最难的部分是什么?是放下对代码的“所有权”感。但现在,我不再关心这是否是“我的代码”了;它只是一个需要审查和优化的输出结果。
这种抽离感实际上是一种解放!
如果明天出现一个更好的 AI 工具,我会毫不犹豫地切换过去。代码本身并不宝贵,我们解决的问题才是。
如果我从一个工程师的角度给技术领导者一些建议,当你考虑引入 AI 时:
那些适应了新的 AI 工作流 的工程师会发现,他们的工具箱里多了一把锋利的刀:他们正在成为协调者,能够驾驭多个 AI 代理,同时专注于架构设计、代码审查和解决复杂问题。
挑选一个小的、定义明确的功能。让 AI 尝试实现它三次。像指导初级开发者一样审查其输出。
就是这样。不需要巨大的变革,也不需要彻底改造流程。只需要一个功能,三次尝试,和一次坦诚的审查。
未来不是 AI 取代开发者。而是开发者利用最先进的工具,工作得更快,创造出更好的解决方案。