实践证明:用需求四要素描述需求,AI编程返工率大幅下降
实践证明用需求四要素描述需求AI编程返工率大幅下降目标 · 边界 · 示例 · 验收其中边界和验收最容易被低估也最值得你花时间写清楚写在前面你有没有遇到过这样的情况让 AI 写一个函数结果它给你加了一堆你用不上的功能明明说清楚了需求AI 却自作主张处理了不该处理的边界情况代码看起来没问题一测试才发现各种隐藏 bug这不是 AI 不行而是我们的需求描述方式有问题。经过一段时间的实践我发现一个简单有效的方法需求描述四要素。用上它之后AI 编程的返工次数至少减少50% 以上。什么是需求四要素四要素分别是要素说明回答的问题目标Goal要做什么核心功能是什么边界Scope只做什么、不做什么哪些事情绝对不做示例Example具体的输入输出能否给一个直观例子验收Verify如何判断完成怎么快速验证它是对的其中边界和验收是最容易被低估的两个要素但恰恰是它们决定了代码是否“一次写对”。为什么边界Scope容易被低估边界回答的是“它不应该做什么”。如果没有明确边界AI 会按训练数据中的“常见完整案例”去扩展功能导致做了额外功能与你现有系统冲突处理了不该处理的输入格式引入逻辑污染时间或空间复杂度不可控一个对比场景没有边界AI 自作主张有边界可控写日期解析函数自动支持“昨天”“下周一”等自然语言只支持 YYYY-MM-DD其他报错写搜索接口悄悄做了模糊匹配 分词只做精确子串匹配写数据处理脚本默认处理空值、异常值、超大文件明确限制文件大小跳过空行如何写好边界使用这个句式只做 X不做 Y不考虑 Z并列出明确禁止的行为例如不能访问网络不能修改原文件不处理转义字符为什么验收Verify容易被低估验收回答的是“如何客观判断它完成了”。没有验收条件AI 给你的是一段“看起来正确但无法验证”的代码。你需要手动测试然后在 corner case 上发现失败。被低估的原因很多人把验收当作“跑一下不报错就行”不知道可以要求 AI自己生成验收用例如何写好验收在你的需求中直接写清楚验收条件验收条件给定输入 A应输出 B给定输入 C边界值应输出 D给定非法输入 E应抛出错误 F更高级的做法要求 AI 在输出代码的同时输出一组可执行的验收测试如 pytest 用例。这样你不用手工验证修改需求后 AI 可以自己跑验收来发现不一致完整示例从反面到正面❌ 反面例子容易返工写一个函数把 CSV 转成 JSON。AI 会给你自动推断数字类型支持各种编码处理超大文件甚至加一个进度条然后你发现数据类型被改了、内存爆了、和现有系统不兼容。返工 3 次起步。✅ 正面例子使用四要素目标读取 CSV 文件输出 JSON 数组不做任何类型转换。边界只支持 UTF-8 编码只支持英文逗号分隔符第一行必须是列头所有字段保留为字符串文件最大 10MB超过报错不处理嵌套 CSV 或转义逗号示例输入name,age Alice,30输出[{name:Alice,age:30}]验收正常文件 → 输出正确 JSON空文件 → 输出 []缺少列头 → 明确错误超过 10MB → 报错不处理缺失字段 → 保留空字符串结果AI 一次给出正确代码直接可用。一个真实案例日志清洗脚本需求原文复制给 AItext目标清洗日志文件提取包含 ERROR 的行输出到新文件边界只处理纯文本UTF-8 编码文件最大 200MB不修改原文件不区分大小写匹配 ERROR空行忽略示例输入INFO: startERROR: disk fullDEBUG: retryERROR: timeout输出ERROR: disk fullERROR: timeout验收正常文件 → 输出正确行数无 ERROR 行 → 输出空文件文件不存在 → 报错提示超过 200MB → 报错不处理空文件 → 输出空文件请同时给出 Python 代码 pytest 验收用例。结果AI 一次生成了可运行的代码 5 个测试用例全部通过。从提需求到部署不到 10 分钟。反思以前我会写“写个脚本提取错误日志”然后 AI 给我加统计、加颜色输出、加邮件通知……删代码比写代码还累。花 3 分钟写边界和验收省 30 分钟返工。一个减少返工的小流程先写边界 验收花 3–5 分钟再补目标和示例把需求一次性给 AI要求 AI 先复述边界和验收再写代码拿到代码后用验收用例自动验证检查清单建议保存每次提需求前花 2 分钟问自己目标一句话说清要做什么边界它绝对不能做什么不考虑什么情况示例有没有一个具体的输入输出验收我怎么快速验证它是对的写在最后AI 编程的能力已经很强但它是“听话的工具”不是“猜心的伙伴”。你给它画多大的框它就在框里干活。你不画框它就按自己的“常识”来而这个常识未必是你的常识。边界和验收就是给 AI 画的那个框。画好这个框你会发现 AI 编程的体验完全不同。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2478335.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!