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设计。

[期望输出]
请提供{代码/设计/建议},并解释{关键决策点}。
相关推荐
oradh3 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist3 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
2601_963282775 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo5 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师5 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶7 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP7 小时前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils7 小时前
sys_dump 备了库,角色和权限别漏在外面
数据库
接着奏乐接着舞。8 小时前
【2026】73道Redis 常见面试题与参考答案
数据库·redis·后端·缓存