当前位置: 首页 > news >正文

【cursor】常用使用技巧篇

文章目录

  • 基础知识
      • 什么是 Token?
      • 什么是 上下文?
  • 技巧
      • 即时切换上线文
      • 维护功能描述文档
      • 每次会话聚焦单一任务
      • 简单功能:精准直接的"指令式"提问
        • 技巧模板:三要素确保精准度
        • 提问示例
      • 相似功能:让cursor参考已存在的方法或者类
        • 技巧模板:参考+差异的黄金组合
        • 提问示例
      • 复杂功能:化整为零的"任务拆解式"提问
        • 提问示例
          • 第一阶段:顶层设计(架构层面)
          • 第二阶段:分步实现(编码层面)
          • 第三阶段:集成与优化(完善层面)

基础知识

目前(25年11月)由于各种原因,国内的cursor即使充值了Pro,也无法直接使用GPT-5或claude code的最新模型,但Cursor 2.0中集成了自研的composer大模型也十分的好用,足以应对大多数开发场景,本文主要分享cursor在功能开发上的使用攻略。
在这里插入图片描述

什么是 Token?

Token 是 AI 模型处理文本的基本单位。可以这样理解:

  • 1个英文单词 ≈ 1-2个 Tokens
  • 1个中文字符 ≈ 1-2个 Tokens
  • 1行标准代码 ≈ 10-20个 Tokens

什么是 上下文?

上下文也被叫做AI工作的记忆区

AI IDE的工作记忆区-200k Tokens
你打开的文件内容
当前的对话历史
你引用的代码
AI生成的代码和建议
项目结构信息
你提供的规则和约束
cursor自带的提示词

这个记忆区的工作原理:

  • 你提供的所有信息都在这个区域内,AI 都能"看到"并运用
  • 新加入的信息会不断填充这个空间
  • 当空间不足时,AI会压缩上下文,可能会丢失关键信息,影响代码生成效果

技巧

掌握了基础认知后,我们来深入探讨具体的技巧。不同的开发场景需要不同的提问策略,就像使用不同的工具处理不同的材料一样。

即时切换上线文

通过上文聊到的基础可以很自然的知道控制上下文长度,及时的切换上下文是一个非常基础且重要的技巧
在这里插入图片描述
何时应该开启新会话(切换上下文)?

应该开新会话可以继续当前会话
全新的功能模块开发同一功能的迭代优化
不相关的Bug修复相关功能的逻辑扩展
不同的技术栈任务基于现有设计的实现
独立的代码审查同一业务逻辑的深化

维护功能描述文档

在项目根目录维护README文档,包含项目的功能文件路径。背后的逻辑也是和上下文相关,一个合适的说明文档可以大大减少AI需要扫描的文件数量
在这里插入图片描述

每次会话聚焦单一任务

很多开发者容易犯的一个错误是:在同一个会话中处理多个不相关的任务

混合多个任务
上下文污染
AI理解混乱
生成代码质量下降
开发者体验变差

反面案例:

开发者提问记录:
1. "帮我写一个用户登录的JWT验证"
2. "现在优化一下商品列表的查询性能"  
3. "再帮我写个邮件发送的工具类"
4. "对了,刚才的用户登录还需要添加日志记录"
→ 结果:AI混淆了不同任务的要求,生成的代码包含各种不相关的逻辑

简单功能:精准直接的"指令式"提问

指令式提问适用于逻辑清晰、范围明确的简单功能开发,比如:

  • 基本的 CRUD 操作
  • 工具函数编写
  • 数据验证逻辑
  • 简单的算法实现
技巧模板:三要素确保精准度
**目标清晰** + **关键信息完备** + **约束条件明确**
要素检查项示例
目标是否清晰说明了要做什么?“验证商品名称唯一性”
上下文是否提供了相关服务/类?@ProductService
约束是否包含业务规则?“名称不能重复,存在则抛异常”
输出是否明确了期望的输出?“返回布尔值” 或 “抛出异常”
提问示例

❌ 模糊提问:

"写一个商品名称验证"

✅ 精准提问:

# 在商品创建功能中,需要验证商品名称在数据库中的唯一性。
# 请为 @ProductService 编写相应的验证逻辑,要求:
# 1. 检查商品名称是否已存在
# 2. 如果存在则抛出异常
# 3. 使用适当的异常类型和错误信息

相似功能:让cursor参考已存在的方法或者类

当项目中已存在类似实现时,模式复用式提问能确保代码风格和架构的一致性:

  • 新增类似业务模块
  • 扩展现有功能
  • 保持项目代码规范统一
技巧模板:参考+差异的黄金组合

指明参考对象 + 说明差异点 + 保持一致性

提问示例
// 参考项目中 UserService.updateUserProfile 方法的实现风格和错误处理方式,
// 为 @ProductService 编写一个 updateProduct 方法。
//
// 差异点说明:
// 1. 需要同时更新 @ProductDetailService 中的商品名称和商品单位
// 2. 商品状态为"下架"时不允许更新
// 3. 需要记录操作日志,参考原有的日志格式

复杂功能:化整为零的"任务拆解式"提问

对于涉及多个服务、步骤繁多的复杂功能,任务拆解式提问是最高效的策略:

  • 完整的业务流程(如下单、支付)
  • 跨模块的功能开发
  • 系统集成场景
提问示例

三阶段拆解法:设计→实现→集成

第一阶段:顶层设计(架构层面)

提示词:

我需要开发一个"用户下单"功能,涉及以下服务:
- 商品服务:验证商品信息和库存
- 订单服务:创建订单记录
- 库存服务:扣减库存
- 支付服务:处理支付请先帮我设计:
1. 模块交互的时序图使用mermaid格式返回
2. 主要的接口定义和方法签名
3. 异常处理机制和回滚策略

AI 生成的架构设计:

用户订单服务商品服务库存服务支付服务提交订单请求验证商品信息返回商品详情检查库存库存充足生成订单(待支付)发起支付返回支付页面用户订单服务商品服务库存服务支付服务
第二阶段:分步实现(编码层面)

** 分步骤提问:**

步骤1:基于上面的设计,先在 @OrderService 中创建 createOrder 方法框架。
该方法需要:
- 接收商品列表和用户ID
- 调用 @ProductService 验证商品信息
- 返回订单基本信息(不包含支付)
第三阶段:集成与优化(完善层面)

** 完善性提问:**

现在为 createOrder 方法添加完整逻辑:
1. 调用 @InventoryService 进行预扣库存
2. 添加库存不足时的回滚机制
3. 考虑分布式事务的解决方案
4. 添加适当的日志记录
http://www.dtcms.com/a/566324.html

相关文章:

  • 河北保定建设集团招聘信息网站百度是什么网站
  • 华为OD机试双机位A卷 - IPv4地址转换成整数 (C++ Python JAVA JS GO)
  • 个人网站不备案可以吗网站域名注册商标有什么好处
  • CSS实现跑马灯效果-案例
  • 1元云购网站怎样建设php做网站登陆验证
  • 织梦 营销型网站网络运维工程师有前途吗
  • 11. Qt 绘图-基础
  • 【LeetCode】组合问题——1863.找出所有子集的异或总和再求和(回溯)
  • 网站安全维护公司浙江省住房和城乡建设部网站
  • 成都哪些公司做网站好用网址进入的游戏
  • sparkSQL读取数据的方式
  • 国内免费建站网站wordpress教程视频教程
  • 网站logo显示新闻头条最新
  • MongoDB基本使用(包含工具类)
  • 和15岁女儿做很舒服网站网页设计软件排名
  • 高防IP真能100%防御DDoS攻击吗
  • 新建网站怎么做优化广州建设工程交易中心改版
  • 申请免费网站公司长春网站建设哪家好
  • SQL SERVER 索引
  • 深入浅出 Java 虚拟机之基础原理
  • 【数维杯赛中助攻+1,英文普刊知网检索+1】
  • 发布 php 微网站网站建设销售提成
  • 哈尔滨网站建设赚钱么自己做的视频网站上传电影
  • 建设电子商务网站前的市场分析合肥有哪些做网站的公司
  • 免费cms建站微网站开发平台 知乎
  • css学习盒模型:
  • 杭州网站建设出 名wordpress生成静态 mip
  • js 实现深拷贝
  • 素材设计做的好的网站有哪些帝国 网站搬家
  • 商城手机网站设计做阿里巴巴网站图片尺寸