ipfans's Blog
Recent content on ipfans's Blog
马上订阅 ipfans's Blog RSS 更新: https://www.4async.com/atom.xml
程序员的提示工程手册

原文来自于 Addy Osmani,他是 Google Chrome 的工程主管,在 Google 工作多年。
开发人员越来越依赖 AI 编程助手来加速我们的日常工作流程。这些工具可以自动完成函数、建议修复错误,甚至生成整个模块或 MVP。然而,正如我们许多人所了解的那样,AI 输出的质量很大程度上取决于你提供的提示的质量。换句话说,提示工程已经成为一项必备技能。一个措辞不当的请求可能会产生不相关或笼统的答案,而一个精心设计的提示可以产生周到、准确甚至富有创造性的代码解决方案。本文将实际探讨如何系统地构建适用于常见开发任务的提示。
AI 结对程序员很强大但并非神奇——除了你告诉他们的或包含在上下文中的信息外,对你特定的项目或意图没有先验知识。你提供的信息越多,输出就越好。我们将提炼出开发者反响热烈的提示模式、可重复的框架和难忘的示例。你将看到好与坏提示的并排比较以及实际的 AI 响应,并附有评论以了解为什么一个成功而另一个失败。以下是入门小贴士:
| 技巧 | 提示模板 | 目的 |
|---|---|---|
| 1. 角色提示 | “你是一名资深的{语言名}开发者。请审查这个函数以实现{目标}。” | 模拟专家级的代码审查、调试或重构 |
| 2. 明确上下文设定 | “问题如下:{问题说明}。下面是代码。它本应做到{预期行为},但实际上做了 {实际行为}。为什么?” | 明确框定问题,避免泛泛而谈的回答 |
| 3. 输入/输出示例 | “这个函数在输入{输入内容}时应返回{预期输出}。你能编写或修复这段代码吗?” | 通过示例引导 AI 理解意图 |
| 4. 迭代分步 | “首先生成这个组件的骨架。接下来我们添加状态。然后处理 API 调用。” | 将大任务拆解为步骤,避免模糊或过载的提示 |
| 5. 模拟调试 | “逐行走查这个函数。变量值是什么?哪里可能出错?” | 引导 AI 模拟运行时行为,发现隐藏的 bug |
| 6. 功能蓝图 | “我正在构建{功能特性}。需求如下:{具体说明}。技术栈为:{技术栈说明}。请搭建初始组件并解释你的选择。” | 启动 AI 主导的功能规划与脚手架搭建 |
| 7. 重构指导 | “请重构这段代码以提升{目标},比如(如:可读性、性能、符合语言习惯的风格)。请使用注释解释变更。” | 让 AI 的重构符合你的目标,而不是随意更动 |
| 8. 请求替代方案 | “你能用函数式风格重写这段代码吗?递归版本会是什么样?” | 探索多种实现方式,扩展工具箱 |
| 9. 橡皮鸭调试 | “我觉得这个函数的作用是:{你的解释}。我遗漏了什么吗?有没有 bug?” | 让 AI 质疑你的理解并发现潜在问题 |
| 10. 约束锚定 | “请避免(例如:递归),并遵守(例如:ES6 语法、无外部库)。优化方向为(例如:内存)。这是函数代码:” | 防止 AI 过度发挥或引入不兼容的模式 |
高效代码提示基础
向 AI 编码工具提示与与一个非常有原则、有时会知识渊博的合作者交流有点像。为了获得有用的结果,您需要清楚地设置场景,并指导 AI 您想要什么以及如何实现。