Cursor最佳实践之二:提问技巧

一. 最佳实践

短对话优于长对话,保持对话简短、专注,每个对话只做一件事

二. 实践前提

先要自己理解问题,把复杂问题解构成一个个的小问题或步骤,用AI做任务,而不是决策

三. 底层原理

LLM的工作方式是基于概率最大预测下一个token,每次只预测一个token,流式输出,无法修改之前输出的内容,一旦中间一步走偏,会沿着偏差继续自圆其说。对话拆分本质上是任务拆分,短对话也更容易追踪,每个对话都有明确的目标,中间可以不断"尝试--反馈---调整",这样做的好处:

  1. 每一步都可控,容易发现问题

  2. 可以根据实际情况调整方向

  3. 降低出错概率

  4. AI 理解更准确

四. 实践示例

错误示例:

XML 复制代码
"帮我完成整个标签管理模块,包括增删改查、权限控制、日志记录、数据验证、异常处理、单元测试"

正确示例:

XML 复制代码
Step 1: "帮我设计标签表的数据库结构"
Step 2: "生成标签实体类和 Mapper"
Step 3: "实现标签列表的分页查询功能"
Step 4: "添加标签新增功能,并处理唯一性校验"
Step 5: "为新增功能添加参数验证"
Step 6: "添加操作日志记录"

一个典型的工作流程:

XML 复制代码
功能:用户登录后的会话管理
[对话 1] 调研现有代码结构    
├── 了解 auth 模块的实现    
├── 查看 session 管理的现状    
└── 输出:关键文件列表和当前架构理解

[对话 2] 实现基础功能    
├── 参考对话 1 的发现    
├── 实现核心的 session 保存逻辑   
└── 输出:基础实现代码

[对话 3] 添加错误处理    
├── 参考对话 2 的实现    
└── 增加边界情况处理

[对话 4] 编写测试    
├── 参考对话 2、3 的实现    
└── 添加单元测试和集成测试

[对话 5] 代码审查    
├── 检查实现是否符合项目规范    
└── 确认没有引入安全问题

[对话 6] 清理和重构    
└── 根据审查结果进行调整

注:上面代码引用自https://mp.weixin.qq.com/s/Zlwn42KyfjgwfX6lp-JthQ

五. 实战建议

  1. 复杂任务拆解成 5-10 个小步骤

  2. 每个步骤完成后验证再继续

  3. 遇到问题及时调整,不要硬推

  4. 重要步骤让 AI 解释思路

六. 提问工程学

  1. 结构化提问框架:CRISP法则
XML 复制代码
C - Context 上下文
R - Requirements 需求
I - Input/Output 输入输出
S - Style/Constraints 风格约束
P - Priority 优先级

示例应用:

XML 复制代码
基于CRISP框架的完美提问:

[上下文]
我正在开发电商平台的订单服务,当前文件结构:
- OrderService.js (主服务类)
- OrderRepository.js (数据访问层)
- OrderValidator.js (验证逻辑)

[需求]
需要实现一个批量更新订单状态的功能,支持事务处理

[输入输出]
输入:orderIds数组,targetStatus字符串,operatorId
输出:成功更新的订单数量,失败详情列表

[风格约束]
1. 使用async/await
2. 遵循公司ESLint配置(Airbnb风格)
3. 包含完整的错误处理
4. 添加JSDoc注释
5. 支持数据库事务回滚

[优先级]
先实现核心功能,再添加日志和监控

七. 提问模板

XML 复制代码
[背景] 
我正在{工作上下文},涉及{技术栈}。

[目标]
需要实现{具体功能},解决{业务问题}。

[约束条件]
- 必须遵循{公司规范}
- 性能要求{具体指标}
- 安全性考虑{具体要求}

[示例参考]
类似功能的代码片段或API设计。

[期望输出]
请提供{代码/设计/建议},并解释{关键决策点}。
相关推荐
小小码农Come on24 分钟前
Qt Creator + MSVC 2022 64bit 配置 Dump 文件生成与分析流程
数据库·qt
qiuyuyiyang29 分钟前
【MySQL】环境变量配置
数据库·mysql·adb
jgyzl2 小时前
2026.3.11MyBatis-Plus基本使用与思考
java·数据库·mybatis
RDCJM2 小时前
【MySQL】在MySQL中STR_TO_DATE()以及其他用于日期和时间的转换
android·数据库·mysql
vanvivo2 小时前
redis 使用
数据库·redis·缓存
加成BUFF3 小时前
解决MySQL/MariaDB忘记root密码:完整重置教程(XAMPP/Windows版)
数据库·mysql·xampp
杰克尼3 小时前
苍穹外卖--day10
java·数据库·spring boot·mybatis·notepad++
dreamread3 小时前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
小江的记录本3 小时前
【SQL】多表关系与冷热数据(全维度知识体系)
数据库·sql·mysql·数据库开发·数据库架构
数据知道3 小时前
MongoDB慢查询分析:详细讲述如何使用profile集合识别性能瓶颈
数据库·mongodb