
很多刚开始使用 AI 编程的同学,会遇到一个问题:
text
我知道可以问 AI,但不知道该怎么问。
于是,经常会出现下面这些提问:
text
这段代码什么意思?
帮我写个函数。
这个报错怎么解决?
帮我优化一下。
AI 当然可以回答。
但问题太宽泛时,得到的内容往往也是泛泛而谈:
- 解释太专业,还是看不懂。
- 代码太复杂,无法运行。
- 排错建议很多,不知道先做哪一步。
- "优化"改动太大,反而不敢使用。
今天这篇文章不讲复杂的 Prompt 工程。
我们只准备 4 个新手可以直接套用的模板,分别用于:
- 解释一段看不懂的代码。
- 生成一个简单函数。
- 排查代码报错。
- 优化已有代码。
你只需要把模板中的方括号内容替换成自己的信息,就可以开始使用。
一、先记住:模板不是万能答案
Prompt 模板的价值,不是让 AI 一次给出百分之百正确的最终答案。
它的价值是帮助你:
- 把问题描述得更清楚。
- 让 AI 输出更适合阅读的内容。
- 减少不必要的猜测。
- 得到更容易验证的步骤。
所以,使用模板时请记住:
text
AI 的回答
↓
自己理解
↓
本地运行
↓
测试结果
↓
确认后再使用
如果 AI 给出的代码和你的项目不一致,不要强行套用。
应该继续补充背景,或者让 AI 先解释差异。
二、模板一:让 AI 解释一段看不懂的代码
适合什么场景
当你遇到下面这些情况时,可以使用这个模板:
- 看不懂教程里的代码。
- 接手项目时遇到陌生文件。
- 不理解某个函数的作用。
- 不知道一段条件判断为什么这样写。
- 想学习某个语法在真实代码中的用途。
可直接套用的模板
text
我正在学习 [编程语言或框架],目前的基础是 [例如:刚学完函数、数组和条件判断]。
下面是一段我看不懂的代码:
```[语言]
[粘贴代码]
请按下面的方式解释:
- 先用一句话说明这段代码整体要解决什么问题。
- 按执行顺序分段解释,不要只解释单个语法。
- 说明每个变量、函数和判断条件的作用。
- 说明输入是什么,输出或结果是什么。
- 给出一个简单的运行示例。
- 指出我可以修改哪几个值来观察不同结果。
- 如果代码中用了超出我当前基础的语法,请先解释它,再继续说明。
ini
### 示例
假设你看不懂下面这段 JavaScript:
```javascript
const activeUsers = users.filter((user) => user.age >= 18);
可以这样提问:
text
我正在学习 JavaScript,目前刚学完数组和函数。
下面是一段我看不懂的代码:
```javascript
const activeUsers = users.filter((user) => user.age >= 18);
请按下面的方式解释:
- 先用一句话说明这段代码整体要解决什么问题。
- 按执行顺序分段解释。
- 说明 users、filter、user 和 age >= 18 分别是什么。
- 给一个包含 3 个用户的运行示例。
- 告诉我把 18 改成 20 后结果会怎样。
ini
### 使用后要做什么
不要只看解释。
建议你把示例代码复制到本地,自己修改:
```javascript
const users = [
{ name: "小明", age: 17 },
{ name: "小红", age: 18 },
{ name: "小刚", age: 20 }
];
const activeUsers = users.filter((user) => user.age >= 18);
console.log(activeUsers);
然后尝试:
- 把
18改成20。 - 新增一个年龄为
25的用户。 - 把
>=改成>。
当你观察到结果变化时,代码才会真正变成你的知识。
三、模板二:让 AI 生成一个简单函数
适合什么场景
这个模板适合:
- 练习某个小功能。
- 写一个数据处理函数。
- 生成一个简单工具方法。
- 学习函数参数和返回值。
- 先得到一份代码草稿,再自己修改。
不适合一上来就让 AI 生成完整项目。
刚开始练习时,函数越小越好。
可直接套用的模板
text
我正在学习 [编程语言和版本]。
请帮我写一个函数,实现下面的功能:
功能目标:
[用一句话说明要做什么]
输入:
- [参数名]:[类型],表示 [含义]
- [参数名]:[类型],表示 [含义]
输出:
- 返回 [结果类型和含义]
规则:
1. [业务规则 1]
2. [业务规则 2]
3. [异常或边界情况如何处理]
限制:
- 不使用第三方库。
- 代码要适合初学者阅读。
- 不使用我还没学过的复杂语法。
请按下面的顺序回答:
1. 先解释实现思路。
2. 给出完整函数代码。
3. 逐行解释关键代码。
4. 给出正常、边界和异常输入的测试示例。
5. 告诉我如何在本地运行。
示例:计算商品最终价格
text
我正在学习 JavaScript。
请帮我写一个函数,实现计算商品最终价格。
输入:
- price:number,商品原价。
输出:
- 返回 number,商品最终价格。
规则:
1. 商品满 100 元减 10 元。
2. 商品价格小于 100 元时不打折。
3. price 必须是大于等于 0 的数字。
4. 如果输入不合法,需要明确提示错误。
限制:
- 不使用第三方库。
- 代码要适合初学者阅读。
请按下面的顺序回答:
1. 先解释实现思路。
2. 给出完整函数代码。
3. 解释关键代码。
4. 给出 price 为 99、100、200、-1 和 "100" 时的测试示例。
5. 告诉我如何在浏览器控制台运行。
为什么要写清输入和输出
只说:
text
帮我写一个价格计算函数。
AI 不知道:
- 折扣规则是什么。
- 价格单位是元还是分。
- 是否允许小数。
- 输入错误时是返回
0、返回null,还是抛出错误。
把输入、输出和规则写清楚后,AI 才更容易写出能验证的代码。
四、模板三:让 AI 帮你排查报错
适合什么场景
当你遇到下面这些问题时,可以使用:
- 页面点击后报错。
- Node.js 程序无法启动。
- 接口请求失败。
- 代码运行结果和预期不一致。
- 安装依赖后出现错误。
排错时最重要的不是"把报错扔给 AI",而是提供完整现场。
可直接套用的模板
text
我的代码出现了问题,请帮助我排查。
我当时在做什么:
[例如:点击登录按钮后,页面报错]
完整报错信息:
```text
[粘贴完整报错,包括文件名和行号]
相关代码:
[语言]
[粘贴报错行附近的代码]
运行环境:
- 操作系统:例如:macOS / Windows
- 语言或运行时版本:例如:Node.js 20
- 框架或库版本:例如:Vue 3
当前数据或输入: 例如:接口返回的数据、表单输入、函数参数
我已经尝试过:
-
已经做过的检查 1
-
已经做过的检查 2
请按下面的顺序回答:
- 用简单语言解释报错的含义。
- 列出最可能的原因,不要直接假设只有一种原因。
- 按从高概率到低概率的顺序给出排查步骤。
- 每一步说明应该看到什么结果。
- 如果信息不足,请明确告诉我还需要提供什么。
arduino
### 示例:读取 undefined 属性
假设页面出现报错:
```text
TypeError: Cannot read properties of undefined (reading 'name')
不要只问:
text
这个报错怎么解决?
可以这样问:
text
我的 Vue 页面在点击"查看用户"按钮后报错。
完整报错信息:
```text
TypeError: Cannot read properties of undefined (reading 'name')
at UserInfo.vue:24
相关代码:
javascript
const userName = userList[0].profile.name;
当前数据:
javascript
const userList = [];
我已经确认:
- userList 是数组。
- 接口请求还没有完成时也会执行这段代码。
请:
- 解释报错原因。
- 给出排查步骤。
- 说明应该如何处理空数组和缺少 profile 的情况。
- 给出适合初学者的修改示例。
markdown
### 排错时不要提交敏感信息
发送代码、日志和报错前,请先删除或替换:
- 密码。
- API Key。
- token。
- Cookie。
- 手机号、邮箱和身份证信息。
- 公司内部域名和真实用户数据。
可以用下面这种方式替换:
```text
Authorization: Bearer [已隐藏]
email: test@example.com
让 AI 帮你排错,不需要把敏感信息也一起交出去。
五、模板四:让 AI 优化已有代码
适合什么场景
"优化代码"很容易变成一个范围过大的任务。
这个模板更适合处理:
- 减少重复代码。
- 改善变量和函数命名。
- 提高可读性。
- 补充基本参数校验。
- 把很长的函数拆得更容易理解。
不建议新手一开始就让 AI "重构整个项目"。
可直接套用的模板
text
下面是一段已有代码:
```[语言]
[粘贴代码]
代码目前可以运行,但我希望改善它的 可读性 / 重复代码 / 参数校验 / 命名 / 某个具体问题。
项目背景: 说明使用的语言、框架和相关上下文
本次目标: 明确想改善什么
限制:
- 不改变函数的输入和输出。
- 不新增第三方依赖。
- 不修改无关文件。
- 不为了"看起来高级"使用复杂写法。
- 如果建议会改变原有行为,请先说明风险,不要直接修改。
请按下面的顺序回答:
- 说明当前代码有哪些可以改善的地方。
- 区分"必须修改"和"可选优化"。
- 给出最小改动方案。
- 给出修改后的代码。
- 对比修改前后行为是否一致。
- 列出需要手动验证的场景。
kotlin
### 示例:优化重复判断
下面这段代码可以运行:
```javascript
function getDiscount(price, memberType) {
if (memberType === "gold") {
if (price >= 100) {
return price - 20;
} else {
return price;
}
} else {
if (price >= 100) {
return price - 10;
} else {
return price;
}
}
}
你可以这样让 AI 优化:
text
下面是一段 JavaScript 代码:
```javascript
[粘贴上面的函数]
代码可以运行,但我希望减少重复判断,让它更容易阅读。
限制:
- 不改变函数的输入和输出。
- 不使用第三方库。
- 价格小于 100 元时仍然返回原价。
- 请使用适合初学者理解的写法。
请先说明重复代码在哪里,再给出最小修改版本。 最后给出 price 为 99 和 100、memberType 为 gold 和 normal 的测试示例。
ini
### 优化后仍然需要测试
无论 AI 把代码改得多简洁,都要验证原有行为没有变化。
例如,至少检查:
```text
[ ] 正常输入是否和原来一致。
[ ] 边界值是否和原来一致。
[ ] 非法输入是否被正确处理。
[ ] 修改后有没有影响调用这个函数的其他地方。
"优化"不是让代码变短,而是让代码在不破坏原有功能的前提下,更容易理解、维护和验证。
六、4 个模板应该怎么选
可以通过下面这张表快速判断:
| 你遇到的问题 | 优先使用的模板 |
|---|---|
| 看不懂一段代码 | 模板一:解释代码 |
| 想练习一个小功能 | 模板二:生成函数 |
| 代码报错或结果不对 | 模板三:排查报错 |
| 代码能运行但不好读、有重复 | 模板四:优化代码 |
如果你还不确定应该选哪个,可以先问 AI:
text
我现在遇到的问题是:
[描述现象]
请先判断这更适合:
1. 解释代码
2. 生成函数
3. 排查报错
4. 优化代码
不要直接给完整代码,先告诉我应该从哪个方向开始,以及我还需要提供什么信息。
七、使用模板后的 3 个验证动作
无论使用哪一个模板,最后都建议完成这 3 件事。
1. 自己复述一次
看完 AI 的回答后,试着用自己的话回答:
text
这段代码要解决什么问题?
输入是什么?
输出是什么?
最容易出错的地方在哪里?
如果完全说不出来,说明还需要让 AI 换一种方式解释。
2. 本地运行一次
不要只在对话窗口里看代码。
至少在本地:
- 运行一次。
- 改一个参数。
- 观察一次结果。
- 记录一次报错或疑问。
运行是检查代码最直接的方法。
3. 测试一个正常情况和一个异常情况
例如,函数需要一个数字参数:
javascript
calculateFinalPrice(100); // 正常情况
calculateFinalPrice(-1); // 异常情况
如果你暂时想不到测试场景,可以让 AI 帮忙列清单:
text
请不要修改代码,只列出这段代码应该手动测试的:
1. 正常场景
2. 边界场景
3. 异常场景
并说明每个场景的预期结果。
八、总结
今天的 4 个模板,分别解决 4 类高频问题:
- 解释代码:帮助你读懂陌生代码。
- 生成函数:帮助你完成边界清楚的小功能。
- 排查报错:帮助你整理现场、缩小排查范围。
- 优化代码:帮助你在不改变行为的前提下改善可读性和重复问题。
使用任何模板时,都不要忘记:
text
补充背景
↓
说明目标
↓
写清限制
↓
规定输出方式
↓
运行和验证
Prompt 不是咒语。
真正提高效率的,不是复制一段模板,而是学会根据当前问题补充必要信息,并验证 AI 给出的结果。
下一篇文章,我们继续练习阅读代码:
让 AI 解释一段看不懂的代码。
✍坚持原创,求关注,点赞,收藏