初始状态:探索与验证
去年十一月初次接触 Vibe Coding 时,我主要利用 Cursor 来快速实现和验证创意。那时的工作流非常直观,核心在于“AI 生成,人工兜底”。
我依然保持着细致的 Code Review 习惯,当时的开发闭环大致如下:
graph LR
A(提出想法) --> B[AI 编码]
B --> C[程序运行]
C --> D{发现 Bug?}
D -- 是 --> E[让 AI 修复]
E --> C
D -- 否 --> F(开发完成)
F --> G[人工 Code Review]
人到中年 遇到瓶颈,力不从心
随着项目深入,AI 生成的代码量呈指数级增长,完全碾压了我人工编写的速度。很快,我发现了一个严峻的问题:我甚至很难在有限时间内读完 AI 生成的代码
当时很多平台都有人遇到类似的问题,当时大家比较热衷使用 多 Agent 编排 来解这个问题。最初我尝试跟随主流方案,使用多个 Agent 甚至调用不同模型来交叉审阅代码,但是 效果不及预期。我觉得这还挺反直觉的:Token 消耗剧增,成本飙升,但代码质量的提升却非常有限。
现在的状态:回归 TDD 思维
现在我用类似 TDD 的思路来驾驭 AI,感觉效果暴增。
针对新项目或新创意,在让 AI 动手写代码之前,我强制自己先完成以下“前置思考”步骤:
- 明确目标: 先想清楚最终想要达到的效果是什么。
- 界定边界: 厘清各个功能之间的边界在哪里。
- 划分模块: 给各个功能划分出明确的物理或逻辑边界。
- 梳理关系: 明确各个功能模块之间的组织与依赖关系。
- AI 生成用例: 基于以上四点,让 AI 先生成一份测试用例文档。
- 人工修正: 针对 AI 生成的测试用例进行人工补充和修正,确保逻辑严密。
- 任务布置: 给 AI 布置具体任务,并设立硬性指标——每次生成的代码必须能跑通所有测试。
我不确定这种使用方式是否算某种局部最优解,但在实际体感上,这种 测试先行 的模式确实speed up了我日常的开发工作,大部分时候AI生成的代码可以稳定地run起来。
新的问题
除了项目开发以外,平时还会有一些模型训练的工作,在这个case下,我感觉这种TDD的思路有点拉闸——通过某些指标是可以judge一次训练是否是ok的,但是很难去juedge这一次生成的代码是否符合我想它验证的猜想。
举个例子:
我想验证在loss中加入某个指标是否能提升视频生成的一致性,直接让AI做了代码实现。整个过程都很正常,它会自己识别一些问题让我做选择,训练也正常run起来了,但是我发现指标一点变化都没有,我觉得很奇怪,最后发现 AI 竟然把这个指标加在了 no_grad 里…
Vibe Coding真是让我又爱又恨。。。期待各位佬能一起分享下使用经验,一起看看有没有更好的使用方法,让 工作 摸鱼效率更上一层楼