← 最新论文
💻 computer science

Where Did the Variability Go? From Vibe Coding to Product Lines by Regeneration

本文提出了“通过再生实现变异性”(Variability by Regeneration, VbR),这是一种新颖的软件产品线方法,其中大语言模型(LLM)充当推导引擎,根据声明式规范在生成时生成专用的、无死代码的二进制文件,从而在 AI 驱动的“氛围编程”(vibe coding)时代,有效地将变异性管理从代码本身转向规范。

原作者: Xhevahire Tërnava

发布于 2026-06-19
📖 1 分钟阅读☕ 轻松阅读

原作者: Xhevahire Tërnava

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

以下是使用简单语言和日常类比对论文《变异性去哪了?》(Where Did the Variability Go?)进行的解释。

核心问题:无法更改的“魔法”代码

想象你雇佣了一位才华横溢的大厨(AI)来为你做饭。你告诉他:“我想要一份辣味意面。”他立刻为你端上了一盘完美、热气腾腾的辣味意面。

现在,想象你想改变主意说:“其实,我想吃微辣的。”在传统的烹饪方式中,你只需要要求大厨调整一下调料即可。但在这种新的烹饪风格(称为**“氛围编程/Vibe Coding”**)中,大厨不仅仅是调整调料,而是根据你的新需求,直接把第一盘菜扔掉,重新从头开始做一份全新的菜。

问题在于,第一盘辣味意面现在对你来说毫无用处。你无法把它变成微辣意面。它是一个“单一用途”的产物。如果你想要不同版本的软件,你每次都必须要求 AI 生成一个全新的文件。

发现:那些“选项”去哪了?

研究人员观察了 10 个以这种方式创建的软件项目。他们发现了一个令人惊讶的现象:“选项”消失了。

在传统的软件开发中,代码就像一把瑞士军刀。它内置了刀片、螺丝刀和开瓶器。你只需拨动开关(一个设置)即可使用你需要的工具。代码包含了所有工具,即使是你现在并不使用的工具。

但在“氛围编程”中,AI 并不是在制造一把瑞士军刀。它在制造一个单一用途的工具

  • 如果你要求一把刀,AI 就造一把刀。
  • 如果你要求一个螺丝刀,AI 就造一个螺丝刀。
  • “刀”的版本里面没有任何螺丝刀的零件,而“螺丝刀”的版本里也没有任何刀的零件。

研究人员称之为**“近乎零变异性”**。关于软件“是什么”的所有决策,都在 AI 编写代码的那一瞬间就做定了。一旦代码写好,它就被冻结了。不再有可以拨动的开关。

解决方案:“通过再生实现变异性”(VbR)

与其试图强迫 AI 去构建一个庞大、复杂的瑞士军刀(这会让代码变得混乱且难以理解),作者提出了一种处理此问题的新方法,称为通过再生实现变异性(Variability by Regeneration, VbR)

这就像是定制西装店百货商店的区别。

  • 传统方式(百货商店): 你买了一件西装,上面缝着多余的面料、不需要的纽扣以及你永远不会用到的口袋,只为了以后可以进行“配置”。它很沉重,充满了冗余的重量。
  • VbR 方式(定制西装店): 你拥有一份主蓝图(规格说明书)。
    1. 你告诉店里:“我需要一套参加婚礼的西装。”
    2. AI(裁缝)查看蓝图,并立即为你缝制一套完美的、轻便的西装,专门用于那场婚礼。它没有任何多余的面料。
    3. 稍后,你说:“我需要一套参加海滩派对的西装。”
    4. AI 并不会尝试裁剪那件婚礼西装。它再次查看蓝图,并为你缝制一套全新的、完美的海滩派对西装

在这个系统中,“变异性”(拥有不同西装的能力)并不存在于衣服本身,而是存在于蓝图中。

实际操作是如何运作的

论文通过一个经典的计算机工具 wc(用于统计文件中的单词数量)展示了这一点。

  1. 蓝图: 开发人员编写一个简单的文件(一个 YAML 文件),列出了所有可能的特征:“统计行数”、“统计单词”、“统计字符”等。
  2. 生成: 当用户想要特定版本(例如,“我只想统计行数”)时,AI 会读取蓝图,识别该请求,并生成一个极其微小、运行极快的程序,该程序执行那项任务。
  3. 调度器(服务员): 由于 AI 制作了三个不同的程序(一个统计行,一个统计单词,一个统计全部),计算机如何知道运行哪一个?
    • 研究人员构建了一个“服务员”(调度器)。
    • 你输入一个命令。服务员查看你的命令,检查菜单(清单),然后立即运行与你请求相匹配的特定程序。
    • 对你(用户)而言,你从未见过这些不同的程序。你只看到一个行为会神奇变化的工具。

为什么这很重要

作者认为,我们不应该试图通过强迫 AI 在代码中加入“开关”来修复“氛围编程”,因为这违背了这项新技术的初衷。

相反,我们应该接受代码应该是可丢弃且具有特定用途的。

  • 旧方式: 保留一个巨大的、混乱的代码文件,并将所有选项隐藏在其中。
  • 新方式 (VbR): 保留一份干净的规格说明文件(规则),并在每次需要不同版本时,让 AI 生成一个新鲜、完美、“无死代码”的程序。

总结

论文声称,在 AI 编程时代,我们失去了“微调”单个程序的能力。相反,AI 会为每一个需求创建一个新的程序。作者建议我们通过将规则(规格说明)视为永久的主体,并将代码视为每当规则改变时就会重新生成的临时且完美的产品,来拥抱这一变化。这不是为了修复代码,而是为了在需要时再生出最合适的代码。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →