让 AI 写代码,效果好不好,很大程度上取决于需求说得清不清楚。“写一个高质量、优雅、健壮的函数”这类形容词几乎没有作用,下面这些信息才有用。
- 背景:项目用什么语言、框架和版本,代码风格有什么约定。
- 输入和输出:数据长什么样,期望得到什么结果,最好给一两个例子。
- 约束:不能引入新依赖、要兼容哪些环境、哪些函数签名不能改。
- 验收方式:要求附上测试用例,或者说明怎么验证结果是对的。
- 允许它说不知道:让它把不确定的地方标出来,而不是编一个看起来对的答案。
一个例子:
背景:Next.js + TypeScript 项目,测试用 vitest。
任务:写一个把秒数格式化成“1 小时 5 分”的函数。
要求:
- 输入是非负整数秒;不到 60 秒显示“不到 1 分钟”
- 不引入第三方库
- 附带测试,覆盖 0、59、60、3600、3900 这几种输入复杂的任务先让它列出方案和步骤,确认之后再写代码。生成的代码一定要自己读一遍、跑一遍测试;涉及 SQL、鉴权、文件路径和用户输入的代码更要逐行检查。