概述
输出是建议的实现,需要像其他代码一样关注需求、行为、安全性和可维护性。合理的语法和自信的解释并不能证明正确性。
主要要点
- 提供需求和存储库上下文。
- 验证 API 和依赖项。
- 测试行为并检查最终的更改。
深入探讨
为系统提供相关的上下文:问题、现有架构、接口、约束和预期行为的示例。编译的解决方案仍然可以解决错误的问题或与存储库约定的冲突。检查依赖关系和 API 假设。模型可能会建议不存在的功能、过时的接口或未检查其用途和出处的包。使用当前的官方文档并检查实际运行的代码。使用有意义的案例测试行为,包括边界和失败。仅重现实现假设的测试可以通过,但要求仍未得到满足。对于错误修复,请提供证据证明原始故障已得到纠正,而无需删除测试或削弱其期望。保持更改可审查并验证最终工件。检查差异是否有不相关的编辑、敏感数据、破坏性操作和缺失的错误处理。如果代码更改了用户界面或外部工作流程,请检查渲染或操作结果以及运行自动检查。
04工作示例
发现一个看似合理的排序错误
想象一下生成的 JavaScript 在没有数字比较器的情况下对数字 2、10 和 1 进行排序。
默认的基于字符串的排序可以生成 1、10、2,而不是所需的数字顺序。
在接受该函数之前,测试不同的值并明确定义预期的顺序。
它显示了什么
构建的示例说明了为什么一个简短的、看起来有效的函数仍然需要行为检查。
现实世界的实施
要求使用明确的输入输出示例进行小的更改,并检查生成的差异。
在更改实施之前,请助手解释失败的测试。
付诸实践
为什么这很重要
- 构建选择. 应用级设计决定了人工智能是否能改善实际结果。
- 团队与工作流程. 良好的工作流程集成可以创造用户值得信赖的生产力收益。
- 风险与安全. 范围明确的用例可以减少变更疲劳和实施风险。
留意
- 将损坏的流程自动化可能会加剧现有问题。
- 团队可能会过度自动化并消除所需的人工判断。
- 如果不持续评估输出,质量可能会出现偏差。
后续步骤
- 绘制当前工作流程并确定摩擦最大的步骤。
- 在完全自动化之前定义人工检查点。
- 对用户进行提示、升级路径和质量标准方面的培训。
- 跟踪任务级结果以确认持续价值。
资料来源与延伸阅读
- GitHub检查 AI 生成的代码
不断探索
常见问题
通过类型检查是否证明生成的代码是正确的?
不。它仅建立检查的类型约束。代码仍然可能违反要求或在运行时失败。