我们很快了解到的另一点是,尝试生成代码,然后修改结果……
……我们很快了解到的另一点是,尝试生成代码,然后修改结果是不可持续的;也不应追求100%的生成代码库。最终结果是,我们必须对项目进行重大重构,以便在生成的代码中的任意位置插入手动编写的代码。我们学到的另一点是,任何对代码生成器的更改都必须有功能标志,因为有人仍然依赖旧的行为。
源讨论我读了Cloudflare所有Claude生成的提交记录原帖 283 条评论 · 导入时统计……我们很快了解到的另一点是,尝试生成代码,然后修改结果是不可持续的;也不应追求100%的生成代码库。最终结果是,我们必须对项目进行重大重构,以便在生成的代码中的任意位置插入手动编写的代码。我们学到的另一点是,任何对代码生成器的更改都必须有功能标志,因为有人仍然依赖旧的行为。
源讨论我读了Cloudflare所有Claude生成的提交记录原帖 283 条评论 · 导入时统计> 浏览这些提交内容让我想到一个想法:如果我们把提示词当作实际的源代码呢?想象一个版本控制系统,你提交的是生成功能所用的提示词,而不是生成的实现。 求求你,别这么做。首先,为什么你不提交生成的源代码呢?存储几乎是免费的。这有多个原因看起来很疯狂。 > 当模型不可避免地改进时,你可以连接最新版本并重新生成整个代码库,以获得增强的功能。 如果你没有提交代码,你怎么知道代码是更好还是更差?你怎么审计安全漏洞或在没有源代码的情况下进行调试?
完整原文把你的经验,加入这段讨论。
> 我们很快学到的一件事是,将生成的源代码与实际源代码放在同一个仓库中是不可持续的。 将提示或其他命令保留在单独的仓库中是可以的,但完全不提交生成的代码我觉得至少是值得怀疑的。
完整原文我猜你的软件生成的代码行数比人们用LLM构建项目时多几个数量级 - 如果这是真的,我认为这个类比不成立。
完整原文我认为这里最大的区别是,你的代码生成器可能是确定性的,你可能能够调试它产生的结果,而不是将其视为一个黑箱。
完整原文确定性生成的代码和LLM生成的代码之间存在巨大差异。后者每次生成的结果都会不同,有时甚至会有很大差异。后续的提示几乎会立即变得无用。如果下一次通过LLM(或你尝试的新模型)没有生成X,那么“你做了X,但我们想要Y”这样的反馈就会导致问题。
完整原文> 我们很快了解到的一件事是,将生成的源代码与实际源代码放在同一个仓库中是不可持续的。 我的经验法则是将两者放在同一个仓库中,但将生成的代码视为二进制数据。这是基于我曾因工具链回归导致生成的代码出错的经历,而由于需要在不同仓库之间关联提交,调查变得复杂。
完整原文请告诉我们你工作的公司,这样我们就不会把简历投递到那里了。 说笑而已,我曾参与过一些项目,其中选择的解决方案是自动生成代码,而且始终是100%自动生成的,基本上是在编译时完成的。任何需要处理边缘情况或连接各部分的手动编写代码都被保留在代码生成器之外。
完整原文> 最终结果是我们不得不对项目进行重大重构,以便在生成的代码的任意位置手动插入精心编写的代码。 这听起来像是在C代码中插入汇编代码。输入语言是什么?这两个要点(“不是AI生成的”,“一个功能标志”)表明代码生成器没有自然语言前端,而是有真正的编程语言前端。 你或其他人有没有向管理层说明代码生成器本质上是一个带有额外字符的编译器?[0] 如果有,他们的反应是什么? 我担心你目前/过去的工作可能是为了构建一个编译器即服务(CaaS)。[1] 没有贬低的意思,我只是担心其他经理看到这些内容后会尝试自己构建CaaS。 [0] 是的,我暗示LLM是编译器。Altman欺骗了我们;他教了十亿人…
完整原文尊重不同观点,分享具体经验。
登录后即可发帖、评论、转发和引用。