完全同意 Canva CTO 对于 Vibe Coding 的评价:
---
不,你不可能靠 Vibe Coding 一路写到生产环境。
至少,如果你真正关心代码的质量、安全性、稳定性,以及长期的大规模维护,这种方式是绝对行不通的。
“Vibe Coding”这个概念最近由前OpenAI联合创始人Andrej Karpathy提出,它指的是一种利用AI辅助编程的方法:开发者只关注反复调整提示词(Prompt),以期快速得到想要的代码输出,却很少关心大语言模型(LLM)实际生成代码的具体实现细节。
在Canva,我们基于长期广泛的测试和评估发现,目前所有AI代码助手所生成的代码,都必须由经验丰富的工程师严格监督,特别是在生产任务中更是如此。工程师们需要全程引导、审查、修正这些AI生成的代码,并承担起完全的代码所有权,像自己亲手写下每一行一样认真负责。我们的持续试验表明,这些AI工具生成的代码中总是存在各种问题,小到代码风格不一致,大到产生错误、存在安全漏洞或性能低下,甚至会带来严重的安全隐患。
Canva的工程文化是建立在代码所有权与同行审查(Peer Review)之上的。采用AI代码助手并没有动摇这些原则,反而强化了它们的重要性。我们实施了严格的“人为监督”(Human in the Loop)机制,对所有AI生成代码进行彻底同行审查,确保开发者始终拥有对代码真正而全面的理解和掌控。
“Vibe Coding”在生产开发中可能带来明显风险:
- 短期风险:引入缺陷和安全漏洞。
- 中长期风险:导致代码难以维护,技术债务堆积,整体系统的可理解性大幅降低。
从文化角度来看,“Vibe Coding”直接冲击了同行审查制度。如果允许从单一提示就产生大量代码,这无异于对审查人员发起了一场“拒绝服务攻击”(DoS),大量代码涌入会完全超出审阅者的评估能力,令审查流于形式。
目前,我们只发现一种非常明确且狭窄的应用场景适合“Vibe Coding”:技术探索、概念验证(POC)和原型开发。这类代码本来就是一次性的,用完即弃。借助AI工具快速生成代码能极大提高效率,让我们迅速验证并测试新的创意,但我们始终不会让这种代码进入正式生产流程。
当然,随着LLM能力和上下文窗口的持续扩大,我们也在不断重新评估对AI输出内容的信任程度。但我们始终坚持一点:经验丰富的工程师必须在AI生成代码的使用中发挥关键作用,这一原则是我们对可靠的软件工程的绝对信念,短期内不可能动摇。
点击图片查看原图