36氪 - 科技频道 08月25日
AI 辅助编程在大型科技公司中的实践与争议
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了“氛围编程”这一新兴编程方式在大型科技公司(如FAANG)中的应用情况。一位拥有十年经验的AI软件工程师分享了其在公司内使用AI辅助开发产品的流程,强调了从详细设计文档、代码评审到测试驱动开发(TDD)的重要性。该流程引发了关于其是否真正属于“氛围编程”的讨论,以及AI生成代码在生产环境中实际占比的质疑。尽管存在争议,但这种结合了AI的严谨流程被认为是AI应用的最佳实践,突显了人类在设计、规范和测试中的核心价值,并可能揭示了大型科技公司研发效率的潜在瓶颈。

🧰 AI辅助开发流程强调以严谨的设计文档为基础,这是整个工作流程的起点。在开发之前,需要进行充分的设计评审,确保架构、集成方案等得到高级工程师的认可,以期减少后续开发过程中的阻碍。

💻 在软件开发阶段,采用测试驱动开发(TDD)是关键。具体做法是先让AI编程智能体为待实现的功能编写测试用例,然后工程师再利用该AI智能体来构建实际功能。这一步骤旨在确保代码的质量和可测试性。

👍 尽管AI在代码生成方面发挥作用,但整个流程仍包含大量人为环节,如设计评审、任务拆分、代码提交审核等。这引发了关于这种模式是否严格符合“氛围编程”定义的争论,以及AI在生产环境中实际应用的程度。

💡 这种结合AI的开发模式被一些人视为AI应用的最佳实践,即先有详细的技术规格,再进行代码审查,并优先编写测试代码。工程师的价值更多体现在“设计、头脑风暴、编写规范、测试”等环节,即明确“需要编写什么代码”的问题。

氛围编程(vibe coding),这个由 Andrej Karpathy 带火的热词,已经成为了一种相当流行的编程方式。但这种编程方式的流行程度究竟如何,目前还没有什么比较可靠的统计数据。不过,近日的一篇 Reddit 热帖,却可以让我们窥见一些端倪:看起来,氛围编程可能比我们预想的更受欢迎,FAANG 等大型科技公司也不乏 vibe coder—— 虽然人们对这个工作流程算不算是氛围编程存在很大争议。

这篇帖子发布在 r/vibecoding,发帖者 u/TreeTopologyTroubado 自称是一位拥有十多年工作经验的 AI 软件工程师,并且其有一半的时间都是在 FAANG(即 Meta、亚马逊、苹果、Netflix 和 Alphabet 五大科技巨头)工作。他职业生涯前半段是系统工程师,而不是开发者,不过他现在已有 15 年左右的编程经验了。

然后,他分享了使用 AI 开发产品代码的方法。简单来说,就是始终从可靠的设计文档和架构开始,然后在此基础上逐步构建。始终先编写测试。

更具体而言:

    你仍然需要从技术设计文档开始。这是工作的主体。一开始,设计文档是一份提案文档。如果你能让足够多的利益相关者认同你的提案有价值,你就可以开始开发系统设计本身。这包括完整的架构、与其他团队的集成等等。 在开始开发工作之前进行设计评审。这指的是让高级工程师彻底揉碎评估团队的设计文档。这是个很好的做法。我认为这可以减轻开发过程中的痛苦。 如果通过审核,就可以开始开发工作了。最初的几周,我们会针对各个开发团队即将构建的各个子系统编写更多文档。 待办事项开发和冲刺规划。开发人员需要与项目经理和技术项目经理协作,确定各个开发人员需要处理的独立任务及其执行顺序。 软件开发。终于,我们可以拿起键盘,开始处理任务单了。这正是 AI 展现强大实力的地方。我们使用的方法是测试驱动开发(Test Driven Development),也就是让 AI 编程智能体先为要构建的功能编写测试。之后,我才会开始使用这个智能体来构建这个功能。 代码提交审核。在将代码合并到人工代码之前,我们会有两个开发人员进行审批。AI 在协助审核方面也展现出巨大的潜力。 在预发布版本中进行测试。如果预发布版本一切正常,我们就会将其推送到生产版本。

该帖在 Reddit 和 X 上都引起了广泛讨论。其中一个很大的讨论点是,FAANG 等大型科技公司竟然允许员工氛围编程!

即便谷歌曾宣称其现在大约一半的代码都是 AI 编写的,但这一说法也备受质疑,一些开发者还曾表示谷歌可能把自动代码补全的部分也算成 AI 生成的代码了,也有不少人质疑谷歌究竟在生产环境中部署了多少这些 AI 生成的代码。

不过,也有人认为,根据该帖子的描述,这个流程其实不能称之为「氛围编程」,因为其中依然有大量必须人类参与的环节 —— 这或许是该帖子最引人争议的地方。

Hyperbolic 联创 & CEO Yuchen Jin 也认为这样的工作流程对人类工作者来说很痛苦,不够 vibe。

同时,这也表明,即便有 AI 加持,大型科技公司繁琐的流程还是会拖延研发速度 —— 这似乎对独立创始人来说是好事。

尽管如此,也有不少开发者从中看到了可取之处。

比如开发者 Frank Lin 认为这可以成为使用 AI 的最佳实践,即详细的技术规格,在编程之前先审查解决方案,并首先编写测试代码。

而其中,编程是最轻松和乏味的阶段,工程师的价值则是体现在「设计、头脑风暴、编写规范、测试等」方面,也就是要弄清楚需要编写什么代码。

也有人分享了自己的经验。

对此,你怎么看?或者有什么经验与我们分享吗?

参考链接:

https://www.reddit.com/r/vibecoding/comments/1myakhd/how_we_vibe_code_at_a_faang/

https://x.com/Yuchenj_UW/status/1959661025319608603

https://x.com/rohanpaul_ai/status/1959414096589422619

本文来自微信公众号 “机器之心”(ID:almosthuman2014),编辑:Panda,36氪经授权发布。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

氛围编程 AI编程 大型科技公司 软件开发 Test Driven Development vibe coding AI development Big Tech Software Engineering TDD
相关文章