👀 最新、最有用的AI编程姿势,总来自「知识药丸」
《贾杰的AI编程秘籍》付费合集,共10篇,现已完结。30元交个朋友,学不到真东西找我退钱;)
以及我的墨问合集《100个思维碎片》,1块钱100篇,与你探讨一些有意思的话题(文末有订阅方式
几个月前,我还在用Cursor疯狂敲代码。
打开编辑器,输入一个模糊的prompt,看着AI生成一堆代码,然后花接下来一个小时修bug、处理各种幻觉(hallucination)——那些看起来对但实际上完全跑不通的代码。
净生产力提升:也就20%吧,有时候甚至是负的。
直到我在Reddit上看到这篇帖子:有个团队2.5个月写了40万行生产级代码。没错,生产级,不是demo,不是原型,是真正跑在用户面前的基础设施。
关键不在于模型本身有多强,而在于你怎么用这些工具。
我花了整整一周研究他们的工作流,试着在自己的项目上实践。结果?我的代码产出翻了3倍,而且质量反而更高了。
这篇笔记记录了我从那篇文章中学到的核心方法论,以及我实践后的一些感悟。
核心洞察:规划和验证才是瓶颈
先说个反直觉的发现:当你用AI写代码时,应该花更多时间在规划上,而不是更少。
为什么?
我们过去手写代码时,规划和实现是交织在一起的。你想一想,敲一敲,发现这个方案不行,重构,再想。这个过程很慢,但给了你充分的时间去思考。
但当你用上Claude Code或者Codex这样的AI代理(Agent)时,实现速度快到荒谬。
这意味着什么?你过去花在敲代码上的时间,现在全部压缩进了规划阶段。如果你的规划是错的,AI会以超人的速度把这个错误的计划完美执行出来。
那种感觉就像你在高速公路上开错了方向,越开越远,而且速度还是300公里/小时。
所以,反直觉的做法来了:花2-3倍于你预期的时间在规划上。AI会在另一端把时间补回来。
文章作者通常会花1-2小时写PRD(产品需求文档)、创建spec plan(实现规划),然后反复迭代,才开始写第一行代码。
步骤1:生成规划文档(别跳过这一步)
我现在的流程是这样的:
用Claude Code的CLI(命令行界面),先让它创建一个详细的实现计划。
我的prompt模板:
`<复制粘贴PRD>。探索代码库,创建一个spec-kit风格的实现计划。
把它写到 <feature_name_plan>.md 文件里。
在创建这个计划之前,先问我一些关于需求、约束条件或边缘情况的澄清问题。`
这里有两个致命重要的点:
1. 明确要求AI提问
不要让AI自己假设。你想让它把所有模糊的地方提前暴露出来。
类似这样的指令:"在创建这个计划之前,先问我一些关于需求、约束条件或边缘情况的澄清问题。"
我试过不加这句话,结果AI默默做了一堆假设,等我发现的时候已经走偏了老远。
2. 跨模型交叉审查
这是最强大的技巧,没有之一。
我会在Claude Code(Opus 4.5)和GPT 5.2-Codex之间切换,让每个模型评审另一个模型帮忙创建的计划。
它们能发现不同的问题。一个可能会标记架构问题,另一个会发现缺失的错误处理。而最有价值的,往往是它们产生分歧的地方。
我有时候甚至会把计划扔到Gemini或者网页版Claude里,看看它会怎么说。听起来很疯狂?但每次都能发现新问题。
每次一个AI指出计划中你认同的问题时,立刻修改计划,然后让另一个AI重新审查。
一个好的实现计划应该包含:
- • 要创建或修改的具体文件
- • 数据结构和接口定义
- • 具体的设计选择(为什么选A而不是B)
- • 每一步的验证标准
P.S. 刚开始我觉得这个流程太繁琐了。但当我第一次因为提前发现架构问题而省下一整天返工时,我就彻底信了。
步骤2:带验证循环的实现
这是大多数人掉链子的地方。
很多人让AI跑起来,然后在最后手动检查所有东西。这完全反了。
我的prompt:
按照 'plan.md' 里的计划实现。每完成一步后,运行 [验证循环], 确认输出符合预期。如果不符合,调试并迭代,然后再继续下一步。 每一步完成后,在计划文档里记录你的进度,同时记下实现过程中做的 任何设计决策。
后端代码的验证
在AI开始实现之前,先设置好执行脚本或集成测试。
让Claude在每次重大改动后自动运行这些测试。AI应该持续检查自己的工作,而不是等着你来审查。
这就像是给AI配了一个实时的质检员,而不是事后验收。
前端或全栈的验证
这里有个神器:Claude in Chrome。
AI能看到实际渲染出来的页面,而不只是它以为应该渲染的东西。视觉验证能抓到单元测试漏掉的问题。
实时更新计划
让AI在执行过程中记录设计选择,在spec里标记进度。
这很重要,原因有几个:
- • 你可以快速浏览决策,不用读所有代码
- • 如果你不认同某个选择,能立刻发现并叫停
- • 计划文档成为未来的参考资料
我每10分钟检查一次计划。当我看到不认同的设计选择时,立刻停止AI并重新prompt。让它继续意味着后面要花更多时间撤销工作。
这个习惯救了我无数次。有一次我让AI跑了半小时才去看,结果它选择的数据库schema跟我们的数据模型根本不兼容。那次我整整烧掉了一天。
步骤3:跨模型审查
实现完成后,别急着提交。
让Codex审查Claude写的代码。然后让Opus修复Codex发现的问题。
不同的模型有不同的盲点。能同时通过两个模型审查的代码,比只经过一个模型审查的要健壮得多。
我的prompt:
审查当前未提交的代码改动,对照 <plan.md> 里的计划。 用资深工程师的严谨态度,看看有没有正确性、性能或安全方面的问题?
模型很快。它们能找到的bug,你手动找要花10倍时间。
然后我会手动测试和审查。它真的按预期工作了吗?有没有测试覆盖不到的边缘情况?
通常要迭代2-3轮,花1-2小时,如果你够仔细的话。
人工审查代码
提交前审查所有改动,这是不可商量的。
我会读每一个AI动过的文件。不是为了抓语法错误(AI能处理),而是为了抓架构偏移、不必要的复杂度、或者未来会咬我们的模式。
AI很强,但它们没有关于代码库未来走向的全局视野。
完善spec
让AI用实际实现细节和设计选择更新计划。这是你的文档。
6个月后,当有人问"为什么这么设计",答案就在spec里。
步骤4:提交、推送,处理AI代码审查
标准git流程:commit和push。
然后花时间和你的AI代码审查工具打交道。
文章作者用的是CodeRabbit,一个AI驱动的PR审查工具,提供上下文感知的反馈、逐行代码建议和实时聊天。Bugbot和其他工具也可以。
这些工具能抓到和实现审查不同类别的问题:安全隐患、性能反模式、可维护性问题、你遗漏的边缘情况。
**别只是浏览评论就合并。**真正处理这些发现。
有些会是误报,但很多会是三轮AI审查都没抓到的真问题。修复它们,再次推送,重复直到审查通过。
然后合并。
实际案例:一个完整的工作流
让我给你看个真实的例子,看看这个流程实际上是什么样子的。
周一早上。我们需要为语义搜索添加一个新的agent session provider pipeline。
- • 9:00 AM: 用Codex CLI开始。"为agent session provider创建详细实现计划,它要解析Github Copilot CLI日志,提取结构化的session数据,并整合进我们的语义pipeline。先问我澄清问题。"
- • 9:20 AM: 回答Codex关于session解析格式、provider接口、session数据嵌入策略的问题。
- • 9:45 AM: 让Claude Opus审查计划。它标记出我们没有指定session提取失败或返回畸形数据时的行为。更新计划,加上错误处理和fallback行为。
- • 10:15 AM: 让GPT 5.2再审一遍。它建议我们需要对session摘要的LLM调用做限流。来回几轮,直到计划感觉很扎实。
- • 10:45 AM: 计划稳了。告诉Claude Code实现,用集成测试作为验证循环。
- • 11:45 AM: 实现完成。测试通过。检查spec里的设计选择。有一个关于如何切分长session的决策看起来不太对,但足够小,可以在审查时处理。
- • 12:00 PM: 开始跨模型审查。Codex标记了provider接口的两个问题。让Opus修复。
- • 12:30 PM: 手动测试和迭代。有一个边缘情况,畸形的时间戳表现很诡异。回到Claude Code调试。自己读一遍所有改动的文件。
- • 1:30 PM: 看起来都好了。提交并推送。CodeRabbit标记了一个input sanitization的安全隐患,还建议了一个更简洁的模式来处理提取失败的重试逻辑。两个都修了,再次推送。
- • 1:45 PM: 审查通过。合并。让AI用实际实现细节完善spec。
一个完整的功能,大约4-5小时。生产就绪。有文档。
手写的话?至少要2天。
这个流程的局限性
我不会假装这个工作流是无敌的。它有真实的限制。
冷启动新代码库
AI需要上下文。对于它们没见过的代码库,你得花大量时间喂它们文档、示例、架构上下文,它们才能有效规划。
我在一个新项目上试过,光是让AI理解项目结构就花了半天。
新颖架构
当你在做真正创新的东西时,AI是从训练数据的模式中插值。对于它们没见过的东西,帮助就少多了。
比如我最近在做一个自定义的状态同步协议,AI基本帮不上什么忙,因为这太特殊了。
调试微妙的问题
AI擅长抓明显的bug。微妙的竞态条件、性能回退、只在规模化时出现的问题?这些还是需要人类直觉。
我遇到过一个只在高并发下才会触发的bug,AI看了半天代码也没发现,最后还是我自己盯着日志找出来的。
过早信任
文章作者团队有一次烧了整整一天,因为他们让AI跑,没有检查它的spec更新。
AI做了一个听起来合理的设计选择,但从根本上与他们的数据模型不兼容。发现得太晚了。
这个教训我也学到了,而且是用血泪换来的。
核心要点
2.5个月写40万行代码,只有通过AI来压缩迭代循环才可能做到。
但这不是魔法。关键在于:
- • 更仔细地规划,想清楚每一个边缘情况
- • 持续验证,不要等到最后才测
- • 用多个模型审查,利用它们不同的视角
- • 自己审查代码,保持对全局的掌控
- • 信任,但要验证
那些在AI编码工具上胜出的开发者,不是那些prompt敲得最快的,而是那些意识到规划和验证阶段才是人类最有价值的地方的人。
P.S. 关于工具
顺便说一句,文章里提到的一些工具:
- • Claude Code: Anthropic的AI代理工具,开发者可以直接从终端与Claude协作,委托从代码迁移到bug修复的任务。最新的更新加入了LSP(语言服务器协议)支持、异步子代理、Ultrathink模式等强大功能。
- • Codex CLI: OpenAI的命令行编程工具,特别擅长代码审查和发现bug。
- • CodeRabbit: AI驱动的PR审查工具,提供上下文感知的反馈、逐行代码建议。它不只是分析改动的文件,而是评估这些改动对整个代码库的影响。
- • Claude in Chrome: 让Claude Code能控制你的浏览器,对前端开发特别有用。
总结
说实话,刚开始用这套流程时,我觉得太繁琐了。
"为什么我要花这么多时间规划?为什么要让这么多AI审查同一段代码?"
但当我第一次用这个方法在一周内完成了原本需要一个月的功能时,我就再也回不去了。
AI编码代理不是要取代我们,而是要放大我们的判断力。
我们提供方向,它们提供速度。我们把关质量,它们处理重复劳动。
这就是2025年写代码的方式。
适应它的人,会感觉像开了挂。不适应的人,会被远远甩在后面。
你选哪一个?
参考资料
- • Reddit原文:How to write 400k lines of production-ready code with coding agents
- • Claude Code官方文档
- • CodeRabbit官网
- • Anthropic关于构建AI代理的工程博客
坚持创作不易,求个一键三连,谢谢你~❤️
以及「AI Coding技术交流群」,联系 ayqywx 我拉你进群,共同交流学习~