程序员的提示工程实战手册

提示工程的核心原则

在与AI代码助手协作时,有效的沟通策略至关重要。想象你正在指导一位技术能力很强但对你项目背景一无所知的同事,你需要提供足够的信息让他理解并解决问题。

关键原则

提供充分的上下文信息

  • 使用的编程语言和框架版本
  • 具体的错误信息和堆栈跟踪
  • 代码的预期功能和实际表现
  • 相关的项目约束和技术栈

明确具体的目标 避免模糊描述,清楚说明你要解决什么问题:

❌ “让我的代码更好” ✅ “重构这个函数以提高可读性,减少代码重复,并使用ES6语法”

分步骤处理复杂任务 将大任务拆解为小步骤:

PHP
1. 首先生成React组件的基本结构
2. 然后添加状态管理逻辑
3. 最后集成API调用和错误处理

提供输入输出示例 通过具体例子说明期望的行为:

PHP
// 期望: formatPrice(2.5) 返回 "$2.50"
// 期望: formatPrice(100) 返回 "$100.00"

调试场景的高效提示

实战案例:React Hook 依赖问题

问题代码:

PHP
const UserProfile = ({ userId }) => {
  const [user, setUser] = useState(null);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetchUser(userId).then(setUser).finally(() => setLoading(false));
  }, [userId, setUser, setLoading]); // 问题在这里

  return loading ? <div>Loading...</div> : <div>{user?.name}</div>;
};

❌ 低效提示:

PHP
我的useEffect有问题,组件一直重新渲染

✅ 高效提示:

PHP
我有一个React组件出现无限重新渲染问题:

预期行为:当userId变化时获取一次用户数据
实际行为:组件无限循环重新渲染
错误信息:Warning: Maximum update depth exceeded

代码如上,问题在useEffect的依赖数组中。setUser和setLoading是否应该加入依赖?为什么会导致无限循环?请解释React Hook依赖的最佳实践。

调试提示模板

PHP
问题描述:[简要说明问题]
预期行为:[代码应该做什么]
实际行为:[现在发生了什么]
错误信息:[完整的错误消息]
相关代码:[提供代码片段]
技术环境:[语言版本、框架版本]

重构场景的系统化方法

明确重构目标

重构时要明确改进方向:

重构目标提示模板示例
性能优化“优化这个函数的[具体性能指标]”“优化这个函数,消除O(n²)复杂度”
代码清理“重构以提高[可读性/可维护性]”“重构这个函数,减少嵌套并改善命名”
技术升级“将[旧技术]改写为[新技术]”“将类组件改写为使用Hooks的函数组件”

实战案例:性能优化重构

原始代码(存在O(n²)问题):

PHP
function processUserData(users, orders) {
  const result = [];
  
  for (let user of users) {
    const userOrders = [];
    for (let order of orders) {
      if (order.userId === user.id) {
        userOrders.push(order);
      }
    }
    
    const totalSpent = userOrders.reduce((sum, order) => sum + order.amount, 0);
    result.push({ ...user, orders: userOrders, totalSpent });
  }
  
  return result;
}

✅ 性能优化提示:

PHP
以下函数存在O(n²)时间复杂度问题,需要优化为O(n):

[代码]

优化要求:
1. 消除嵌套循环,使用Map进行O(1)查找
2. 减少重复计算,一次遍历完成数据聚合
3. 保持代码可读性,添加性能注释
4. 处理边缘情况:用户无订单的情况

请提供重构后的代码并解释优化思路。

功能开发的渐进式提示

从架构到实现的分层开发

第一步:架构设计

PHP
设计一个多步骤表单的状态管理架构:

功能需求:
- 支持3个步骤的表单流程
- 实时验证和数据持久化
- 前进/后退导航

技术栈:React + TypeScript + React Hook Form

请提供:
- 状态结构设计
- 主要Hook接口设计
- 状态转换逻辑

第二步:核心实现

PHP
基于前面的架构设计,实现核心的useMultiStepForm Hook:

要求:
1. 管理当前步骤和表单数据
2. 提供nextStep、prevStep、updateStepData方法
3. 集成表单验证逻辑
4. 自动保存到localStorage

请提供完整的Hook实现代码。

功能开发模板

PHP
## 任务描述
[你要解决的问题]

## 技术环境
- 语言/框架:
- 版本信息:
- 相关库:

## 具体要求
- 功能需求:
- 性能要求:
- 代码风格:

## 约束条件
- 不能使用:
- 必须遵循:

## 期望输出
[描述期望的结果格式]

高级提示技巧与常见误区

十大高效提示技巧

技巧模板应用场景
角色设定“你是一名资深[语言]开发者,请[任务]”代码审查、架构建议
问题诊断“这是问题:[描述],代码如下,原因是什么?”Bug定位
示例驱动“函数输入[X]应输出[Y],请实现”功能开发
分步执行“逐行分析这个函数,变量值如何变化?”逻辑调试
约束限定“请避免[X],使用[Y],优化[Z]”符合项目规范

常见误区与解决方案

1. 信息过载 ❌ 一次性要求解决多个复杂问题 ✅ 分步骤逐个解决

2. 信息不足 ❌ “修复我的代码” ✅ 提供错误信息、预期行为、相关代码

3. 目标模糊 ❌ “让代码更好” ✅ “提高可读性并减少内存使用”

代码审查提示模式

PHP
扮演资深技术架构师,对以下代码进行深度审查:

[代码内容]

审查维度:
1. 架构设计:是否符合SOLID原则?
2. 性能考量:有无性能瓶颈?
3. 安全性:是否存在安全漏洞?
4. 可维护性:代码是否易于理解和修改?

请提供具体问题、建议和改进示例。

最佳实践建议

持续迭代改进

PHP
第一轮:获得基本解决方案
第二轮:优化和改进
第三轮:添加错误处理和测试

验证和学习

  • 总是验证AI生成的代码
  • 运行测试确保功能正确
  • 分析AI的解决思路
  • 记录有效的提示模式

结语

提示工程是一门实用技能,需要在实践中不断磨练。通过清晰的沟通、具体的要求和耐心的迭代,你能够显著提升编程效率。记住,AI助手就像一位聪明但需要明确指导的合作伙伴,良好的提示能让它成为你编程路上的得力助手。

更多产品请查看

更多内容请查看

ShirtAI – 渗透智能 AIGC大模型:开创工程与科学双重革命时代 – 渗透智能
1:1还原Claude和GPT官网 – AI云原生 比赛直播APP 全球高清体育观影播放器(推荐) – 蓝衫科技
基于官方API的中转服务 – GPTMeta API 求助,各位大神谁能提供一些GPT的提问技巧?– 知乎
全球化虚拟商品数字商店 – 环球智购(凤灵阁) Claude airtfacts功能有多强大,GPT瞬间不香了?-哔哩哔哩

广告位

基于 官方API 的中转代理服务

在这个开放与分享的时代,OpenAI引领了一场人工智能的革命。现在,我们向全球宣布:我们已经全面支持OpenAI的所有模型,例如:支持GPT-4-ALL、GPT-4-多模态、GPT-4-gizmo-*等以及各种国产大模型。最令人振奋的是,我们已经向世界推出更强大、更具影响力的GPT-4o!

站点导航

首页
对接第三方
控制台
使用说明
在线监控

联系我们

公众号二维码

公众号

企业合作二维码

合作微信

Copyright © 2021-2024 版权所有 2024 | GPTMeta API