17611538698
info@21cto.com

经过两年的“氛围编码”练习,我又开始手写代码了

图片

各位开发者们,想必大多数人接触人工智能编程的旅程都是从一个这样类似的开始:

你给它一个简单的任务,它给做完了。

你很是佩服它,于是你给它一个更大的任务,它又做完了,你更加佩服它。

你打开编辑对话框,然后写一篇关于工作岗位流失的长篇大论文章。

如果你坚持看到这里:恭喜你,你比 99% 的人更加了解人工智能编程。

图片

真正使用人工智能进行实际工作(而不仅仅是周末项目)的软件工程师,其人工智能开发过程也大多遵循可预测的发展轨迹。

你仍然对交给它的艰巨任务感到惊讶,不禁想知道是否可以继续给它布置越来越大的任务。或许还可以让它承担那项无人愿意接手的棘手重构工作?

但事情到这里开始有点变得“扑朔迷离”。

一方面,你会惊讶于它似乎非常了解你。另一方面,它也会犯一些令人沮丧的错误,做出一些明显违背你们之间已建立的共识约定。

你很快就会发现,对大语言模型生气没有任何用处,所以你开始将任何不令人满意的结果内化。

“是我的错。我的提示语写得太糟糕了,说明不够详细。”

“只要我能提出要求,它就能做到。没有做不到的,”你心里会这样想。

于是你打开 Obsidian,开始撰写更详尽的规格文档,用令人印象深刻的细节描述你脑海中的功能。也许你已经写完了一整页的提示信息,为此花了大半个小时。

但你会发现,基于规范的开发似乎也行不通。

在现实生活里,设计文档和规范都是动态的,它们会随着探索和实现而不断演变。试想一下,如果你在一家真实的公司里,花一个小时写了一份复杂架构的设计文档,把它交给一位中级工程师(并叮嘱他不要跟任何人讨论这份文档),然后就跑去度假了。

这样智能体不仅无法在构建底层组件的过程中,历经数周时间逐步完善规范,而且还会在初期做出一些之后不会偏离的决定。大多数智能体一旦感觉问题和解决方案已经超出自身掌控,就会选择放弃(尽管这种情况现在很少发生,因为智能体会强行突破迷宫的障碍)。

更糟糕的是,智能体编写的代码在编写与展示给你的时候看起来合情合理,也很令人印象深刻。即使在拉取请求中,它看起来也很不错。

因为你和智能体都接受过良好的训练,知道一个“漂亮的”拉取请求应该是什么样的。

直到我打开了整个代码库,从头到尾阅读了它的最新状态,我才开始明白我们之前推测和希望,只是早期模型逐渐消失的产物:非常粗糙。

再严重点,那简直就是一团糟。

我百思不得其解。难道我在承认之前没有逐行检查过代码吗?这些……垃圾……到底是从哪儿来的?

现在回想起来,这很有道理。AI 代理编写的变更单元单独来看都很好,它们自身与你的提示语保持一致。但他们并不尊重整体,他们也不尊重架构的完整性,甚至连相邻的模式也不尊重。

人工智能只是给我讲了一个不错的故事。

就像用直觉创作小说一样,它给我展示了几个段落,这些段落逻辑清晰,结构和语法也完全正确。甚至连各个角色的性格特点都捕捉到了。但不知为何,当你读完整章之后,却发现它一团糟,它与整本书以及前后章节的上下文完全不符合规则。

在阅读了几个月积累的大量高度规范的智能体代码后,我对自己说:我不会再发布这种垃圾。我也不会向用户收费。我也不会承诺用户能用这玩意儿保护他们的数据。

我不会在这件事上对用户撒谎。

所以我又开始手写大部分的东西了。令人惊讶的是,如果把所有成本都算进去,而不仅仅是每小时的代码代币成本,我的速度、准确度、创造力、生产力和效率都比人工智能要高得多。

作者:atmoio

编译:洛逸

来源:

https://atmoio.substack.com/p/after-two-years-of-vibecoding-im

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信