跳至主要内容

高效提示詞技巧

提示詞是你和Claude Code溝通的橋樑。寫得好,事半功倍;寫得模糊,反覆修改浪費時間。下面聊聊怎麼寫出高質量的提示詞,讓Claude Code發揮最大潛力。

提示詞為什麼重要

對比一下

模糊的提示詞:

你: 帮我写个函数
Claude: 好的,你要什么功能的函数?
你: 就是处理数据的
Claude: 能具体说吗?什么数据?怎么处理?
你: 就是数组过滤吧
[来回好几次才完成任务]

優秀的提示詞:

你: 创建一个TypeScript函数:
接收Product[]数组,过滤出价格在minPrice到maxPrice之间、
库存大于0的商品,按价格降序排列。
用数组的filter和sort方法。

Claude: 我来创建这个函数。
[一次性生成符合要求的代码,有类型定义和注释]

好的提示詞能:

  • 減少溝通成本 - 一次說清楚需求
  • 提高準確率 - 生成的程式碼符合預期
  • 節省時間 - 避免反覆修改
  • 保證質量 - 明確規範和約束

提示詞的核心要素

1. 清晰的目標描述

告訴Claude你要做什麼,而不是怎麼做

好的示例:

创建一个用户认证中间件,验证JWT token并将其解码为用户对象

不好的示例:

写个中间件,用jsonwebtoken库的verify方法,然后...

2. 具體的技術要求

明確技術棧、語言、框架等要求。

完整的技術規格:

使用TypeScript创建一个React函数组件:
- 使用React Router的useParams钩子获取ID参数
- 使用TanStack Query的useQuery获取数据
- 显示加载状态、错误状态和成功状态
- 样式使用Tailwind CSS

3. 明確的輸入輸出

定義函式的輸入引數和返回值。

示例:

创建一个函数:
- 输入: dateString (string, 格式: "YYYY-MM-DD")
- 输出: 相对时间描述 (string, 如"3天前"、"2小时后")
- 边界情况: 处理无效日期、null、undefined

4. 約束和規範

告訴Claude必須遵守的規則。

約束示例:

创建一个API路由:
- 必须使用Zod进行输入验证
- 必须包含错误处理
- 必须返回统一的响应格式 { success, data, error }
- 禁止使用any类型
- 必须包含JSDoc注释

提示詞的結構模式

STAR模式

STAR模式是編寫提示詞的經典框架:

**S**ituation (情境) - 当前上下文是什么
**T**ask (任务) - 需要完成什么
**A**ction (行动) - 具体要做什么
**R**esult (结果) - 期望什么样的结果

應用示例:

# Situation
我们有一个React应用,用户列表页面加载缓慢,因为一次性获取了所有数据。

# Task
实现分页功能来优化性能和用户体验。

# Action
1. 修改API调用,添加page和pageSize参数
2. 使用React Query管理分页状态
3. 添加分页组件(上一页、下一页、页码显示)
4. 保持URL同步(使用query params)

# Result
- 每页显示20条数据
- URL格式: /users?page=2&pageSize=20
- 支持浏览器前进/后退
- 保持当前滚动位置

5W1H模式

對於複雜任務,使用5W1H確保資訊完整:

**What** (什么) - 要实现什么功能
**Why** (为什么) - 为什么需要这个功能
**Who** (谁) - 谁会使用/影响谁
**Where** (哪里) - 在哪个模块/文件中实现
**When** (何时) - 什么时候触发/什么条件下
**How** (如何) - 具体实现方式

應用示例:

# What: 添加购物车功能
# Why: 用户需要批量购买商品,提高转化率
# Who: 所有注册用户
# Where: 在/src/components/Cart/目录下创建
# When: 用户点击"加入购物车"按钮时
# How:
- 使用Zustand管理购物车状态
- 本地存储持久化(localStorage)
- 实时计算总价
- 支持数量增减和删除

上下文提供技巧

1. 引用相關檔案

讓Claude瞭解現有程式碼結構:

修改 /src/components/Header/Header.tsx 组件:
参考 /src/components/Footer/Footer.tsx 的样式结构
使用 /src/hooks/useAuth.ts 中的用户信息

Claude會自動讀取這些檔案,確保新程式碼與現有程式碼風格一致。

2. 說明程式碼位置

明確告訴Claude程式碼應該放在哪裡:

在 /src/pages/products/ 目录下创建:
- ProductList.tsx (组件文件)
- ProductList.types.ts (类型定义)
- ProductList.module.css (样式文件)
- index.ts (导出文件)

3. 提供程式碼示例

當需要特定程式碼風格時,提供示例:

创建一个用户服务类,按照这个模式:

```typescript
// 示例模式
export class AuthService {
async login(credentials: LoginInput): Promise<AuthResult> {
// 實現邏輯
}

async logout(): Promise<void> {
// 實現邏輯
}
}

现在创建 UserService,包含:

  • getUserById(id: string)
  • updateUser(id: string, data: UpdateUserInput)
  • deleteUser(id: string)

### 4. 解釋業務邏輯

對於複雜的業務規則,詳細解釋:

实现库存检查逻辑:

业务规则:

  1. 当用户下单时,检查每个商品的库存
  2. 如果库存不足,抛出错误并告知哪些商品缺货
  3. 如果库存充足,预扣库存(设置reserved字段)
  4. 如果订单取消,释放预扣的库存
  5. 如果订单支付成功,正式扣减库存

技术要求:

  • 使用Prisma事务确保原子性
  • 错误消息要友好(显示商品名称)
  • 添加详细的日志记录

## 分步驟引導技巧

### 任務分解

對於複雜任務,使用分步驟的方式:

帮助我们实现用户评论功能,分步骤进行:

步骤1: 数据模型 创建Prisma模型 Comment,包含:

  • id, content, createdAt, updatedAt
  • 关联User (作者)
  • 关联Post (文章)
  • 父评论 (支持嵌套回复)

步骤2: API路由 创建评论相关的API端点:

  • GET /api/posts/:postId/comments
  • POST /api/posts/:postId/comments
  • PATCH /api/comments/:id
  • DELETE /api/comments/:id

步骤3: 前端组件 创建评论组件:

  • CommentList.tsx (显示评论列表)
  • CommentItem.tsx (单条评论)
  • CommentForm.tsx (发表评论)

步骤4: 集成 将评论组件集成到文章详情页

请先从步骤1开始。


### 迭代最佳化

使用"改進"而不是"重新做":

这个函数实现了基本功能,但需要优化:

  1. 添加错误处理(try-catch)
  2. 添加输入参数验证
  3. 添加JSDoc注释
  4. 优化性能(使用memoization)
  5. 添加单元测试

请在现有代码基础上改进。


### 漸進式提示

從簡單開始,逐步增加複雜度:

第一轮: 创建一个简单的表单组件,包含用户名和密码输入框

第二轮(基于上一轮): 添加表单验证,用户名至少3个字符,密码至少8个字符

第三轮(基于上一轮): 添加"显示密码"切换按钮

第四轮(基于上一轮): 添加表单提交到登录API,处理加载和错误状态


## 具體示例

### 示例1: 建立React元件

**完整的提示詞:**

创建一个ProductCard组件,用于显示商品卡片:

技术栈:

  • React 18 + TypeScript
  • Tailwind CSS用于样式
  • React Router用于导航

组件Props类型:

interface ProductCardProps {
product: {
id: string;
name: string;
price: number;
image: string;
category: string;
inStock: boolean;
};
onAddToCart?: (productId: string) => void;
}

功能要求:

  1. 显示商品图片、名称、价格、分类
  2. 如果库存不足,显示"缺货"并禁用购买按钮
  3. 点击卡片跳转到商品详情页(/products/:id)
  4. 有"加入购物车"按钮,点击时调用onAddToCart回调

样式要求:

  • 卡片使用白色背景,圆角8px,阴影效果
  • 图片使用object-fit: cover,固定高度200px
  • 价格用红色字体突出显示
  • 鼠标悬停时卡片上浮(translate-y)

文件位置:

  • /src/components/Product/ProductCard.tsx
  • 同时创建 /src/components/Product/ProductCard.module.css

代码规范:

  • 使用函数式组件
  • 添加完整的JSDoc注释
  • 导出类型定义

### 示例2: 建立API端點

**完整的提示詞:**

创建一个Express API端点,用于用户注册:

路由: POST /api/v1/auth/register

请求体验证(Zod schema):

  • email: string, email格式,必填
  • password: string, 最少8个字符,必须包含字母和数字
  • name: string, 2-50个字符,必填

业务逻辑:

  1. 验证输入数据
  2. 检查邮箱是否已注册(如果已存在,返回409错误)
  3. 使用bcrypt对密码进行哈希(salt rounds: 10)
  4. 创建用户到数据库
  5. 生成JWT token (有效期: 7天)
  6. 返回用户信息(不包含密码)和token

响应格式:

成功(201):

{
"success": true,
"data": {
"user": {
"id": "uuid",
"email": "user@example.com",
"name": "John Doe",
"createdAt": "2024-01-01T00:00:00.000Z"
},
"token": "jwt-token-string"
}
}

错误(400/409):

{
"success": false,
"error": {
"code": "EMAIL_ALREADY_EXISTS",
"message": "該郵箱已被註冊",
"details": {
"field": "email"
}
}
}

文件位置:

  • /src/routes/auth.routes.ts
  • 验证schema放在 /src/validators/auth.validators.ts
  • 业务逻辑放在 /src/services/auth.service.ts

要求:

  • 使用TypeScript
  • 完整的错误处理
  • 添加日志记录(Winston)
  • 编写Jest测试

### 示例3: 重構程式碼

**完整的提示詞:**

重构这个函数,提高可读性和性能:

当前代码: [粘贴现有代码]

重构目标:

  1. 将复杂逻辑拆分为多个小函数
  2. 使用早返回(early return)减少嵌套
  3. 添加有意义的变量名
  4. 添加JSDoc注释说明每个函数的作用
  5. 使用TypeScript严格类型

约束:

  • 保持函数签名不变
  • 保持返回值格式不变
  • 添加充分的错误处理
  • 不破坏现有功能

性能优化:

  • 如果可能,使用memoization
  • 减少不必要的循环
  • 避免重复计算

请先:

  1. 分析当前代码的问题
  2. 提出重构计划
  3. 然后执行重构

### 示例4: 除錯問題

**完整的提示詞:**

帮我调试这个bug:

问题描述: 用户点击"保存"按钮后,数据没有保存到数据库,但前端显示"保存成功"。

相关文件:

  • /src/components/UserForm.tsx
  • /src/api/userApi.ts
  • /src/pages/users/edit.tsx

预期行为:

  1. 用户填写表单
  2. 点击"保存"按钮
  3. 显示加载状态
  4. 调用API保存数据
  5. 如果成功,显示成功消息并跳转到列表页
  6. 如果失败,显示错误消息

当前问题:

  • API返回成功,但数据库中没有记录
  • 前端没有显示任何错误

调试步骤:

  1. 检查UserForm组件的提交逻辑
  2. 检查userApi的调用方式
  3. 检查API路由的实现
  4. 添加详细的日志记录
  5. 找出问题所在并修复
  6. 添加防止未来出现类似问题的代码

请开始调试,并在每一步告诉我你发现了什么。


### 示例5: 編寫測試

**完整的提示詞:**

为UserService编写完整的单元测试:

文件: /src/services/user.service.ts

测试框架: Jest + ts-jest

需要测试的功能:

  1. createUser - 创建用户
  2. getUserById - 根据ID获取用户
  3. updateUser - 更新用户信息
  4. deleteUser - 删除用户
  5. listUsers - 列出用户(分页)

测试要求:

  • 使用mock模拟Prisma客户端
  • 覆盖所有成功场景
  • 覆盖所有错误场景
  • 测试边界情况(如用户不存在、无效输入等)
  • 每个测试都有清晰的描述
  • 使用beforeEach和afterEach进行setup和teardown

覆盖率目标: >90%

示例测试结构:

describe('UserService.createUser', () => {
it('should create a user with valid data', async () => {
// 測試邏輯
});

it('should throw error if email already exists', async () => {
// 測試邏輯
});

it('should hash password before saving', async () => {
// 測試邏輯
});
});

请创建完整的测试文件。


## 常見誤區

### 誤區1: 提示詞過於簡短

**不好的示例:**

写个登录功能


**問題:**
- 缺少技術棧資訊
- 缺少功能規格
- 缺少程式碼規範

**好的示例:**

使用TypeScript和React Hook Form创建登录表单:

  • 包含邮箱和密码字段
  • 使用Zod进行验证
  • 集成React Router用于登录后跳转
  • 样式使用Tailwind CSS

### 誤區2: 提示詞過於冗長

**不好的示例:**

创建一个函数,这个函数的名字叫calculatePrice,它接收一个参数, 这个参数的类型是一个对象,这个对象里面有很多属性,包括price, taxRate,discount,shipping等等,然后这个函数要做的事情是计算 最终价格,首先要计算税,然后计算折扣,然后加上运费,最后返回... [500字的详细描述]


**問題:**
- 資訊過載,難以抓住重點
- 混淆了邏輯和描述
- 不如直接用程式碼示例清晰

**好的示例:**

创建价格计算函数:

interface PriceInput {
basePrice: number;
taxRate: number; // 稅率(如0.1表示10%)
discount: number; // 折扣金額
shipping: number; // 運費
}

function calculatePrice(input: PriceInput): number {
// 實現: (basePrice * taxRate) - discount + shipping
}

要求:

  • 处理边界情况(负数、null等)
  • 添加JSDoc注释
  • 编写单元测试

### 誤區3: 缺少上下文

**不好的示例:**

修复这个函数的bug [只粘贴函数代码,不说明任何背景]


**問題:**
- Claude不知道期望行為
- 不知道bug是什麼
- 不知道如何使用這個函式

**好的示例:**

修复formatDate函数的bug:

当前行为: formatDate('2024-01-15') 返回 "1/15/2024"

期望行为: formatDate('2024-01-15') 应该返回 "2024年1月15日"

函数用途: 用于在订单详情页显示订单日期

当前代码: [粘贴代码]

要求:

  • 支持中文格式
  • 处理无效日期(返回"无效日期")
  • 保持向后兼容

### 誤區4: 一次性要求太多

**不好的示例:**

创建一个完整的电商系统,包括用户管理、商品管理、 购物车、订单系统、支付集成、后台管理、数据报表...


**問題:**
- 任務過於龐大,難以一次完成
- 缺少優先順序
- 容易產生混亂

**好的示例:**

我们计划创建一个电商系统,分阶段实现:

第一阶段(MVP):

  1. 用户注册和登录
  2. 商品列表和详情页
  3. 基础购物车功能

请先从第一阶段开始,创建用户注册和登录功能。


### 誤區5: 假設Claude知道所有專案細節

**不好的示例:**

修复ProductList的bug,应该和UserList一样处理


**問題:**
- Claude不知道UserList是怎麼處理的
- 需要Claude自己去找,可能找到錯誤的參考

**好的示例:**

修复ProductList的分页bug。

参考UserList的实现(/src/components/UserList.tsx), 它使用usePagination hook正确处理了分页。 ProductList目前的问题是第二页的数据没有显示。

请参照UserList的模式修复ProductList。


## 提示詞模板庫

### 模板1: 建立新功能

创建【功能名称】:

背景: 【为什么需要这个功能】

功能需求:

  1. 【需求1】
  2. 【需求2】
  3. 【需求3】

技术栈:

  • 【框架/语言】
  • 【相关库】

文件位置: 【指定文件路径】

参考文件: 【相关文件路径】

约束条件:

  • 【约束1】
  • 【约束2】

验收标准:

  • 【标准1】
  • 【标准2】

### 模板2: 修復Bug

修复Bug:

Bug描述: 【详细描述bug现象】

复现步骤:

  1. 【步骤1】
  2. 【步骤2】

预期行为: 【应该发生什么】

实际行为: 【实际发生了什么】

相关文件:

  • 【文件1】
  • 【文件2】

环境信息:

  • 浏览器/Node版本
  • 相关依赖版本

优先级: 【高/中/低】


### 模板3: 重構程式碼

重构代码:

当前代码: 【粘贴代码】

重构原因: 【为什么要重构】

重构目标:

  1. 【目标1,如提高可读性】
  2. 【目标2,如提升性能】

约束条件:

  • 【约束1,如保持API兼容】
  • 【约束2,如不破坏现有功能】

期望风格: 【描述期望的代码风格】


### 模板4: 新增測試

为【文件/模块】编写测试:

文件路径: 【文件路径】

测试类型:

  • 单元测试
  • 集成测试
  • E2E测试

测试框架: 【如Jest, Vitest】

需要测试的功能:

  1. 【功能1】
  2. 【功能2】

测试场景:

  • 正常场景
  • 边界情况
  • 错误处理

覆盖率要求: 【如>80%】

Mock依赖: 【需要mock的外部依赖】


### 模板5: 程式碼審查

审查以下代码:

代码文件: 【文件路径】

代码内容: 【粘贴代码】

审查重点:

  1. 代码质量
  2. 性能问题
  3. 安全漏洞
  4. 最佳实践
  5. 可维护性

请提供:

  1. 整体评价
  2. 具体问题列表
  3. 改进建议
  4. 修改后的代码示例(如果有必要)

### 模板6: 效能最佳化

优化性能:

目标文件/功能: 【文件路径或功能描述】

性能问题: 【描述当前性能问题,如加载慢、卡顿等】

优化目标:

  • 【目标1,如减少50%加载时间】
  • 【目标2,如提升渲染性能】

技术约束:

  • 【约束1】
  • 【约束2】

优化方向: 【提示可能的优化方向,如代码分割、懒加载等】

请提供:

  1. 性能分析
  2. 优化方案
  3. 实施步骤
  4. 优化前后对比

### 模板7: 文件生成

为【模块/功能】生成文档:

文件路径: 【相关文件】

文档类型:

  • API文档
  • 用户指南
  • 开发者文档

目标受众: 【如初学者、有经验的开发者】

文档风格: 【如简洁明了、详细示例】

包含内容:

  1. 功能概述
  2. 安装/配置说明
  3. 使用示例
  4. API参考
  5. 常见问题
  6. 最佳实践

## 實用技巧和最佳實踐

### 技巧1: 使用角色設定

給Claude分配一個明確的角色:

你是一位资深的前端性能优化专家,拥有10年React开发经验。 请审查这段代码,找出性能瓶颈并提供优化建议。

【代码】


**其他角色示例:**
- "你是一位安全專家,審查這段程式碼的安全漏洞..."
- "你是一位UX設計師,評估這個元件的使用者體驗..."
- "你是一位測試工程師,為這個功能設計測試用例..."

### 技巧2: 提供示例

**輸入示例:**
```text
输入: { name: "John", age: 30 }
期望输出: "Hello John, you are 30 years old"

程式碼風格示例:

按照这个风格编写:
【示例代码】

反例(不想要的):

不要这样写:
【不好的代码示例】

技巧3: 分層次組織資訊

使用結構化的格式:

## 概述
【简要说明】

## 详细需求
### 功能需求
1. 【需求1】
2. 【需求2】

### 技术需求
- 【技术1】
- 【技术2】

## 实现步骤
1. 【步骤1】
2. 【步骤2】

## 验收标准
- 【标准1】
- 【标准2】

技巧4: 使用關鍵詞

在提示詞中使用明確的關鍵詞引導Claude:

"建立"、"實現"、"編寫" - 生成新程式碼 "修復"、"解決"、"除錯" - 修復問題 "重構"、"最佳化"、"改進" - 改進現有程式碼 "解釋"、"分析"、"評估" - 理解程式碼 "比較"、"對比" - 對比不同方案 "擴充套件"、"增強"、"新增" - 在現有基礎上新增功能

技巧5: 設定優先順序

明確任務的優先順序:

**高优先级(必须完成):**
- 【核心功能】
- 【关键修复】

**中优先级(重要):**
- 【改进项】

**低优先级(可选):**
- 【锦上添花的功能】

**如果时间有限,请优先完成高优先级任务。**

技巧6: 要求思考過程

對於複雜任務,要求Claude先思考:

在开始编写代码之前,请:
1. 分析需求
2. 提出技术方案
3. 列出实现步骤
4. 说明可能的问题

然后等待我的确认后再开始实现。

技巧7: 使用版本迭代

**版本1(MVP):**
实现基础功能:【基础需求】

**版本2(增强):**
添加功能:【增强需求】

**版本3(完善):**
优化:【优化项】

请从版本1开始,完成后我会让你继续版本2。

技巧8: 明確輸出格式

请按以下格式输出:

**代码:**
【代码块】

**说明:**
【文字说明】

**使用示例:**
【示例代码】

**注意事项:**
【注意事项列表】

技巧9: 請求多種方案

请提供3种实现方案:

**方案1: 【方案名称】**
- 优点: 【优点】
- 缺点: 【缺点】
- 适用场景: 【场景】

**方案2: 【方案名称】**
...

**方案3: 【方案名称】**
...

请推荐最合适的方案并说明理由。

技巧10: 設定檢查點

對於長任務,設定檢查點:

这是一个多步骤任务,请在每步完成后停下来等待我的反馈:

步骤1: 【步骤1描述】
[完成并等待确认]

步骤2: 【步骤2描述】
[完成并等待确认]

步骤3: 【步骤3描述】

不同場景的提示詞策略

場景1: 快速原型開發

策略: 先實現功能,後完善細節

创建一个用户仪表板原型:
- 先实现基本布局和数据展示
- 使用mock数据
- 样式可以简单一些
- 不需要完整错误处理

重点是快速验证设计思路,后续会完善。

場景2: 生產級程式碼

策略: 強調質量、測試、文件

创建支付处理模块:
- 必须包含完整的错误处理
- 必须编写单元测试(覆盖率>90%)
- 必须添加JSDoc注释
- 必须处理边界情况
- 必须添加日志记录
- 必须包含集成测试

这是生产代码,质量优先于速度。

場景3: 學習和理解

策略: 要求解釋和教學

解释这段React代码的工作原理:
【粘贴代码】

请包含:
1. 代码的整体流程
2. 关键技术点说明
3. 为什么这样设计
4. 可能的改进方向
5. 相关的最佳实践

場景4: 程式碼審查

策略: 系統化的檢查清單

审查以下代码:

【代码】

请按以下清单检查:
□ 代码风格
□ 命名规范
□ 错误处理
□ 性能问题
□ 安全漏洞
□ 可测试性
□ 可维护性
□ 文档完整性

对每个问题,请提供:
- 问题描述
- 严重程度(高/中/低)
- 修复建议
- 示例代码

場景5: 除錯和問題排查

策略: 系統化的診斷流程

帮我排查这个问题:

**问题:** 【问题描述】

**已尝试的方法:**
1. 【方法1】 - 【结果】
2. 【方法2】 - 【结果】

**环境:**
- Node版本: 【版本】
- 相关依赖: 【依赖和版本】

**请按以下步骤诊断:**
1. 分析可能的原因(列出3-5个)
2. 对每个原因提供验证方法
3. 推荐最可能的调试步骤
4. 如果找到问题,提供修复方案

高階技巧

技巧1: 鏈式提示

使用上一次的輸出作為下一次的輸入:

【第一次对话】
你: 创建一个用户模型
Claude: [创建了User模型]

【第二次对话】
你: 基于这个User模型,创建用户注册API
Claude: [创建注册API,使用User模型]

【第三次对话】
你: 为注册API添加测试用例
Claude: [创建测试,测试注册API]

技巧2: 對話式開發

像與同事交談一樣:

你: 我想实现一个搜索功能
Claude: 好的,需要搜索哪些内容?
你: 搜索文章标题和内容
Claude: 明白了。需要实时搜索(输入时搜索)还是点击按钮搜索?
你: 实时搜索,但要加防抖,避免频繁请求
Claude: 了解。前端使用什么框架?
你: React,使用Tailwind CSS
Claude: 好的,我来创建搜索组件...

技巧3: 漸進式完善

從粗略到精細:

你: 创建一个商品列表页
Claude: [创建基础列表]

你: 添加筛选功能(按分类和价格)
Claude: [添加筛选功能]

你: 添加排序功能(价格、销量、评分)
Claude: [添加排序功能]

你: 优化性能,使用虚拟滚动
Claude: [优化性能]

技巧4: 對比和選擇

请对比以下两种方案:

**方案A:** 使用Redux管理状态
**方案B:** 使用Zustand管理状态

对比维度:
1. 学习曲线
2. 代码量
3. Bundle大小
4. TypeScript支持
5. 性能
6. 社区生态

推荐最适合我们项目的方案并说明理由。

技巧5: 使用程式碼審查清單

建立可重用的審查模板:

使用这个清单审查代码:

## 功能性
□ 实现了所有需求
□ 处理了边界情况
□ 错误处理完整

## 代码质量
□ 遵循项目规范
□ 命名清晰
□ 逻辑清晰
□ 无重复代码

## 性能
□ 无明显性能问题
□ 使用了适当的优化

## 安全
□ 无安全漏洞
□ 输入已验证
□ 敏感信息已保护

## 可维护性
□ 代码可读
□ 有必要注释
□ 易于修改

## 测试
□ 有单元测试
□ 测试覆盖充分

请按此清单审查我的代码。

常見問題解答

Q1: 如何讓Claude理解我的專案特定術語?

A: 在CLAUDE.md中定義術語表:

## 项目术语表

- **SKU**: Stock Keeping Unit,商品库存单位
- **ERP**: Enterprise Resource Planning,企业资源计划
- **OMS**: Order Management System,订单管理系统

这些术语在代码和注释中经常出现,请使用正确的缩写。

Q2: Claude生成的程式碼不符合我的專案風格?

A: 在提示詞中明確風格要求:

创建一个用户组件,请遵循以下风格:
- 使用函数式组件(不要类组件)
- 使用CSS Modules(不要inline样式)
- 使用命名导出(不要默认导出)
- 使用TypeScript接口定义Props
- 遵循项目的命名规范

Q3: 如何處理複雜的業務邏輯?

A: 分步驟,先描述邏輯再實現:

实现库存扣减逻辑:

**业务流程:**
1. 用户下单时,检查库存
2. 库存充足 → 预扣库存(设置reserved)
3. 用户支付 → 正式扣减库存
4. 用户取消订单 → 释放预扣库存
5. 库存不足 → 返回错误,告知缺货商品

**并发控制:**
使用数据库事务和乐观锁防止超卖

**请先:** 解释你将如何实现
**然后:** 等待我的确认
**最后:** 编写代码

Q4: 如何讓Claude寫出更好的測試?

A: 提供測試要求和示例:

为这个函数编写测试:

**测试要求:**
- 使用Jest和ts-jest
- 覆盖所有分支和边界情况
- 使用describe清晰地组织测试
- 每个测试有描述性的名称
- 使用beforeEach和afterEach

**必须测试的场景:**
- 正常输入
- null/undefined输入
- 空数组
- 数组长度超出限制
- 非数组输入

**测试示例:**
```typescript
describe('functionName', () => {
it('should handle normal input', () => {
// test
});
});

### Q5: Claude生成的程式碼有安全漏洞怎麼辦?

**A:** 在提示詞中強調安全:

创建用户登录API:

安全要求(至关重要):

  • 使用bcrypt哈希密码(rounds >= 10)
  • 使用HTTPS传输
  • JWT token要有过期时间
  • 实施rate limiting防止暴力破解
  • 输入验证(防止注入攻击)
  • 错误消息不泄露敏感信息
  • 设置适当的CORS策略
  • 使用prepared statements防止SQL注入

请在代码中添加注释说明每个安全措施。


### Q6: 如何提高Claude Code的響應質量?

**A:** 遵循這些最佳實踐:

1. **提供充分的上下文**
- 專案結構
- 相關檔案
- 技術棧

2. **使用清晰的結構**
- STAR模式
- 分步驟
- 使用標題和列表

3. **提供示例**
- 好的示例
- 壞的示例
- 程式碼風格示例

4. **明確約束**
- 必須做什麼
- 不能做什麼
- 優先順序

5. **使用CLAUDE.md**
- 專案規範
- 編碼標準
- 常用命令

### Q7: 如何處理超長任務?

**A:** 拆分為小的子任務:

创建完整的博客系统,分阶段进行:

阶段1: 数据模型

  • Post模型
  • Comment模型
  • Category模型

阶段2: API

  • CRUD操作
  • 分页和筛选
  • 搜索功能

阶段3: 前端

  • 列表页
  • 详情页
  • 编辑器

请先完成阶段1,完成后告诉我。


## 提示詞檢查清單

在傳送提示詞之前,使用這個清單檢查:

### ✅ 基本資訊
- [ ] 目標清晰明確
- [ ] 技術棧已說明
- [ ] 上下文已提供

### ✅ 詳細要求
- [ ] 功能需求完整
- [ ] 輸入輸出明確
- [ ] 約束條件清晰

### ✅ 程式碼規範
- [ ] 命名規範已說明
- [ ] 檔案位置已指定
- [ ] 參考程式碼已提供

### ✅ 質量保證
- [ ] 錯誤處理要求
- [ ] 測試要求
- [ ] 文件要求

### ✅ 驗收標準
- [ ] 成功標準明確
- [ ] 邊界情況考慮
- [ ] 效能要求(如適用)

## 總結

編寫高效提示詞是可以練習提升的技能。記住這些核心原則:

### 關鍵要點

1. **清晰具體** - 明確說你要什麼
2. **提供上下文** - 讓Claude瞭解專案背景
3. **使用結構** - 用標題、列表組織資訊
4. **給出示例** - 示例比文字有力
5. **明確約束** - 說明必須遵守的規則
6. **分步驟** - 複雜任務拆成小步驟
7. **迭代最佳化** - 從粗到細逐步完善

### 提示詞公式

**好的提示詞 = 清晰目標 + 充分上下文 + 具體要求 + 明確約束 + 驗收標準**

### 最佳流程

  1. 明确目标 ↓
  2. 收集上下文(相关文件、项目规范) ↓
  3. 用结构化模板(STAR/5W1H) ↓
  4. 提供具体要求和约束 ↓
  5. 设置验收标准 ↓
  6. 发送提示词 ↓
  7. 根据结果迭代优化

### 下一步

- 實踐: 在專案裡試試這些技巧
- 參考: 檢視 [Claude.md配置檔案](/claude-code/03-高階特性/claude-md)
- 進階: 學習 [MCP整合](/claude-code/03-高階特性/mcp-integration)
- 實戰: 探索 [實戰案例](/claude-code/04-實戰案例)

## 參考資源

- [Claude Official: Prompt Engineering](https://docs.anthropic.com/claude/docs/prompt-engineering)
- [OpenAI Prompt Engineering Guide](https://platform.openai.com/docs/guides/prompt-engineering)
- [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
- [Effective Prompting Patterns](https://github.com/f/awesome-chatgpt-prompts)

---

**恭喜!** 你已經掌握了高效提示詞的核心技巧。現在就開始在你的專案中應用這些技巧,體驗更高效的AI輔助程式設計吧!