AI Coding 工具使用技巧,以 Cursor 为例
bigegpt 2025-05-27 12:46 9 浏览
随着AI技术的不断发展,AI编程工具如Cursor正逐渐成为开发者的新宠。这些工具不仅能够提高编程效率,还能帮助开发者解决复杂的开发问题。本文作者结合自己的实际使用经验,分享了如何高效使用Cursor进行项目开发的技巧和思路。
这篇内容主要分享我在用 Cursor 过程中的一些技巧,内容包括怎么确认需求、拆分任务、执行落地,以及写代码和调试时的思路。
此外还会聊聊项目启动前的准备、IDE 的配置,甚至是 App 上架的一些小经验,希望能给同在开发路上的你参考一下。
1. 技巧 & 思路
需求确认
- 新建项目 idea.md 文件,而非 notepad(支持 MarsCode 等插件引用),通过与 chat 对话,去确认、完善需求。
- 后续可以完善,并作为模板使用。
注意 :后续封装代码时要考虑删除(毕竟需求都做完了,需要时再新建)。
需求分拆
- 基于需求分拆为可实现的小步骤,并新建 reference.md 文件。
- 目的是确保需求清晰,AI 能够理解你的需求。Cursor 还没有强到分拆、执行这么多需求(上下文长度),几句话让 AI 实现和你想象中一模一样的东西,所以这里核心要确认 AI 理解的需求是否为自己想要的。
步骤执行
- 让 Cursor去编译项目,并解决问题(减少从 Xcode 复制错误代码,再给Cursor修复的时间)。
- 用 html、css、js 的方式生成静态页面。修改、完善需求。
写代码(要有耐心):写代码 – 改 bug – 调试 – 验证。
其他 Rules
- 如果涉及有需要密码验证的环节,请及时打断并详细说明,我应该执行什么步骤。
- 如安装依赖时,不断报错。
2. 持续学习如何更好与 AI 协作
2.1 新建文件 .cursorrules .cursorignore
请你帮我检索 codebase,并生成 .cursorrules 以及 .cursorignore 文件
请你在执行操作前,先复述一遍我的需求再进行操作,让我先确认你清楚我的需求
2.2 需求确认
我想要这个 App 是一个简单的、可本地化运行的 App,请你作为产品专家,帮我完成需求的梳理,并将内容填充到文件 `idea.md` 中。
2.3 需求分拆
现在需要输出高保真、可交互的原型图,并确保这些原型图可以直接用于开发。
1. 用户体验分析:请先分析这个 App 的主要功能与用户需求,确定核心交互逻辑。
2. 产品界面规划:作为产品经理,定义关键界面,确保信息架构合理。
3. 高保真 UI 设计:作为 UI 设计师,设计贴近真实 iOS 设计规范的页面,使用现代化的 UI 元素,使其具有良好的视觉体验。
4. HTML 原型实现:使用 HTML + Tailwind CSS(或 Bootsrap)生成所有原型界面,并使用 FontAwesome(或其他开源 UI 组件)让界面更加精明,解决真实的 App 设计,拆分代码文件,保持结构清晰。
5. 每个界面应作为独立的 HTML 文件存放,比如 home.html, Profile.html, settings.html 等。
– index.html 作为主入口,不直接写入所有页面的 html 代码,而是使用 iframe 的方式嵌入这些 HTML 片段,并将所有页面直接平铺展示在 index.html 页面中,而不是跳转链接。
– 真实感增强,界面尺寸应模拟 iPhone 16 Pro Max,并让界面圆角化,使其更像真实的手机页面。
– 使用真实的 UI 图片,而非占位图片,可以用 Unsplash、Pexels、Apple 官方 UI 资源中选择。
– 添加顶部状态栏(模拟 iOS 状态栏),并包含 App 导航栏(类似 iOS 底部 Tab Bar)。 请按照
以上要求生成完整的 HTML 代码,并确保其可用于实际开发。
此时,可以随时截图 index.html 页面的原型图使用。
2.4 步骤执行
请你参考文件 `prd.md` 中的需求和原型图,帮我完成这个 iOS App 的开发。
当前位置在这个 iOS 开发项目的根目录中,已有文件不需要你重复创建,直接编辑就好,但你可以创建本地没有且你需要的文件。
2.5 Bug 修复
新建文件 bug.md ,将 Xcode 的 bug 复制进去, 让 AI 处理。
2.6 使用技巧
清晰有逻辑的表达需求、让 AI 复述需求、发送示例参考、发送自己的解决思路给 AI(可选)
1)Toglle AI Pane 技巧
检测:Save all 支持先保存并测试,确认后再选择Reject all或Accept all
回滚: Checkpoint created。 restore ,点击 restore
预防:
- 让 AI 复述需求指令。请你先复述一遍我的需求再进行答复,让我确认你清楚我的需求|延伸:可以试试将其更新到 .cursorrules 文件中。
- 让这个需求指令足够小,足够单一化,不要让 AI 猜你的想法。要有足够的针对性,并且要明确范围,最大程度缩小辐射范围。在修改内容时,要尽可能 @相关文件,并且告诉 AI 要在什么范围内修改。
2)需求拆解:多需求,使用有序/无序列表的方式描述。
把需求拆解为多个功能 feature
3)把 AI 当成小孩子:尽可能逻辑清晰,描述问题要加以引导。
必要时,发送示例参考、发送自己的解决思路给 AI(可选)。
4)新项目的准备 步骤
让 composer 帮你检索 codebase,然后生成 .cursorrules 文件。可手动添加想要索引忽略掉的文件。
打开「设置-features-Codebase indexing」,点击「Resvnc Index」重新索引。
将文档录入 Docs 中备用,如「需求文档、接口文档、开发相关的技术文档」等。
在项目根目录中,新建.cursorrules 文件,作为 Prompt 前置词。
- 在 chat 中,@相关文档(项目文档、需求文档)让 AI 检索整个项目,并生成一个 .cursorrules 文件,并适当修改。
- 比如「请你先复述一遍我的需求再进行答复,让我确认你清楚我的需求」。
如果是版本差异间的 bug,可以 @git ,然后让 chat 检索差异,精准获得 bug 产生原因以及解决思路。
- 简单 bug 直接让 composer 修复。
- 复杂 bug 则需要新建 notepads 文件,详细阐述 bug 产生可能性及解决方案。然后在 composer 中 @notepad 让 AI 修复。
- 项目结束后,可以将 notepad 文件封存,下次就可以让 AI 快速理解这个项目。一定要及时归纳,因为 notepad 是存放在 Cursor 的缓存中,换设备后就丢失了。
2.7 常用文件创建
readme.md 代码简介及代码修改说明。
notepads 与 composer的互通桥梁。
- feature.md 功能说明,过程需不断补充。
- error.md 错误说明,实时更新。先与 chat沟通解决方案,并更新解决方案在当前文件,让composer去解决。
.cursorignore 将包含常见的需要忽略的文件和目录。
.cursorrules 只针对这个项目的规则,需要 AI 工作时参考的 Rules。包括但不限于:前置、项目简介、技术架构、目录结构、代码规范、命名规范、组件规范、样式规范、国际化规范
3. IDE 使用技巧
Xcode 新建项目完毕后,要在 Cursor 中「暂存更改」,方便回溯到刚创建时的文件及文件夹结构。
在源代码管理工具中,后面的 “U” 通常表示文件的状态。具体来说:
U:表示文件是“未跟踪”(Untracked)。这意味着该文件存在于工作目录中,但尚未被 Git 纳入版本控制。
文件状态的常见标识:
- U:未跟踪文件
- M:已修改文件(Modified)
- A:已添加文件(Added)
- D:已删除文件(Deleted)
- R:已重命名文件(Renamed)
4. App Store 上架技巧
4.1 Xcode
1)删掉 iPad 版本。
2)最低 iOS 运行版本为 iOS 16。注意,此时要再次编译下,确认是否有问题。
3)Display Name 即为 App Store 显示名称。
4)Version 为 1.0.0
5)创建图标。
- 可以让 Cursor 创建一个 1024*1024 的 svg 图片作为应用图标,比新建文件 icon.svg 来存储内容。
- 然后将 icon 导入 Xcode 中的 Assets 中。
6)最后,在 Xcode 中的打包项目,路径:Product-Archive – Distribute App – App Store Connect – Distribute
7)Web 页面「App Store Connect」
- 发布文案可以通过 Cursor 来写。
- 隐私协议、技术支持文档,可以放在飞书云文档中。
我要把 App 发布上架到 App Store,请帮我完成上架信息的填写,包括有
1. 推广文本、描述、关键词
2. 技术支持说明、隐私协议说明
3. 主标题、副标题
扩展内容
相关推荐
- 【Docker 新手入门指南】第十章:Dockerfile
-
Dockerfile是Docker镜像构建的核心配置文件,通过预定义的指令集实现镜像的自动化构建。以下从核心概念、指令详解、最佳实践三方面展开说明,帮助你系统掌握Dockerfile的使用逻...
- Windows下最简单的ESP8266_ROTS_ESP-IDF环境搭建与腾讯云SDK编译
-
前言其实也没啥可说的,只是我感觉ESP-IDF对新手来说很不友好,很容易踩坑,尤其是对业余DIY爱好者搭建环境非常困难,即使有官方文档,或者网上的其他文档,但是还是很容易踩坑,多研究,记住两点就行了,...
- python虚拟环境迁移(python虚拟环境conda)
-
主机A的虚拟环境向主机B迁移。前提条件:主机A和主机B已经安装了virtualenv1.主机A操作如下虚拟环境目录:venv进入虚拟环境:sourcevenv/bin/active(1)记录虚拟环...
- Python爬虫进阶教程(二):线程、协程
-
简介线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能...
- 基于网络安全的Docker逃逸(docker)
-
如何判断当前机器是否为Docker容器环境Metasploit中的checkcontainer模块、(判断是否为虚拟机,checkvm模块)搭配学习教程1.检查根目录下是否存在.dockerenv文...
- Python编程语言被纳入浙江高考,小学生都开始学了
-
今年9月份开始的新学期,浙江省三到九年级信息技术课将同步替换新教材。其中,新初二将新增Python编程课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材...
- CentOS 7下安装Python 3.10的完整过程
-
1.安装相应的编译工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-develope...
- 如何在Ubuntu 20.04上部署Odoo 14
-
Odoo是世界上最受欢迎的多合一商务软件。它提供了一系列业务应用程序,包括CRM,网站,电子商务,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成在一起。Odoo可以通过几种不同的方式进...
- Ubuntu 系统安装 PyTorch 全流程指南
-
当前环境:Ubuntu22.04,显卡为GeForceRTX3080Ti1、下载显卡驱动驱动网站:https://www.nvidia.com/en-us/drivers/根据自己的显卡型号和...
- spark+python环境搭建(python 环境搭建)
-
最近项目需要用到spark大数据相关技术,周末有空spark环境搭起来...目标spark,python运行环境部署在linux服务器个人通过vscode开发通过远程python解释器执行代码准备...
- centos7.9安装最新python-3.11.1(centos安装python环境)
-
centos7.9安装最新python-3.11.1centos7.9默认安装的是python-2.7.5版本,安全扫描时会有很多漏洞,比如:Python命令注入漏洞(CVE-2015-2010...
- Linux系统下,五大步骤安装Python
-
一、下载Python包网上教程大多是通过官方地址进行下载Python的,但由于国内网络环境问题,会导致下载很慢,所以这里建议通过国内镜像进行下载例如:淘宝镜像http://npm.taobao.or...
- centos7上安装python3(centos7安装python3.7.2一键脚本)
-
centos7上默认安装的是python2,要使用python3则需要自行下载源码编译安装。1.安装依赖yum-ygroupinstall"Developmenttools"...
- 利用本地数据通过微调方式训练 本地DeepSeek-R1 蒸馏模型
-
网络上相应的教程基本都基于LLaMA-Factory进行,本文章主要顺着相应的教程一步步实现大模型的微调和训练。训练环境:可自行定义,mac、linux或者window之类的均可以,本文以ma...
- 【法器篇】天啦噜,库崩了没备份(天啦噜是什么意思?)
-
背景数据库没有做备份,一天突然由于断电或其他原因导致无法启动了,且设置了innodb_force_recovery=6都无法启动,里面的数据怎么才能恢复出来?本例采用解析建表语句+表空间传输的方式进行...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- skip-name-resolve (63)
- linuxlink (65)
- pythonwget (67)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)