GitHub Copilot 提示词工程
FreeGuideOnline
最新
2026-07-12
javascript // 不好:处理列表 // 好:将用户列表按注册日期降序排序,返回前10个用户的ID数组
### 2. 用结构化注释建立意图
在函数或代码块前使用详细的 JSDoc、Docstring 或普通注释,可以极大提升生成质量。
```python
# 计算移动平均值,窗口大小可配置,处理边界时用NaN填充
def moving_average(data, window):
Copilot 会根据注释推断你需要循环、切片和填充逻辑。
3. 提供范例(少样本学习)
展示一个或两个输入-输出的具体示例,比单纯描述更直接。尤其适合需要特定格式转换的场景。
// 输入:[{name: 'Alice', age: 30}, {name: 'Bob', age: 25}]
// 输出:'Alice (30), Bob (25)'
// 请实现同名函数 formatUsers(users)
4. 分解复杂任务
不要用一句话描述一个完整功能,而是将其拆分为多个步骤,用注释逐步引导。
// 步骤1:从API获取订单数据
// 步骤2:过滤出状态为“已支付”的订单
// 步骤3:计算总金额
// 步骤4:格式化为货币字符串并返回
Copilot 会依次生成各个部分的代码,质量和可读性远超一次性生成的大块代码。
高质量提示的编写技巧
善用函数名和参数名
函数名就是对 Copilot 最直接的提示。使用动词和精确的名词,例如 fetchUserOrders 而不是 doStuff。参数名同样重要,userId 比 id 提供更多语义。
利用类型标注
在 TypeScript、Python (type hints) 或 Java 中,类型就是最好的提示。为参数和返回值添加类型,生成的实现将更贴合意图。
function groupByCategory(items: Item[]): Map<string, Item[]> {
// Copilot 会自然理解需要按哪个字段分组
}
打开正确文件提升上下文
如果你正在写后端代码,却想知道前端接口格式,可以先打开前端的相关类型定义文件到相邻标签页,Copilot 会跨文件学习,无需手动复制。
使用“按行提示”和“下一步预测”循环
在循环或数据处理中,先写好一行典型的处理逻辑,Copilot 就能自动推断出剩余的相似行。例如写完一个 switch case,AI 会自动补全其他 case。
避免歧义与常见陷阱
- 不要使用过于代称化的变量名:
data、result容易让 AI 困惑。 - 为生成划定清晰边界:在需要结束的地方写
// 结束或// ---可以帮助 AI 停止生成。 - 明确语言:Copilot 对英文注释响应最好,中文也可以,但混合使用可能降低准确性。建议核心逻辑用英文书写。
常见实战模式与案例
生成样板代码(Boilerplate)
用于重复性结构,如 Redux reducer、Vue 组件模板。
// 创建一个名为 Cart 的 Vue 3 组合式 API 组件,包含 items 状态、addItem 和 removeItem 方法
Copilot 将生成完整的 <script setup> 代码和模板结构。
数据转换与处理
最适合的领域之一。描述清楚源数据和目标形状。
# 将列表 [1,2,3,4] 转换成 [1, 'a', 2, 'b', 3, 'c', 4, 'd'] 的格式
# 字母与数字一一对应
调用常见 API
只需写下 API 文档的描述,Copilot 能生成 fetch 调用及错误处理。
// 使用 GitHub API 获取当前用户的 repos 列表,处理分页和401错误
自动编写单元测试
在测试文件中写一个描述性语句,即刻生成对应测试用例。
// 测试 calculateDiscount 在金额满100时打8折,不满100原价
test('should apply 20% discount when total >= 100', () => {