---
title: "A.3 问题解决类模板"
---


![03-technique_appendix_A.3-problem-solving.png](/images/Basic/03-technique_appendix_A.3-problem-solving.png)
# A.3 问题解决类模板

本节提供排查问题和寻求帮助的 Prompt 模板，覆盖错误排查、技术选型、概念解释等场景。


## 模板一：运行时错误排查

适用于：代码报错、程序崩溃、控制台报红

```markdown
## 错误信息

运行时遇到以下错误：

```
[完整粘贴错误信息，包括堆栈跟踪]
```

## 触发场景

**操作步骤**：
1. [第一步做了什么]
2. [第二步做了什么]
3. [然后就报错了]

**触发频率**：[每次都报错/偶尔报错/特定条件下报错]

## 相关代码

错误指向的代码：
```[语言]
[粘贴错误信息中提到的代码，以及上下文]
```

## 环境信息

- 运行环境：[浏览器版本/Node.js 版本/Python 版本]
- 框架版本：[React 18/Vue 3/...]
- 操作系统：[Windows/Mac/Linux]

## 已尝试的方法

1. [尝试1]：结果 [成功/失败/部分解决]
2. [尝试2]：结果 [成功/失败/部分解决]

## 请帮我

1. 分析错误的根本原因
2. 给出修复方案
3. 解释为什么会出现这个问题（帮助我理解）
```

### 填写示例

```markdown
## 错误信息

运行时遇到以下错误：

```
TypeError: Cannot read properties of undefined (reading 'map')
    at TaskList (TaskList.tsx:15:23)
    at renderWithHooks (react-dom.development.js:14985:18)
    at mountIndeterminateComponent (react-dom.development.js:17811:13)
```

## 触发场景

**操作步骤**：
1. 打开应用首页
2. 页面加载时直接报错
3. 任务列表没有显示出来

**触发频率**：每次刷新页面都报错

## 相关代码

错误指向的代码：
```tsx
// TaskList.tsx
function TaskList({ tasks }) {
  return (
    <ul>
      {tasks.map(task => (          // 第 15 行
        <li key={task.id}>{task.title}</li>
      ))}
    </ul>
  );
}

// App.tsx 中的调用
function App() {
  const [tasks, setTasks] = useState();  // 注意这里
  
  return <TaskList tasks={tasks} />;
}
```

## 环境信息

- 运行环境：Chrome 120
- 框架版本：React 18.2.0 + TypeScript 5.0
- 操作系统：Mac

## 已尝试的方法

1. 检查 tasks 数据：console.log 发现是 undefined
2. 刷新页面：问题依旧

## 请帮我

1. 分析错误的根本原因
2. 给出修复方案
3. 解释为什么会出现这个问题
```


## 模板二：逻辑错误分析

适用于：代码能跑但结果不对

```markdown
## 问题描述

代码可以运行，但结果不符合预期。

**期望行为**：[应该是什么结果]
**实际行为**：[实际得到什么结果]

## 测试用例

| 输入 | 期望输出 | 实际输出 | 是否正确 |
|-----|---------|---------|---------|
| [输入1] | [期望1] | [实际1] | ❌ |
| [输入2] | [期望2] | [实际2] | ❌ |
| [输入3] | [期望3] | [实际3] | ✅ |

## 相关代码

```[语言]
[粘贴相关代码]
```

## 我的分析

我怀疑问题可能出在：[你的猜测]

## 请帮我

1. 找出逻辑错误所在
2. 解释为什么当前逻辑会产生错误结果
3. 给出修复后的代码
```

### 填写示例

```markdown
## 问题描述

代码可以运行，但结果不符合预期。

**期望行为**：计算购物车总价时，满 100 减 20
**实际行为**：无论金额多少，都减了 20

## 测试用例

| 输入（商品总价） | 期望输出 | 实际输出 | 是否正确 |
|---------------|---------|---------|---------|
| 150 | 130 | 130 | ✅ |
| 80 | 80 | 60 | ❌ |
| 100 | 80 | 80 | ✅ |

## 相关代码

```javascript
function calculateTotal(items) {
  let total = items.reduce((sum, item) => sum + item.price, 0);
  
  // 满 100 减 20
  if (total > 100) {
    total = total - 20;
  } else {
    total = total - 20;  // 问题可能在这里？
  }
  
  return total;
}
```

## 我的分析

我怀疑问题可能出在：else 分支也减了 20，应该是复制粘贴时忘记删掉

## 请帮我

1. 确认我的分析是否正确
2. 给出修复后的代码
3. 建议如何避免这类复制粘贴错误
```


## 模板三：技术选型咨询

适用于：不知道选什么库、框架、工具

```markdown
## 项目背景

**项目类型**：[简述项目是做什么的]
**技术栈**：[当前使用的技术]
**团队情况**：[个人项目/团队规模/技术水平]

## 选型需求

我需要选择一个 [类型] 来实现 [功能]。

**核心需求**：
- [需求1]
- [需求2]
- [需求3]

**考虑因素**：
| 因素 | 重要程度 | 说明 |
|-----|---------|------|
| 学习成本 | 高/中/低 | [说明] |
| 社区活跃度 | 高/中/低 | [说明] |
| 性能 | 高/中/低 | [说明] |
| 包体积 | 高/中/低 | [说明] |
| 长期维护 | 高/中/低 | [说明] |

## 已知候选（可选）

我目前了解到的选项有：
1. [选项A]：[简单印象]
2. [选项B]：[简单印象]
3. [选项C]：[简单印象]

## 请帮我

1. 补充我可能遗漏的候选方案
2. 从多个维度对比各方案的优缺点
3. 给出推荐方案及理由
4. 说明什么情况下应该选择其他方案
```

### 填写示例

```markdown
## 项目背景

**项目类型**：个人博客网站
**技术栈**：Next.js + TypeScript
**团队情况**：个人项目，前端熟练，后端初学

## 选型需求

我需要选择一个数据库方案来存储博客文章。

**核心需求**：
- 存储文章内容（Markdown 格式）
- 支持分类和标签
- 能按时间排序查询

**考虑因素**：
| 因素 | 重要程度 | 说明 |
|-----|---------|------|
| 学习成本 | 高 | 后端不熟，希望上手简单 |
| 免费额度 | 高 | 个人项目，不想花钱 |
| 与 Next.js 集成 | 中 | 希望有现成教程 |
| 性能 | 低 | 博客访问量不大 |

## 已知候选

我目前了解到的选项有：
1. Supabase：听说是 Firebase 替代品
2. MongoDB Atlas：NoSQL 数据库
3. PlanetScale：MySQL 云服务

## 请帮我

1. 补充我可能遗漏的候选方案
2. 从多个维度对比各方案的优缺点
3. 给出推荐方案及理由
4. 说明什么情况下应该选择其他方案
```


## 模板四：概念解释

适用于：不理解某个技术概念

```markdown
## 想了解的概念

我想理解 [概念名称]。

## 当前困惑

**我目前的理解**：[你现在认为它是什么]
**困惑的地方**：[哪里不理解]

## 希望的解释方式

**技术深度**：[只要知道怎么用/想了解原理/需要深入细节]
**类比偏好**：[喜欢生活化类比/喜欢技术类比/直接解释就好]

## 相关背景

**我的技术背景**：[熟悉什么技术/语言]
**为什么要了解这个**：[应用场景]

## 请帮我

1. 用通俗的语言解释这个概念
2. 给出一个简单的代码示例
3. 说明什么时候会用到它
4. 指出常见的理解误区
```

### 填写示例

```markdown
## 想了解的概念

我想理解 React 中的 useEffect。

## 当前困惑

**我目前的理解**：好像是用来处理"副作用"的，但不知道什么算副作用
**困惑的地方**：
- 什么时候需要用 useEffect？
- 依赖数组是干什么的？
- 为什么有时候会"无限循环"？

## 希望的解释方式

**技术深度**：只要知道怎么用就行，原理以后再说
**类比偏好**：喜欢生活化类比

## 相关背景

**我的技术背景**：会基础 JavaScript，正在学 React
**为什么要了解这个**：想在组件加载时获取数据

## 请帮我

1. 用通俗的语言解释 useEffect
2. 给出"获取数据"的代码示例
3. 说明依赖数组的作用
4. 解释为什么会"无限循环"以及如何避免
```


## 模板五：代码审查

适用于：让 AI 检查代码质量

```markdown
## 审查目标

请帮我审查以下代码：

```[语言]
[粘贴代码]
```

## 审查维度

请从以下维度检查：

- [ ] **功能正确性**：逻辑是否正确，边界情况是否处理
- [ ] **安全性**：是否有安全隐患（XSS、SQL注入等）
- [ ] **性能**：是否有明显的性能问题
- [ ] **可读性**：命名是否清晰，结构是否合理
- [ ] **可维护性**：是否容易扩展和修改
- [ ] **错误处理**：异常情况是否妥善处理

## 代码背景

**这段代码的作用**：[简述功能]
**使用场景**：[在什么情况下运行]

## 输出格式

请按以下格式输出：

1. **问题清单**：列出发现的问题，按严重程度排序
2. **改进建议**：针对每个问题给出具体建议
3. **优化后代码**：给出改进后的完整代码
```


## 精简版：快速提问模板

当问题比较简单时，可以用这个精简版：

```markdown
**问题**：[一句话描述问题]

**背景**：[必要的上下文]

**代码**：
```[语言]
[相关代码]
```

**期望**：[你希望得到什么帮助]
```


## 提问技巧：如何让回答更有用

### 技巧一：先说结论，再给细节

```markdown
❌ 我有一个 React 项目，用的是 TypeScript，然后我在做一个表单验证...
   （AI 读了半天还不知道问题是什么）

✅ 我的表单验证代码报错了。
   技术栈是 React + TypeScript，错误信息是 [xxx]。
```

### 技巧二：给出最小复现代码

不要贴整个文件，只贴**能复现问题的最小代码**。这样 AI 更容易定位问题。

### 技巧三：说明已经尝试过什么

这能帮助 AI 避免给出你已经试过的无效方案。


## 常见填写误区

| 误区 | 问题 | 正确做法 |
|-----|------|---------|
| 只说"不工作" | AI 不知道具体症状 | 描述期望 vs 实际的差异 |
| 错误信息只截一半 | 丢失关键信息 | 完整粘贴，包括堆栈跟踪 |
| 不给代码 | AI 只能猜测 | 贴出相关代码片段 |
| 概念问题太宽泛 | "解释一下 JavaScript" | 具体到某个点，如"解释闭包" |


## 本节要点

- ✅ **错误排查**：完整错误信息 + 触发步骤 + 相关代码 + 已尝试方法
- ✅ **逻辑错误**：用测试用例展示"期望 vs 实际"
- ✅ **技术选型**：明确需求优先级 + 列出考虑因素
- ✅ **概念解释**：说明当前理解和困惑点 + 期望的解释深度
