提示词最佳实践
有效提示词的核心原则
编写好的提示词是高效使用 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"