文章摘要
文章讲述了一位工程师在六周内使用Claude Code进行AI辅助编程的经历。他提到,过去18个月中,AI已经承担了他80%的初始代码编写工作,而他则专注于架构设计和代码审查。文章强调了将AI视为“不会学习的初级开发者”的成功心态,并分享了他从手动编码到AI辅助编程的四个职业阶段转变,每个阶段的过渡速度都在加快。最终,他通过Claude Code实现了对AI的全面委托,这一转变仅用了几个小时。
文章总结
标题:首次尝试95%是垃圾:一位资深工程师与Claude Code的六周之旅
在过去的18个月里,我从亲自编写每一行代码,转变为如今AI负责80%的初始实现,而我则专注于架构设计、代码审查以及同时推进多个开发任务。这篇文章并非关于“AI将改变一切”的泛泛之谈,而是深入探讨了将AI整合到生产开发流程中的实际挑战:哪些方法有效,哪些浪费时间,以及为何将AI视为“不会学习的初级开发者”成为我成功的关键思维模式。
我的代码问题解决方法的四次转变
- 前5年:通过阅读书籍和SDK文档学习。
- 接下来的12年:依赖谷歌搜索获取众包答案。
- 过去18个月:使用Cursor进行AI辅助编程。
- 最近6周:全面委托Claude Code进行AI编程。
每次转变的速度都比前一次更快,而转向Claude Code仅用了几个小时就让我进入高效状态。
当前的工作流程
我主要将AI用作“思考伙伴”,与它一起协作,最终生成生产代码。通常需要三次尝试才能得到可用的代码:
- 首次尝试(95%垃圾率):Claude了解系统背景,我识别实际挑战,生成的代码通常完全错误。
- 第二次尝试(50%垃圾率):Claude理解细节,我定义了具体方法,但仍有半数代码不可用。
- 第三次尝试(最终可用):Claude实现了一个可以迭代和优化的版本,我不断审查和调整,这成为我们的起点,而非最终代码。
上下文问题及其解决方案
AI无法在会话之间保留学习内容,因此每次对话都从零开始。我的解决方案是创建项目特定的上下文文件(Claude.md),包含架构决策、代码库中的常见模式、陷阱和解决方法,以及相关文档链接。此外,通过工具集成,AI可以连接到Linear、Notion、Canvas、非生产数据库和GitHub,获取更多背景信息。
管理多个AI“开发者”
我现在并行运行多个Claude实例,就像管理一个每天重置记忆的小型开发团队。关键策略包括:不在同一问题空间并行化、在Linear中跟踪所有内容、明确标记人工编辑的代码。
三步审查流程
- Claude先审查:捕捉缺失的测试覆盖、发现明显错误、提出改进建议。
- 我审查关键部分:确保代码库可维护、架构决策合理、业务逻辑正确、集成点良好。
- 团队正常审查:他们通常不知道哪些代码是AI生成的,但质量标准保持不变。
早期实验与背景代理
我们正在测试通过Slack触发的代理,使用Cursor处理简单任务。虽然目前存在一些限制,如无法访问私有NPM包、绕过正常跟踪等,但潜力巨大,未来可能让代理在夜间处理积压的小任务。
实际成本与收益
我的Claude Code使用成本占公司支付我月薪的相当比例,但带来的回报是:我以2-3倍的速度交付功能,能够同时管理多个开发任务,且无需在样板代码和重复代码上浪费时间。
常见问题与挑战
- 学习问题:AI不会从错误中学习,需要反复修复相同的误解。
- 信心问题:AI自信地编写有问题的代码,尤其是在复杂状态管理、性能关键部分和安全敏感代码中。
- 上下文限制问题:大型代码库会超出AI的上下文窗口,需要将问题分解并提供聚焦的上下文。
从代码到问题的情感转变
最难的部分是放弃对代码的所有权,但这种剥离实际上非常解放:更快删除不良解决方案、更客观的代码审查、重构时零自我。如果明天出现更好的AI工具,我会立即切换。代码并不珍贵,我们解决的问题才是。
给技术领导者的建议
- 让工程师测试不同的AI解决方案:AI辅助编程是一项需要练习的技能。
- 从最重复的任务开始:这是AI立即发光的地方。
- 为实验预留预算:第一个月会很混乱。
- 调整审查流程:AI代码需要不同的审查方式。
- 记录一切:良好的上下文是效率的倍增器。
未来并非AI取代开发者,而是开发者更快地工作,创造更好的解决方案,并利用最佳工具。选择一个小的、定义明确的功能,给AI三次尝试实现它的机会,像指导初级开发者一样审查输出。无需大规模变革,只需一次尝试、三次迭代和诚实的审查。
评论总结
评论内容总结:
迭代式开发与代码质量
- furyofantares 提出了一种迭代式开发方法,先通过初步提示生成代码,再通过多次迭代优化代码质量。
- 引用:“I start by putting a little effort into a prompt and into providing context, but not a ton - and see where Claude Code gets with it.”
- 引用:“Then I revert everything else and start with a totally blank context, except that file.”
- swframe2 强调通过分步实现和测试来避免垃圾代码。
- 引用:“Don’t ask for large / complex change. Ask for a plan but ask it to implement the plan in small steps.”
- 引用:“Ask the model to write code to visualize the problem and solution.”
- furyofantares 提出了一种迭代式开发方法,先通过初步提示生成代码,再通过多次迭代优化代码质量。
AI辅助编程的效率与局限性
- lordnacho 分享了使用Claude进行高效编程的经验,认为AI可以显著改变工作方式。
- 引用:“I just keep an eye on what it tries, and it’s completely changed how I code.”
- 引用:“I can be sitting in a meeting while I tell Claude what to do.”
- resonious 则认为AI在架构设计上表现不佳,更适合处理基础任务。
- 引用:“I always build the foundation. That way I know how things work fundamentally.”
- 引用:“They’re really good at following suit, but very bad at architecture.”
- lordnacho 分享了使用Claude进行高效编程的经验,认为AI可以显著改变工作方式。
代码审查与团队协作
- dakiol 提出了AI生成代码后如何进行代码审查的问题,认为大规模代码变更难以审查。
- 引用:“You don’t want to submit dozens of file changes because nobody would review it.”
- 引用:“It’s way easier to let the agent code the whole thing if your prompt is good enough.”
- block_dagger 对从Cursor切换到Claude的原因表示好奇,认为Cursor在处理大型代码库时更优。
- 引用:“Curious about what they can do with Claude that can’t be done with Cursor.”
- 引用:“I find Cursor to be superior for the very large codebases I work in.”
- dakiol 提出了AI生成代码后如何进行代码审查的问题,认为大规模代码变更难以审查。
成本与AI采用
- albingroen 和 rester324 对AI工具的高成本表示担忧,认为在许多国家或公司中难以获得预算支持。
- 引用:“So we’re supposed to start paying $1k-$1,5k on top of already crazy salaries?”
- 引用:“Maybe in the US most companies are willing to allocate you 1000 or 1500 USD/month/engineer.”
- albingroen 和 rester324 对AI工具的高成本表示担忧,认为在许多国家或公司中难以获得预算支持。
AI的实际应用范围
- ale 质疑AI工具的实际应用范围,认为其目前仅限于简单的重构和模板任务。
- 引用:“What kind of staff engineer has ‘80% of their code’ written by a ‘junior developer who doesn’t learn’?”
- 引用:“These agents are supposedly parallelizing a lot of the work.”
- ale 质疑AI工具的实际应用范围,认为其目前仅限于简单的重构和模板任务。
总结:评论中既有对AI辅助编程效率的肯定,也有对其局限性和成本的担忧。迭代式开发、分步实现和代码审查是讨论的焦点,同时AI在架构设计和高成本问题上的局限性也引发了广泛讨论。