返回文章列表

程序员必会的 Prompt 工程:让 AI 生成更好的代码

掌握 Prompt 编写技巧,让 Claude、GPT 等 AI 工具生成更准确、更高质量的代码。

AIProgHub
2024年12月09日
5 min read
Prompt工程AI编程最佳实践

为什么 Prompt 很重要?

同样的 AI 工具,不同的 Prompt 会产生截然不同的结果。一个好的 Prompt 可以让 AI 生成的代码从"勉强能用"变成"生产就绪"。

Prompt 编写黄金法则

1. 具体 > 模糊

❌ 差的 Prompt:

写一个验证函数

✅ 好的 Prompt:

写一个 TypeScript 函数 validateEmail,要求:
- 参数:email: string
- 返回:{ valid: boolean; error?: string }
- 验证规则:
  1. 必须包含 @ 符号
  2. @ 前后都必须有字符
  3. 域名部分必须包含 .
- 使用正则表达式实现
- 添加 JSDoc 注释

2. 提供上下文

告诉 AI 你的技术栈和约束:

在我的 Next.js 14 项目中(使用 App Router),
创建一个用户登录 API 路由,要求:
- 使用 zod 进行请求体验证
- 使用 bcrypt 比对密码
- 返回 JWT token
- 处理所有可能的错误情况

3. 给出示例

根据以下代码风格,创建一个获取订单详情的函数:

// 示例:获取用户信息
export async function getUserById(id: string) {
  const user = await prisma.user.findUnique({
    where: { id },
    select: {
      id: true,
      name: true,
      email: true,
    }
  });

  if (!user) {
    throw new NotFoundError('User not found');
  }

  return user;
}

// 请创建:获取订单详情,包含订单项和用户信息

4. 分步骤请求

复杂任务拆分成多步:

步骤 1:先帮我设计数据库 schema,
       我需要一个博客系统,包含文章、分类、标签、评论

步骤 2:(拿到 schema 后)
       基于这个 schema,创建 Prisma 模型

步骤 3:(拿到模型后)
       为文章模块创建 CRUD API

实战 Prompt 模板

模板 1:代码重构

重构以下代码,要求:
1. 遵循 SOLID 原则
2. 提取重复逻辑
3. 添加适当的错误处理
4. 保持原有功能不变
5. 添加类型注解

原代码:
[粘贴代码]

模板 2:Bug 修复

这段代码有 bug,表现为 [描述症状]。

预期行为:[描述预期]
实际行为:[描述实际]

请:
1. 分析可能的原因
2. 提供修复方案
3. 解释为什么这样修复

代码:
[粘贴代码]

模板 3:代码审查

请审查以下代码,从这些方面给出建议:
- 安全漏洞
- 性能问题
- 代码可读性
- 潜在 bug
- 最佳实践

代码:
[粘贴代码]

模板 4:学习新技术

我是一个有 3 年经验的 React 开发者,
现在需要学习 [新技术名称]。

请:
1. 用 React 的概念类比解释核心概念
2. 给出一个简单的入门示例
3. 列出 3 个常见陷阱
4. 推荐学习路径

高级技巧

角色设定

你是一个有 10 年经验的后端架构师,
专注于高并发系统设计。

请评估以下 API 设计的可扩展性...

约束条件

在以下约束下完成任务:
- 不使用任何第三方库
- 代码行数控制在 50 行以内
- 时间复杂度必须是 O(n)

思考链

一步步思考这个问题:
1. 首先分析需求
2. 考虑可能的方案
3. 评估每个方案的优缺点
4. 选择最佳方案并实现

常见错误

  1. 太模糊:没有具体需求
  2. 太啰嗦:无关信息太多
  3. 缺乏上下文:不说技术栈和约束
  4. 一次问太多:复杂任务不拆分

总结

好的 Prompt = 具体需求 + 足够上下文 + 清晰约束 + 期望输出格式

花 2 分钟写好 Prompt,能节省 20 分钟调试 AI 生成的代码。


实践建议:创建一个 Prompt 模板库,把常用的 Prompt 保存下来,每次使用时只需微调。

相关推荐

查看全部

订阅我们的邮件列表

第一时间获取最新 AI 编程教程和工具推荐

我们尊重你的隐私,不会分享你的邮箱

程序员必会的 Prompt 工程:让 AI 生成更好的代码 | AIProgHub