~/VibeHandbook
免费 PDF

08 · 02

指明输入、输出和边界情况

一个任务在它的边界被定义之前都不算被定义。资深工程师以"什么进去、什么出来、出错时会发生什么"的方式思考。把这些烤进提示词里。

写一个解析日期字符串的函数。
写一个函数 parseDate(input: string): Date | null。

输入:ISO 8601 字符串("2026-06-14"、"2026-06-14T10:30:00Z")。
输出:一个 Date 对象,若字符串无效则返回 null。

需要处理的边界情况:
- 空字符串或仅有空白 -> null
- 格式合法但日期不可能(2026-02-30)-> null
- 末尾有垃圾字符("2026-06-14xyz")-> null

不要 throw。对所有无效输入都返回 null。

当你点名说出边界情况时,AI 就会处理它们。当你不说时,它写顺利路径,然后你在生产环境里发现那些缺口。同样的纪律也适用于纯函数之外:对一个端点,要指明成功响应以及错误响应(重复的邮箱返回什么状态码?请求体格式错误时呢?)。对一个 UI 组件,要指明空状态和加载状态,而不只是有数据的状态。大多数软件有意思的行为都住在它的边缘,所以你的提示词也应当在那里花笔墨。

如果你不确定边界情况有哪些,就先问 AI:"一个日期解析器应该处理哪些边界情况?"——然后把答案当作约束喂回去。这把模型从一个代码生成器变成了一个清单生成器,而审查一份清单,比调试你忘掉的那些情况要快。

想离线阅读?

免费下载整本书的 PDF 或 EPUB。