1、当 AI 卡住的时候切换战场。

问题:

当你在使用 cursor claude code 这样的 AI 编程工具,在编程的时候,如果遇到 AI 无法实现某个功能或者无法修复某一个错误,并且反复尝试都失败(陷入逻辑死循环)

技巧:

这时候就不要在工具里面死磕了,直接复制你的代码和问题,打开大语言模型的官方网页版(比如 ChatGPT),把代码和问题直接粘贴进去,再问一遍同样的问题。

通常 Web 界面能够提供在集成工具中得不到的、更具有创造性的解决方案。【gzh:和平本记】

2、并行使用多种AI工具

问题:

不同的 AI 模型各有优劣,有的速度快,有的思考的深入,有的前端界面做的好看。

技巧:

1)利用不同工具的特性

那你可以在同一个项目上同时启动多种 AI 编程工具。利用不同工具的特性来提供效率。

比如说你现在有 ABC 三个功能。当你完成 A 功能的开发,准备 B 功能开发的时候,我们知道 claude code 非常擅长开发前端 UI 界面,Codex 擅长 review 代码。

那此时你就可以让 claude code 去开发 B 功能的前端界面,同时让 Codex 去 review 刚开发完的 A 功能的代码。

2)提高时间利用率

当 claude code 在开发大功能模块的时候,为了避免等待,你就可以使用 cursor 或者 augment 去小修小补。

3)生成不同方案进行比较

这种就更绝了,针对同一个需求,让不同的 AI 编程工具分别去实现,最后看哪个工具实现的好,就留哪一个版本。

怎么做?

比如我们现在想对比一下,针对同一个需求,claude code 和 Codex 哪一个实现方案更好?

1️⃣ 创建分支

从主开发分支(如 develop)上,创建两个新的实验分支,例如 feature/login-codexfeature/login-claude

2️⃣ 在不同的分支上工作【gzh:和平本记】

feature/login-codex分支上,让AI工具 Codex 来完成整个登录功能的开发,并提交代码。

然后切换到 feature/login-claude 分支,让 AI工具 Claude Code 用不同的方式实现同样的功能,并提交。

3️⃣ 完全隔离比较

现在,这两个实现版本被完全隔离在不同的分支里。开发者可以随时切换分支,完整地运行和测试这两个方案,进行深入比较。

4️⃣ 合并最优解

当决定哪个版本更好后,可以将那个分支(比如 feature/login-codex)合并回主开发分支,然后将另一个实验分支 (feature/login-claude) 删除。

3、采用测试驱动的编程方法

问题:

AI 在写代码的时候,最大的一个问题就是他可能会随意发挥,给出来的结果很有可能不是你想要的,或者跟你预期的有差距。

技巧:

我们采用测试先行,先定义好成功的标准,再让 AI 去实现。

首先,编写详细的测试用例(Test Cases)。一旦高质量的测试用例准备就绪,就相当于为AI设定了强有力的规则或护栏 。

AI可以在这些明确的约束下自由地生成代码,其目标就是通过这些预设的测试。

当 AI 生成的代码能够让所有测试用例显示为绿色(即全部通过)时,开发工作就完成了。

4、与 AI 协作先制定详细的计划

如果你之前写过代码,或者对代码稍微有点了解,那你可以直接从cursor、 claude code 上手。

当你选好编程工具之后,第一步不是立刻开始写代码,而是和大语言模型一起先制定一个全面的计划,然后把它保存成 MD 文件,放到项目的文档目录下面,这样你可以随时回过头来参考。

要产出这份文档,需要你自己先整理一份结构化讨论框架,通过这份结构化讨论框架,你可以跟 AI 去进行讨论,把产品从想法到落地,这中间的过程落到一份文档中,然后按照这份文档去进行实施。

解释一下这里的结构化讨论框架:

因为你想要做一个产品,一开始可能只有一个模糊的想法,那你不可能跟 AI 东一句西一句的讨论,这样最后只能得到漫无目的的碎片。

你需要遵循一定的框架,一步一步循序渐进的跟 AI 讨论。逐渐把一个想法落地成一个产品。

比如说你需要先和 AI 讨论

  • 项目的核心价值,目标用户、商业模式。
  • 然后讨论项目的应用架构,比如 API 接口怎么设计?数据库怎么设计?
  • 再然后跟 AI 讨论用户界面和 UI 设计
  • 最后再讨论一些执行过程中的细节

把以上所有的讨论都整理到一份 MD 文件中,当你完成这份初稿之后,自己认真的在从头到尾看一遍,把那些你认为不需要或者不喜欢的内容给它删掉,比如针对一些特别复杂的内容,我们起步阶段就可以放弃开发。

以上的过程你和 AI 讨论的越细,你对产品的掌控感就越强,最后我们执行的时候也是参考这份 MD 文件去执行。

不少人使用 AI 编程的时候,会先让 AI 生成一个需求文档,然后直接就让 AI 根据这份需求文档去生成代码。这种方式也可以,但是对项目整体的掌控感就会相对来说弱一点。因为 AI 针对需求去开发,那 AI 具体怎么去实现,对你来说相当于是黑盒。

5、使用版本控制

很多的 AI 编程工具都有回退功能,但是最专业、最好用的还是 Git。

每次开始开发一个新功能的时候,都要确保从一个稳定的、干净的 Git 版本开始,这样,万一 AI 突然发疯,你可以直接恢复到上一个稳定版本。

有的时候你开发一个新功能或者修复一个 bug,你需要跟 AI 来回拉扯四五轮,最终才能把这个问题搞定。【gzh:和平本记】

那在这个过程中 AI 其实会产生非常多冗余的代码,最好的办法是先搞清楚解决方案是怎么样的,然后把代码回退到上一个版本,最后把解决方案应用到这个稳定版本上,这样你的项目就会少非常多的垃圾代码。

6、编写测试

你可以直接让 AI 帮你写测试,AI 在这方面很擅长,但是他们大部分生成的都是单元测试。

但是更推荐让 AI 去编写高层级的测试。

什么是高层级的测试?举个例子:

1)模拟用户真实行为

模拟一个真实用户如何与你的网站或者应用交互。比如测试一个用户从注册登录到浏览商品,最终下单支付的整个过程。而不是单独测试去验证邮箱是否正确这样的一个单元测试

2)端到端的功能验证

确保整个功能链条从头到尾是畅通的,能从头到尾正常工作。这种测试不关心内部某个函数的具体实现细节,只关心整体功能是否到达预期效果。

3)捕捉意外副作用

AI 在修改代码的时候,常常会无缘无故的修改其他毫不相关逻辑的代码。

如果只有单元测试,你可能无法发现这种跨模块的、意料之外的错误。而高层级的集成测试,因为它测试的是完整的用户流程,所以当 AI 无意中破坏系统中某个功能的时候,这个测试就会运行失败,能帮你提早发现问题。

7、处理非编码任务

AI 编程工具除了可以写代码之外,你还可以用它来处理一些非编码任务。

比如已经有人用 claude code 去发 Twitter 发小红书。AI 在这方面也很强,不要忘记他在这方面的功能。

8、bug 修复

对于一些比较复杂的 bug,可以让大模型先列出3~4种修复方案或者 bug 引起的原因。然后再让他写代码去修复。【gzh:和平本记】

当你遇到一个 bug,修复多次都没有能修复成功的时候。失败一次你就把代码回退一次,然后重新尝试修复。这样你的项目不会积累一层又一层的垃圾代码。

9、关于文档

如果你在开发过程中需要让 AI 参考一些文档,虽然可以通过一些 MCP 工具去访问在线文档,但是如果你发现 AI 理解不准确的时候,可以把在线文档下载下来,直接放到项目的文档目录,本地化的文档更容易让 AI 去理解。

10、关于复杂功能

如果你开发一个新功能,但是这个功能实现起来非常的复杂。你可以把它作为一个独立的项目,在完全干净的代码库中进行开发,等开发好了之后,再让 AI 参考你开发的这个代码,去完成你需要的功能。

有的时候 GitHub 上会有已经写好的功能代码,我们可以直接拿过来用,然后我们在一个完全干净的代码库中把要开发的功能开发好了之后,再让原项目参考我们刚刚开发好的代码,完成最终功能的实现。

YC大佬分享的 10 个 vibe coding技巧,看完收获巨大的更多相关文章

  1. 10个jQuery小技巧

    收集的10个 jQuery 小技巧/代码片段,可以帮你快速开发. 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. $('a.top' ...

  2. 提升你的开发效率,10 个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...

  3. 人人必知的10个jQuery小技巧

    收集的10个 jQuery 小技巧/代码片段,可以帮你快速开发. 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. // Back t ...

  4. 偏执却管用的10条Java编程技巧

    本文由 ImportNew - LynnShaw 翻译自 javacodegeeks.欢迎加入翻译小组.转载请见文末要求. 经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得 ...

  5. 10个CSS简写技巧让你永远受用

    转自:http://blog.bingo929.com/10-css-shorthand-tips.html 前言: CSS简写就是指将多行的CSS属性声明化成一行,又称为CSS代码优化.CSS简写的 ...

  6. 10个 jQuery 小技巧

    10个 jQuery 小技巧 -----整理by: xiaoshuai 1. 返回顶部按钮 可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. // Bac ...

  7. Vim新手节省时间的10多个小技巧

    Vim新手节省时间的10多个小技巧 Vim 是很多开发者的首选编辑器,通过设置正确的命令和快捷方式,它可以帮你更快的完成工作.这篇文章我们为 Vim 新手提供一些快捷键等方面的小技巧,帮你提升工作效率 ...

  8. 人人必知的10个 jQuery 小技巧

    原文地址:http://info.9iphp.com/10-jquery-tips-everyone-should-know/ 人人必知的10个 jQuery 小技巧   收集的10个 jQuery ...

  9. 《死磕 Elasticsearch 方法论》:普通程序员高效精进的 10 大狠招!(完整版)

    原文:<死磕 Elasticsearch 方法论>:普通程序员高效精进的 10 大狠招!(完整版) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...

  10. 分享一个自己画div的技巧

    分享一个自己画div的技巧 笔者是小白,前端不是很懂.现在想总结下自己画div布局的小技巧和思路. 先对着设计图把div给好好框选出来 我个人觉得这一步是很重要的,要先分析大局,再细节处理.一定要先决 ...

随机推荐

  1. ado.net基础(一)

    什么是ado.net 使用.net技术操作数据库的一套类库. 命名空间 system.data:描述数据的命名空间 system.data.sqlclient:专门针对sqlserver的命名空间 四 ...

  2. mac os清除U盘分区

    起因 在window下把u盘搞成装机系统启动盘了想再mac下恢复u盘实际容量,怎么办因为装成系统盘后,mac用 磁盘工具显示的容量很小,只有几十MB.正常情况下 用任何一款pe(老毛桃.大白菜)都可以 ...

  3. 使用密钥登录Linux服务器

    我使用的是Xshell生成密钥,再上传到Linux服务器上的. 到工具标签栏,选择[新建用户密钥生成向导] 设置密钥的密码 最后将其保存为文件就好了. ======================== ...

  4. iga 入门之 有限元解题步骤

    简介 摘自 流体力学数值方法 步骤 写出积分表达式 根据变分原理或方程余量与权函数正交化原理,建立起微分方程初边值问题等价的几分表达式.这和Ritz-Galerkin法解题时的第一步是完全一致的,即写 ...

  5. Skill Discovery | LGSD:用描述 state 的语言 embedding 的距离,作为 metra 的 d(x,y) 距离约束

    ICLR 2025,8 8 6 6 poster. arxiv:https://arxiv.org/abs/2406.06615 pdf:https://arxiv.org/pdf/2406.0661 ...

  6. POLIR-Society-Organization-Communication: 交流: 组织/社会化的沟通: 首先确定对方姓名+Role/身份+判断其目的、立场和认知

    要用适合沟通对方的Role/身份,容易理解和舒服的方式,达成我们的目标 POLIR-Society-Organization-Communication: 交流: 组织/社会化的沟通: 首先确定对方 ...

  7. Linguistics-English-区分 that Vs. which + 定语(refine限定主句)从句 Vs. 同位语(expand扩展补充主句)从句

    英语的"语法"适配"含义" 英语是一门语言,有丰富的含义: "语法结构" 是与 "含义"适配使用的,而不只是背语法规则: ...

  8. SciTech-Mathmatics-Advanced Algebra-LinearAlgebra: 矩阵的相抵、相似与合同

    https://www.math.pku.edu.cn/teachers/baozq/algebra/alg1.htm 矩阵的相抵.相似与合同 基本概念: 相抵, 相抵标准形 相似, 对角化, 迹, ...

  9. 题解:Luogu-P8624 [蓝桥杯 2015 省 AB] 垒骰子

    复习了一遍矩阵快速幂,感谢 @naroto2022 的讲课和分享的好题. 本题是一道动态规划结合矩阵加速的好题. 读完题考虑设计状态,记 \(f_{i,j}\) 为第 \(i\) 个骰子点数 \(j\ ...

  10. 领域驱动设计(DDD)在分布式系统中的架构实践

    在分布式系统设计中,随着业务复杂度提升,传统 "面向技术" 的架构设计难以应对业务变化.领域驱动设计(Domain-Driven Design, DDD) 以业务领域为核心,通过建 ...