AI Coding 工具使用技巧,以 Cursor 为例
zhezhongyun 2025-05-26 20:14 40 浏览
随着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. 主标题、副标题
扩展内容
相关推荐
- Python入门学习记录之一:变量_python怎么用变量
-
写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...
- python变量命名规则——来自小白的总结
-
python是一个动态编译类编程语言,所以程序在运行前不需要如C语言的先行编译动作,因此也只有在程序运行过程中才能发现程序的问题。基于此,python的变量就有一定的命名规范。python作为当前热门...
- Python入门学习教程:第 2 章 变量与数据类型
-
2.1什么是变量?在编程中,变量就像一个存放数据的容器,它可以存储各种信息,并且这些信息可以被读取和修改。想象一下,变量就如同我们生活中的盒子,你可以把东西放进去,也可以随时拿出来看看,甚至可以换成...
- 绘制学术论文中的“三线表”具体指导
-
在科研过程中,大家用到最多的可能就是“三线表”。“三线表”,一般主要由三条横线构成,当然在变量名栏里也可以拆分单元格,出现更多的线。更重要的是,“三线表”也是一种数据记录规范,以“三线表”形式记录的数...
- Python基础语法知识--变量和数据类型
-
学习Python中的变量和数据类型至关重要,因为它们构成了Python编程的基石。以下是帮助您了解Python中的变量和数据类型的分步指南:1.变量:变量在Python中用于存储数据值。它们充...
- 一文搞懂 Python 中的所有标点符号
-
反引号`无任何作用。传说Python3中它被移除是因为和单引号字符'太相似。波浪号~(按位取反符号)~被称为取反或补码运算符。它放在我们想要取反的对象前面。如果放在一个整数n...
- Python变量类型和运算符_python中变量的含义
-
别再被小名词坑哭了:Python新手常犯的那些隐蔽错误,我用同事的真实bug拆给你看我记得有一次和同事张姐一起追查一个看似随机崩溃的脚本,最后发现罪魁祸首竟然是她把变量命名成了list。说实话...
- 从零开始:深入剖析 Spring Boot3 中配置文件的加载顺序
-
在当今的互联网软件开发领域,SpringBoot无疑是最为热门和广泛应用的框架之一。它以其强大的功能、便捷的开发体验,极大地提升了开发效率,成为众多开发者构建Web应用程序的首选。而在Spr...
- Python中下划线 ‘_’ 的用法,你知道几种
-
Python中下划线()是一个有特殊含义和用途的符号,它可以用来表示以下几种情况:1在解释器中,下划线(_)表示上一个表达式的值,可以用来进行快速计算或测试。例如:>>>2+...
- 解锁Shell编程:变量_shell $变量
-
引言:开启Shell编程大门Shell作为用户与Linux内核之间的桥梁,为我们提供了强大的命令行交互方式。它不仅能执行简单的文件操作、进程管理,还能通过编写脚本实现复杂的自动化任务。无论是...
- 一文学会Python的变量命名规则!_python的变量命名有哪些要求
-
目录1.变量的命名原则3.内置函数尽量不要做变量4.删除变量和垃圾回收机制5.结语1.变量的命名原则①由英文字母、_(下划线)、或中文开头②变量名称只能由英文字母、数字、下画线或中文字所组成。③英文字...
- 更可靠的Rust-语法篇-区分语句/表达式,略览if/loop/while/for
-
src/main.rs://函数定义fnadd(a:i32,b:i32)->i32{a+b//末尾表达式}fnmain(){leta:i3...
- C++第五课:变量的命名规则_c++中变量的命名规则
-
变量的命名不是想怎么起就怎么起的,而是有一套固定的规则的。具体规则:1.名字要合法:变量名必须是由字母、数字或下划线组成。例如:a,a1,a_1。2.开头不能是数字。例如:可以a1,但不能起1a。3....
- Rust编程-核心篇-不安全编程_rust安全性
-
Unsafe的必要性Rust的所有权系统和类型系统为我们提供了强大的安全保障,但在某些情况下,我们需要突破这些限制来:与C代码交互实现底层系统编程优化性能关键代码实现某些编译器无法验证的安全操作Rus...
- 探秘 Python 内存管理:背后的神奇机制
-
在编程的世界里,内存管理就如同幕后的精密操控者,确保程序的高效运行。Python作为一种广泛使用的编程语言,其内存管理机制既巧妙又复杂,为开发者们提供了便利的同时,也展现了强大的底层控制能力。一、P...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- opacity 属性 (32)
- transition 属性 (33)
- 1-1. 变量声明 (31)
