YC大佬分享的 10 个 vibe coding技巧,看完收获巨大
那在这个过程中 AI 其实会产生非常多冗余的代码,最好的办法是先搞清楚解决方案是怎么样的,然后把代码回退到上一个版本,最后把解决方案应用到这个稳定版本上,这样你的项目就会少非常多的垃圾代码。有的时候 GitHub 上会有已经写好的功能代码,我们可以直接拿过来用,然后我们在一个完全干净的代码库中把要开发的功能开发好了之后,再让原项目参考我们刚刚开发好的代码,完成最终功能的实现。你可以把它作为一个独立
1、当 AI 卡住的时候切换战场。
问题:
当你在使用 cursor
claude code
这样的 AI 编程工具,在编程的时候,如果遇到 AI 无法实现某个功能或者无法修复某一个错误,并且反复尝试都失败(陷入逻辑死循环)
技巧:
这时候就不要在工具里面死磕了,直接复制你的代码和问题,打开大语言模型的官方网页版(比如 ChatGPT),把代码和问题直接粘贴进去,再问一遍同样的问题。【gzh:和平本记】
通常 Web 界面能够提供在集成工具中得不到的、更具有创造性的解决方案。
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-codex
和 feature/login-claude
。
2️⃣ 在不同的分支上工作
在 feature/login-codex
分支上,让AI工具 Codex 来完成整个登录功能的开发,并提交代码。
然后切换到 feature/login-claude
分支,让 AI工具 Claude Code 用不同的方式实现同样的功能,并提交。
3️⃣ 完全隔离比较【gzh:和平本记】
现在,这两个实现版本被完全隔离在不同的分支里。开发者可以随时切换分支,完整地运行和测试这两个方案,进行深入比较。
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 讨论
-
项目的核心价值,目标用户、商业模式。【gzh:和平本记】
-
然后讨论项目的应用架构,比如 API 接口怎么设计?数据库怎么设计?
-
再然后跟 AI 讨论用户界面和 UI 设计
-
最后再讨论一些执行过程中的细节
把以上所有的讨论都整理到一份 MD 文件中,当你完成这份初稿之后,自己认真的在从头到尾看一遍,把那些你认为不需要或者不喜欢的内容给它删掉,比如针对一些特别复杂的内容,我们起步阶段就可以放弃开发。
以上的过程你和 AI 讨论的越细,你对产品的掌控感就越强,最后我们执行的时候也是参考这份 MD 文件去执行。
不少人使用 AI 编程的时候,会先让 AI 生成一个需求文档,然后直接就让 AI 根据这份需求文档去生成代码。这种方式也可以,但是对项目整体的掌控感就会相对来说弱一点。因为 AI 针对需求去开发,那 AI 具体怎么去实现,对你来说相当于是黑盒。
5、使用版本控制
很多的 AI 编程工具都有回退功能,但是最专业、最好用的还是 Git。
每次开始开发一个新功能的时候,都要确保从一个稳定的、干净的 Git 版本开始,这样,万一 AI 突然发疯,你可以直接恢复到上一个稳定版本。
有的时候你开发一个新功能或者修复一个 bug,你需要跟 AI 来回拉扯四五轮,最终才能把这个问题搞定。
那在这个过程中 AI 其实会产生非常多冗余的代码,最好的办法是先搞清楚解决方案是怎么样的,然后把代码回退到上一个版本,最后把解决方案应用到这个稳定版本上,这样你的项目就会少非常多的垃圾代码。
6、编写测试
你可以直接让 AI 帮你写测试,AI 在这方面很擅长,但是他们大部分生成的都是单元测试。
但是更推荐让 AI 去编写高层级的测试。【gzh:和平本记】
什么是高层级的测试?举个例子:
1)模拟用户真实行为
模拟一个真实用户如何与你的网站或者应用交互。比如测试一个用户从注册登录到浏览商品,最终下单支付的整个过程。而不是单独测试去验证邮箱是否正确这样的一个单元测试
2)端到端的功能验证
确保整个功能链条从头到尾是畅通的,能从头到尾正常工作。这种测试不关心内部某个函数的具体实现细节,只关心整体功能是否到达预期效果。
3)捕捉意外副作用
AI 在修改代码的时候,常常会无缘无故的修改其他毫不相关逻辑的代码。
如果只有单元测试,你可能无法发现这种跨模块的、意料之外的错误。而高层级的集成测试,因为它测试的是完整的用户流程,所以当 AI 无意中破坏系统中某个功能的时候,这个测试就会运行失败,能帮你提早发现问题。
7、处理非编码任务
AI 编程工具除了可以写代码之外,你还可以用它来处理一些非编码任务。
比如已经有人用 claude code 去发 Twitter 发小红书。AI 在这方面也很强,不要忘记他在这方面的功能。
8、bug 修复
对于一些比较复杂的 bug,可以让大模型先列出3~4种修复方案或者 bug 引起的原因。然后再让他写代码去修复。
当你遇到一个 bug,修复多次都没有能修复成功的时候。失败一次你就把代码回退一次,然后重新尝试修复。这样你的项目不会积累一层又一层的垃圾代码。【gzh:和平本记】
9、关于文档
如果你在开发过程中需要让 AI 参考一些文档,虽然可以通过一些 MCP 工具去访问在线文档,但是如果你发现 AI 理解不准确的时候,可以把在线文档下载下来,直接放到项目的文档目录,本地化的文档更容易让 AI 去理解。
10、关于复杂功能
如果你开发一个新功能,但是这个功能实现起来非常的复杂。你可以把它作为一个独立的项目,在完全干净的代码库中进行开发,等开发好了之后,再让 AI 参考你开发的这个代码,去完成你需要的功能。
有的时候 GitHub 上会有已经写好的功能代码,我们可以直接拿过来用,然后我们在一个完全干净的代码库中把要开发的功能开发好了之后,再让原项目参考我们刚刚开发好的代码,完成最终功能的实现。
更多推荐
所有评论(0)