Skip to Content
Handbook第 2 章:🤖 AI 编程工具实战2.4 对话式编程工作流(进阶)

2.4 对话式编程工作流

写 Prompt 很像写产品需求文档的「极简版」:告诉 AI 你是谁、要做什么、有什么限制、最后要交付什么。用不上花哨词汇,重点是上下文完整。

核心理念:把 AI 当作你的编程伙伴,而不是代码生成机器。清晰的沟通是成功合作的关键。

有效的 Prompt 结构

基础结构公式

[角色定位] + [具体任务] + [技术要求] + [期望输出]

四大要素

  • 角色定位:告诉 AI 它应该扮演什么角色
  • 具体任务:明确要完成的功能和目标
  • 技术要求:指定技术栈和约束条件
  • 期望输出:说明最终要得到什么

示例 1:创建产品落地页

你是一位精通 Next.js 和 Tailwind CSS 的前端工程师。 请帮我创建一个产品落地页,包含以下部分: 1. 导航栏(Logo + 菜单 + CTA按钮) 2. Hero区域(标题 + 描述 + 两个按钮) 3. 特性展示(3个卡片,图标+标题+描述) 4. 定价表(3个价格方案) 5. Footer(版权信息+社交链接) 技术要求: - 使用 TypeScript - 使用 Tailwind CSS - 组件化开发 - 响应式设计 期望输出: - 完整的页面代码 - 组件化的文件结构 - 样式美观且响应式 - 可以直接运行的代码

示例 2:功能模块开发

你是一位有经验的全栈开发工程师,擅长 React 和 Node.js。 请帮我实现一个用户认证系统,包括以下功能: 1. 用户注册(邮箱验证) 2. 用户登录(记住登录状态) 3. 密码重置功能 4. 用户资料管理 技术要求: - 前端:React + TypeScript - 后端:Node.js + Express - 数据库:MongoDB - 认证:JWT - 验证:邮箱验证码 期望输出: - 完整的前后端代码 - 数据库模型定义 - API 接口文档 - 错误处理机制 - 安全性考虑

对话式编程的核心原则

原则 1:提供充分的上下文

上下文的重要性:AI 不知道你的项目背景,你需要提供足够的信息让它理解你的需求。

好的上下文示例

我正在开发一个在线教育平台,主要面向大学生。 当前的技术栈是:Next.js + TypeScript + Prisma + PostgreSQL。 网站已经有用户系统和课程列表功能。 现在需要实现购物车和支付功能。

缺少上下文的示例

帮我做一个购物车

原则 2:分步骤描述复杂需求

渐进式开发:复杂的任务应该分解为多个步骤,每步确认后再进行下一步。

步骤化示例

第一步:创建购物车数据模型 - 定义商品、数量、价格等字段 - 创建数据库表结构 第二步:实现添加到购物车功能 - 在商品页面添加"加入购物车"按钮 - 更新购物车数据 第三步:实现购物车页面 - 显示已添加的商品列表 - 支持修改数量和删除商品 第四步:实现结算功能 - 计算总价 - 跳转到支付页面

原则 3:明确技术约束和偏好

技术约束的作用:告诉 AI 你的技术栈、编码标准、性能要求等,避免生成不符合要求的代码。

技术约束示例

编码规范: - 使用 TypeScript 严格模式 - 组件使用函数式写法 - 使用 ES6+ 语法 - 代码需要添加详细注释 性能要求: - 页面加载时间不超过 3 秒 - 图片需要懒加载 - 使用 React.memo 优化组件 - 避免不必要的重新渲染 兼容性要求: - 支持现代浏览器(Chrome, Firefox, Safari, Edge) - 移动端适配(iOS 12+, Android 8+)

原则 4:及时反馈和修正

反馈循环:AI 生成的代码可能不完美,需要你及时反馈问题并要求修正。

有效反馈示例

感谢生成的代码,但我发现几个问题: 1. 导航栏在移动端显示不正常,按钮重叠了 2. Hero 区域的图片加载速度太慢 3. 价格表在平板电脑上布局错乱 请帮我修复这些问题,特别是移动端的适配。

高级 Prompt 技巧

技巧 1:角色扮演法

给 AI 分配一个具体的角色,让它从专业角度思考问题。

你是一位有 10 年经验的前端架构师, 专门负责大型企业级应用的性能优化。 请帮我分析这个 React 组件的性能瓶颈, 并提供优化方案: [粘贴组件代码]

技巧 2:示例引导法

提供具体的示例,让 AI 参考示例的格式和风格。

请帮我创建一个用户卡片组件,参考这个设计风格: 示例组件: [粘贴一个已有的组件代码] 新组件要求: - 显示用户头像、姓名、职位 - 包含关注按钮 - 响应式设计 - 使用相同的样式规范

技巧 3:约束条件法

明确列出各种约束和限制,让 AI 在给定范围内提供解决方案。

请帮我设计一个 API 接口: 约束条件: - 必须使用 RESTful 设计风格 - 响应时间不超过 200ms - 支持每秒 1000 次请求 - 数据库查询不能超过 3 次 - 返回格式必须统一 功能需求: - 获取用户列表 - 支持分页和筛选 - 返回用户基本信息

技巧 4:错误处理引导

要求 AI 考虑各种异常情况和错误处理。

请帮我实现一个文件上传功能,需要考虑: 错误处理场景: 1. 文件类型不支持 2. 文件大小超过限制 3. 网络上传中断 4. 服务器存储空间不足 5. 文件名冲突 请为每种情况提供合适的错误提示和处理逻辑。

不同场景的 Prompt 模板

场景 1:快速原型开发

你是一位快速原型开发专家,擅长用最短时间创建可演示的产品。 请帮我快速创建一个 [产品类型] 的原型: 核心功能: - [功能1] - [功能2] - [功能3] 技术栈: - [选择的技术栈] 要求: - 功能完整但界面可以简单 - 代码可以优化但必须能运行 - 重点是实现核心业务逻辑 - 不需要考虑边缘情况和优化 时间要求:请在 [时间] 内完成

场景 2:代码重构和优化

你是一位代码重构专家,专门优化现有代码的性能和可维护性。 请帮我优化这段代码: [粘贴需要优化的代码] 当前问题: - [问题1描述] - [问题2描述] 优化目标: - 提高代码可读性 - 改善性能表现 - 增强错误处理 - 减少代码重复 要求: - 保持原有功能不变 - 添加详细注释说明优化点 - 提供性能对比分析

场景 3:调试和问题解决

你是一位资深调试专家,擅长快速定位和解决代码问题。 我遇到了一个技术问题: 问题描述: [详细描述遇到的问题] 相关代码: [粘贴相关代码] 错误信息: [粘贴完整的错误信息] 期望行为: [描述你期望的正确行为] 请帮我: 1. 分析问题原因 2. 提供解决方案 3. 解释为什么会出现这个问题 4. 给出预防措施

对话式编程的最佳实践

实践 1:建立项目知识库

项目背景文档:为每个项目创建背景文档,让 AI 快速了解项目情况。

项目背景模板

项目名称:[项目名称] 项目类型:[网站/App/工具] 目标用户:[用户群体] 主要功能:[核心功能列表] 技术栈: - 前端:[前端技术] - 后端:[后端技术] - 数据库:[数据库类型] - 部署:[部署方式] 编码规范: - [代码风格要求] - [命名规范] - [文件组织方式] 当前进度: - 已完成功能 - 正在开发的功能 - 待开发的功能

实践 2:使用版本控制思维

版本化对话:把每次重要的对话和生成的代码当作一个版本,便于追踪和回滚。

版本控制技巧

// 对话开始前 === 版本 1.0 - 基础功能实现 === [描述当前版本的功能] // 对话过程中 // 正在开发版本 1.1 - 添加用户认证 [记录新增功能和修改] // 重要里程碑 === 版本 2.0 - 发布候选版本 === [总结当前版本的所有功能]

实践 3:代码审查习惯

人工审查:不要盲目接受 AI 生成的代码,要养成代码审查的习惯。

审查清单

  • 代码逻辑是否正确
  • 是否符合项目编码规范
  • 是否有安全漏洞
  • 性能是否可以接受
  • 错误处理是否完善
  • 注释是否清晰
  • 是否有重复代码

实践 4:增量开发策略

小步快跑:采用增量开发策略,每次只实现一个小功能,及时测试和验证。

增量开发流程

  1. 需求分析:明确本次要实现的小功能
  2. AI 对话:向 AI 清楚描述需求
  3. 代码生成:获取 AI 生成的代码
  4. 人工审查:检查代码质量和逻辑
  5. 功能测试:验证功能是否正常工作
  6. 代码集成:将代码集成到项目中
  7. 回归测试:确保没有破坏现有功能

常见的对话陷阱

陷阱 1:需求描述模糊

模糊需求示例

帮我做一个好看的网站 优化一下这个函数 让这个页面更好用

改进方法:提供具体的、可衡量的需求描述。

陷阱 2:缺少上下文信息

缺少上下文示例

帮我修复这个 bug [粘贴代码]

改进方法:说明项目背景、技术栈、相关代码等信息。

陷阱 3:一次性要求过多

过度复杂需求示例

帮我创建一个完整的电商系统,包括用户管理、商品管理、订单管理、支付系统、物流跟踪、数据分析、营销活动...

改进方法:将复杂需求分解为多个小任务,逐步实现。

陷阱 4:不进行代码验证

危险行为

  • 直接复制粘贴代码到项目
  • 不测试就提交代码
  • 不审查代码安全性

改进方法:始终进行人工审查和测试验证。

学习和实践建议

练习 1:Prompt 重构练习

目标:将模糊的需求描述重构为清晰有效的 Prompt

练习方法

  1. 收集一些模糊的需求描述
  2. 按照四要素结构重构
  3. 对比 AI 生成的结果质量
  4. 总结改进经验

练习 2:项目模拟对话

目标:模拟真实项目的开发对话流程

练习方法

  1. 选择一个小的项目想法
  2. 使用对话式编程完成项目
  3. 记录每次对话的内容
  4. 分析哪些对话效果好,哪些需要改进

练习 3:代码审查训练

目标:培养对 AI 生成代码的审查能力

练习方法

  1. 让 AI 生成一些代码
  2. 按照审查清单逐一检查
  3. 标出所有问题和不完善之处
  4. 要求 AI 修正这些问题

下一步:掌握对话式编程工作流后,继续学习 Prompt 工程技巧,进一步提升与 AI 的协作效率。

Last updated on