章
目
录
当下,“氛围编码”(vibe coding)风靡,不少开发者觉得Cursor和Claude仅在原型开发方面有用武之地。可实际上,Cursor的能力远不止于此,它在大型项目的代码结构化、标准化、重构以及维护等方面,都能发挥巨大作用。借助Cursor,构建软件的速度能提升5 – 30倍,这无疑是个令人振奋的消息。
接下来,我将分享自己使用Cursor的工作流程,以及它在大型项目中的应用方法。先给大家介绍下背景,我们在Stream公司负责为超过10亿终端用户提供聊天、活动动态和视频服务,代码库包含大约80万行Go代码。目前,公司在阿姆斯特丹、博尔德等地以及远程岗位都在招聘Go语言工程师、技术领导、资深工程师和总监等职位,工程岗位的需求依旧旺盛。
一、Cursor的编辑与测试循环
想要高效利用AI,建立一个良好的“编辑 – 测试循环”至关重要。一般来说,就是让AI编写代码、生成测试用例,接着运行测试,发现错误后进行修复。完成这些步骤后,我才会去审查代码。下面讲讲这个编辑循环的具体步骤:
(一)配置Cursor和Agent模式
使用Cursor时,要开启Agent模式(快捷键是Cmd + I ),并选择Claude 3.7 Sonnet(在左下角的小下拉菜单里选择)。Agent模式会不断调用Claude,直到完成设定目标。它能自动搜索文件、查找更多上下文信息、运行测试、安装依赖包等,十分智能。
(二)为AI准备文档
前面说的只是简单示例。在实际项目里,通常需要在项目中创建一个docs文件夹,在里面向AI传授代码库中常见任务的最佳实践方法。比如:
- 如何编写测试?
- 怎样创建新的数据库模型并应用迁移?
- 如何搭建新的控制器或状态层?
我们单独维护一个AI文档文件夹,它的大致结构如下:
docs/
├── how-to-write-tests.md
├── how-to-create-models.md
├── how-to-build-controllers.md
这就跟培训工程团队差不多,把AI文档单独存放,要是AI在理解上出了问题,也能更方便地纠正。
(三)在设置中启用Yolo模式
启用Yolo模式后,Cursor就能无需确认直接运行测试。你也可以选择只允许常用的测试运行命令,这样能更好地控制测试过程。
(四)让Cursor/Claude运行测试(核心步骤)
这一步是关键所在。你得让Cursor运行测试,因为它能检测出生成代码中的错误,并尝试修复这些错误,这对提高代码质量有很大帮助。虽说AI不是万能的,可能会遗漏一些问题,但经过这个测试循环,最终的成果比单纯生成代码要好很多。
二、前端及其他平台的应用
我主要用Cursor进行Go语言开发。不过对于前端开发,也能建立类似的系统。推荐大家看看@tedx_ai开发的BrowserTools,它集成了截图和控制台功能,很实用。要是想了解更多MCP(多步骤命令提示)选项,可以访问cursor.directory/mcp。目前针对Android、Swift、Flutter和React Native开发的MCP选项还不太完善。
三、Cursor项目文件相关操作
编辑/测试循环是高效使用Cursor的核心,而创建项目文件也是一个重要的工作流程。
(一)项目步骤示例
以给消息添加书签/提醒功能为例,项目文件内容可以像下面这样:
1. 创建数据库模型(参考docs/how-to-create-models.md)
2. 编写控制器逻辑(参考docs/how-to-build-controllers.md)
3. 添加测试用例(参考docs/how-to-write-tests.md)
每个步骤都对应了相关的文档。虽然可以用Cursor规则自动完成,但手动指定文档往往能更精准地满足需求。
(二)项目验证检查
有了项目文件后,还能用AI检查规范中存在的问题。比如,我们的项目检查文件会去检查模型定义有没有明确指定主键;对于控制器步骤,会询问所需的权限。用AI来验证AI的指令,这种方式很新颖。
(三)生成项目文件
你还可以让AI生成项目描述。先给它提供一个示例项目文件,然后让它根据示例为新功能生成类似的内容。目前,Grok模型在这个任务上表现最佳,结合deepsearch功能,能更清晰地明确项目需求。
四、利用Git作为检查点 – 重置与重试
Cursor本身有检查点系统,但我更习惯用Git来进行相关操作。下面是一些重置工作区的常用命令:
git stash --include-untracked # 暂存所有更改,包括未跟踪的文件
git stash pop # 恢复最近的暂存
git clean -fd # 删除所有未提交的文件(谨慎使用)
要是Claude生成的内容不符合预期,用这些命令重置后重新尝试就行。这也体现了保留项目文件的好处,方便我们基于不同的文档或最佳实践重新开始。
五、Cursor和Claude的其他实用技巧
在使用Cursor的过程中,我们摸索出了一些特定的步骤和技巧,能显著提升生成代码的质量。
(一)限制Composer窗口的步骤
在单个Composer窗口中,如果运行5 – 7个步骤,Claude可能会忘记部分指令。所以,适时创建新的Agent窗口很有必要。
(二)Cursor设置技巧
- 在设置里添加文档,尤其是Claude不太熟悉的那些较少使用的包,这样能帮助Claude更好地理解和处理相关代码。
- MCP与Linear等工具的集成非常实用,能提高工作效率。
- “/add open files to context”功能可以方便地把打开的文件加入上下文,让Cursor获取更多信息。
(三)与Goland配合使用
Cursor的AI功能确实强大,但我在调试、重构和常规编辑时,还是会同时使用Goland。在iOS/Android开发等场景中,功能强大的编辑器依然有着不可替代的作用。
(四)Cursor Tools推荐
推荐大家关注@EastlondonDev的cursor – tools项目(github.com/eastlondone… ),里面有不少实用的工具和功能。
(五)Cursor规则
在设置中添加规则,可以实现自动引入文档。比如:
当创建新模型时,始终参考docs/how-to-create-models.md
还有常见规则目录可供参考,大家可以根据实际需求进行设置。
(六)代码标准化
如果代码命名混乱,或者存在重复实现的情况,AI很容易出错。所以,保持代码干净、标准化,能提高AI生成代码的成功率。
(七)检查所有内容
就像检查初级工程师的工作成果一样,对于AI生成的每一行代码,我们都要仔细审查,确保清楚它的功能。
(八)重构、文档与搜索
Cursor和Claude可不只是能生成代码,在文档编写、搜索和重构方面也能发挥作用。
- 重构示例:使用Cursor和Claude,可以一次性对数百个文件进行复杂调整。一些简单的更改我还是习惯用Goland的重构工具,但遇到复杂变更时,使用Cursor能节省好几天的时间。
- 搜索与文档:要是在大型代码库中遇到难以理解的部分,可以让Cursor生成文档来进行解释。
- 技术理解:碰到不熟悉的技术问题,Cursor可以替代Google或Stack Overflow,快速给出解答。
六、总结
Cursor可不只是个原型工具,在大型项目的维护中,它也是得力助手。想要高效用好Cursor,可以从以下几个方面入手:
- 建立“生成/测试/运行测试”的循环,让AI能自我纠错。
- 创建项目计划,并用AI进行检查和优化。
- 调整Cursor的设置,适应它的独特工作流程。
- 充分利用Cursor的功能,不仅用于代码生成,还可以进行重构、文档编写和搜索等工作。
只要配置合理,使用Cursor能让工作效率提升5 – 30倍。作为工程师,我特别喜欢用它,因为这样我能把精力集中在更复杂的问题上,让AI去处理那些基础工作。希望这篇指南能给大家带来帮助!