提示词最佳实践

有效提示词的核心原则

编写好的提示词是高效使用 Codex 的关键。以下原则可以帮助您获得更好的结果。

明确具体

不要模糊描述,要给出明确的目标和约束:

❌ 不好的示例:
"帮我优化这个代码"

✅ 好的示例:
"优化 src/utils/format.ts 中的 formatDate 函数:
- 使用 dayjs 替代 moment.js
- 支持 ISO 8601 和本地化格式
- 添加 TypeScript 类型注解
- 保持向后兼容"

提供上下文

Codex 需要足够的上下文才能给出准确的回答:

❌ 不好的示例:
"这个页面为什么报错?"

✅ 好的示例:
"我在 src/app/page.tsx 中使用了 useQuery,但控制台报错:
'React Hook is called conditionally'
相关代码在第 15-25 行,完整的组件代码在文件中。
请分析原因并给出修复方案。"

分步引导

将复杂任务分解为可管理的步骤:

❌ 不好的示例:
"帮我实现一个完整的电商系统"

✅ 好的示例:
"我们将分步实现电商系统:
1. 先设计数据库 Schema
2. 然后实现商品列表 API
3. 接着实现商品详情页面
4. 最后添加购物车功能

先开始第一步:设计数据库 Schema"

任务拆解技巧

功能开发拆解

"实现用户注册功能:

## 第一步:表单设计
- 用户名(3-20 字符,字母数字)
- 邮箱(需验证格式)
- 密码(至少 8 位,含大小写和数字)
- 确认密码

## 第二步:验证逻辑
- 前端表单验证
- 后端数据验证
- 防重复注册检查

## 第三步:后端处理
- 密码加密存储(bcrypt)
- 邮箱验证链接发送
- 用户会话创建

## 第四步:前端实现
- 注册表单组件
- 错误提示显示
- 注册成功跳转

请从第一步开始实现。"

调试任务拆解

"帮我调试登录功能的问题:

1. 先检查登录 API 的请求参数
2. 然后查看后端验证逻辑
3. 接着检查数据库查询
4. 最后查看前端的错误处理

相关文件:
- src/app/api/auth/login/route.ts
- src/lib/auth.ts
- src/app/login/page.tsx
- prisma/schema.prisma"

示例驱动

提供参考示例

通过示例来说明你的需求:

"参照以下模式,创建一个用户列表组件:

示例模式:
- 使用 TypeScript 泛型
- 支持自定义渲染 prop
- 内置加载和空状态
- 使用 Tailwind 样式

参考代码(现有 Button 组件):
[代码片段]

要求:
- 功能类似但不限于此模式
- 保持一致的项目风格
- 添加必要的 JSDoc 注释"

代码生成示例

"生成一个类似以下结构的表单组件:

示例输入:
{
  "fields": [
    { "name": "email", "type": "email", "label": "邮箱" },
    { "name": "password", "type": "password", "label": "密码" }
  ]
}

请生成一个通用的 DynamicForm 组件,
能够根据配置动态渲染表单字段。"

迭代精炼

渐进式优化

通过多次对话迭代优化结果:

# 第一轮:生成基础实现
"实现一个文件上传组件"

# 第二轮:添加功能
"在上传组件中添加拖拽支持"

# 第三轮:优化体验
"添加上传进度显示和取消功能"

# 第四轮:完善细节
"添加文件类型限制和大小检查"

反馈循环

"你生成的代码中有一个问题:
第 25 行的 onClick 事件没有绑定正确的 this。
请修正这个问题。"

"还有一个优化空间:
图片上传应该使用压缩后再上传。
请添加图片压缩功能。"

"现在性能方面:
组件在每次点击时都重新渲染了整个列表。
请使用 React.memo 优化。"

常见场景模板

代码审查模板

"请审查以下代码变更:

## 上下文
- 项目:Next.js 14 电商平台
- 分支:feature/payment-integration
- 变更文件:[列出文件]

## 审查重点
1. 安全性:支付信息处理是否正确?
2. 性能:是否有不必要的 API 调用?
3. 可维护性:代码是否清晰易懂?
4. 测试:是否有相应的测试覆盖?

## 输出要求
按严重程度分类列出问题,每个问题附带修复建议。"

API 开发模板

"创建用户管理的 CRUD API

## 技术栈
- Next.js 14 App Router
- Prisma + PostgreSQL
- Zod 验证

## 接口定义
GET    /api/users        — 用户列表(分页)
GET    /api/users/[id]   — 用户详情
POST   /api/users        — 创建用户
PUT    /api/users/[id]   — 更新用户
DELETE /api/users/[id]   — 删除用户

## 要求
- 每个接口需要权限验证
- 使用 Server Actions
- 包含错误处理
- 添加请求日志"

重构模板

"重构以下代码:

## 当前问题
- 文件过大(500+ 行)
- 职责不单一
- 缺乏类型定义
- 测试覆盖率低

## 目标
- 拆分为多个小文件
- 提取公共逻辑为 hooks
- 添加完整类型定义
- 保持功能完全不变

## 目录结构要求
src/features/user/
├── components/
│   ├── UserList.tsx
│   └── UserDetail.tsx
├── hooks/
│   └── useUsers.ts
├── types/
│   └── index.ts
└── utils/
    └── userHelpers.ts"