AI 编写代码时,规范需要退出策略

以下文章已由主线程的 Markus Eisele 扩展和重写,并经作者许可在此处重新发布。经过六个月的规范驱动代理工作后打开存储库,您可能会发现代码旁边有第二个系统。要求、研究笔记、高层设计、低层设计、实施计划、[...]

来源:O'Reilly Media _AI & ML

以下文章已由 Markus Eisele 在主线程中扩展和重写,并经作者许可在此处重新发布。

经过六个月的规范驱动代理工作后打开存储库,您可能会发现代码旁边有第二个系统。需求、研究笔记、高层设计、底层设计、实施计划、任务列表、审查报告以及越来越多的解释代码含义的 Markdown 文件。即使上周二代码发生了重大变化,最后一次文档更新也是几周前。

我了解团队如何实现这一目标。毕竟这并不是一个真正的新效果。从我记事起,我们的软件就与文档并行发展。现在代理生成代码的速度如此之快,我们尝试通过在实现之前进行更多思考来控制漂移和代码生成。我们尝试用它来驱动代码生成,而不是记录代码,将包含需求、决策记录、设计方法和验收标准的 Markdown 文件作为重心,并将它们转变为我们的工作流程驱动程序。

实际上,在添加任何相关源代码之前,即使是现代代理,变成非常大的提示也可以轻松填充上下文窗口的很大一部分。自然语言规范对于代理来说是一个较弱的系统来同步代码库。如果没有额外的关注和勤奋,与我合作的大多数代理都会慢慢地将注意力迅速转移,并专注于代码库中更强的信号,最终忘记更新规范。

代码就是事实

文字是针对 delta 的

需要更改的列表非常短:

  • 预期结果和非目标(如有必要)
  • 已知的未知数和需要人类判断的决策
  • 受影响的系统边界和权威接口工件
  • 与今天不同的功能性和非功能性约束
  • 涵盖风险路径的验收标准/测试场景
  • 更轻量级的运营模式