展示 Cursor 界面的头图
随着"氛围"编程的流行,许多开发者认为 Cursor 和 Claude 只适合做原型。虽然 Cursor 确实擅长编写新代码,但它在结构化代码、标准化、重构和维护大型项目方面也非常有效。这非常令人兴奋,因为你可以以 5-30 倍的速度构建软件。
本指南分享我使用 Cursor 的工作流程以及如何将其用于大型项目。作为背景介绍,在 Stream,我们为超过十亿终端用户提供聊天、活动流和视频服务。约 80 万行 Go 代码。
工程师岗位在短期内不会消失。事实上,我们正在比以往更快地招聘------在阿姆斯特丹/博尔德/远程工作的 Golang 工程师/主管/资深工程师/总监。
Cursor -- 编辑、测试循环
有效使用 AI 的关键是良好的编辑和测试循环。通常你希望 AI 编写代码,编写测试,然后执行这些测试并修复它发现的任何错误。只有在 AI 完成这些步骤后,我才会开始审查。
让我们来看看这个编辑循环的基础知识。
步骤 1 - Cursor 设置/代理模式
你需要使用代理模式(cmd + I)+ Claude 3.7 sonnet(注意左下角的小下拉菜单)。代理模式将持续调用 Claude 直到目标实现。因此,它会搜索文件,查找更多上下文,运行测试,安装包等。
Cursor 代理模式截图
步骤 2 - AI 文档
上面的例子有点简化了。通常,你需要一个文档文件夹,教导 AI 在你的代码库上执行常见任务的最佳实践。例如:
- 如何编写测试?
- 如何设置新的数据库模型并应用迁移?
- 如何创建新的控制器/状态层等?
我们为 AI 保留一个单独的文档文件夹。它看起来像这样。
AI 文档文件夹结构
这与你培训工程团队的方式非常相似。但我们保持单独的 AI 文档,这样当 AI 出错时,很容易纠正它。
步骤 3 - 在设置中启用 Yolo 模式
你需要启用 Yolo 模式,这样 Cursor 可以在不请求确认的情况下运行测试。你也可以选择只允许你经常使用的命令来运行测试等。
Yolo 模式设置
步骤 4 - Cursor/Claude 运行测试(这是关键部分)
这是关键部分。你需要告诉 Cursor 运行测试。因为它正在运行测试,它将检测到在生成代码时所犯的错误。
Cursor 运行测试
当然,AI 并不完美;它会遗漏一些东西,但有了这个测试循环,结果比仅仅生成代码要好得多。
对于前端/其他平台
我主要将 Cursor 用于 Golang。但你可以为前端开发设置类似的系统。查看 @tedx_ai 的 BrowserTools,了解截图和控制台集成。你可以在这里找到更多 MCP 选项:cursor.directory/mcp。我还没有看到适用于 Android、Swift、Flutter 和 React Native 开发的好的 MCP 选项。
Cursor - 项目文件
编辑/测试循环是有效使用 Cursor 的关键。另一个重要的工作流程是创建项目文件。
项目步骤
这是一个创建消息书签/提醒功能的项目文件示例
项目文件示例
注意每个步骤如何引用相关文档。你也可以使用 Cursor 规则来做这件事,但我更喜欢大多数时候手动指定正确的文档。
项目验证检查
现在当你有了这个项目文件,你也可以使用 AI 来检查你的规范是否有问题。我们的项目检查文件将审查模型,看看说明是否明确了主键。对于控制器步骤,它会要求你明确所需的权限。所以你可以使用 AI 来验证给 AI 的指令,这有点疯狂。
生成项目文件
当然,你也可以使用 AI 来生成你的项目描述。你给它一个示例项目描述文件,并要求它为不同的功能生成类似的内容。目前 Grok 可能是这方面最好的模型。你也可以将其与深度搜索结合起来,进一步明确你的项目需求。
准备好集成了吗? 我们的团队随时准备帮助你。立即联系我们,明天就可以启动!
Git 是你的检查点 - 重复使用
Cursor 有一个内置的检查点系统,但我更喜欢不使用它。Git 对我来说效果更好。要重置你的工作区,你可以使用:
perl
git stash --include-untracked # 暂存所有更改,包括未跟踪的文件
git stash pop # 恢复最后一次暂存
git clean -fd # 删除所有未提交的文件(使用这个命令要小心)
所以,如果 Claude 偏离了轨道,只需重置并再试一次。这也是为什么你要保留一个项目文件。它使得用不同的文档/最佳实践等重新开始变得非常容易。
其他 Cursor 和 Claude 技巧
在使用 Cursor 时,我们了解到采取特定步骤和应用某些技巧可以显著提高 Cursor 生成的输出质量。
限制 Cursor Composer 窗口中的步骤
有时,我会在单个 composer 窗口中运行 5-7 个步骤。对话持续的时间越长,Claude 忘记部分指令的可能性就越大。所以有时创建一个新的 Cursor 代理窗口。
Cursor 设置技巧
-
在 Cursor 设置中,你可以添加文档。这对于 Claude 默认不太了解的不常用包特别有用
-
与 linear 或其他工具的 MCP 集成非常酷
-
/add open files to context 非常方便
Cursor 设置
Goland
Cursor 的 AI 功能令人惊叹。我并排运行 Goland 用于调试、重构和一般编辑器设计。你可能也需要这样做,比如 iOS/Android 开发等,在这些领域,一个具有强大工具的编辑器很难/不可能完全替代。
Cursor 工具
有一个很酷的 cursor tools 项目 github.com/eastlondone...,由 @EastlondonDev 开发。Cursor tools 启用浏览器使用、大型上下文窗口、文档和规划功能。
Cursor 规则
你可以在设置中为 Cursor 添加规则,这使你能够自动包含文档。例如:
Cursor 规则示例
这里有一个常见 Cursor 规则的目录。
代码标准化
它感觉几乎像人类,因为如果你使用混乱的名称、重复的实现等,AI 会感到困惑。所以,你需要有干净、标准化的代码,以获得 AI 最高的成功率。
检查一切
如果你将工作分配给初级工程师,你会仔细检查一切。你应该类似地对待 AI,并了解代码的每一部分是做什么的。
重构、文档和搜索
不仅仅是代码生成。你还可以使用 Cursor 和 Claude 进行文档编写、搜索和重构。
重构示例
你可以一次对数百个文件进行复杂的调整。如果是简单的更改,我仍然更喜欢使用 Goland 的重构工具。但对于复杂的更改,这可以节省数天的工作。
重构示例
搜索和文档
每个大型代码库最终都会有难以理解的部分。你可以要求 Cursor 为你编写文档来帮助解释它。
搜索和文档示例
技术和理解
当你遇到代码库中不理解底层技术的部分时,你也可以将其作为 Google/Stackoverflow 的替代品
技术理解示例
结论
Cursor 不仅是一个用于原型的惊人工具,也适用于维护大型项目。要有效使用它:
- 设置生成/测试/运行测试循环。这样 AI 可以自我纠正
- 创建项目计划,并让 AI 检查和改进这个计划
- 微调你的 Cursor 设置,并适应不同的工作流程
- 不仅仅是代码生成。你可以重构、创建文档并将其用作强大的搜索引擎
通过正确的设置,你可以以 5-30 倍的速度工作。我特别喜欢的是,作为一名工程师,你可以更专注于更难的问题,而 AI 生成所有基础部分。希望这个指南有所帮助。如果你有更多技巧,在 X 上与 Stream 分享,我会将它们添加到文章中。
参考资料:
- 中文文档:学习核心概念,访问 mcp.vyagent.com。
- GitHub 仓库:探索源码和示例,地址 github.com/modelcontex...。
- 社区讨论:提问、交流灵感,加入 github.com/modelcontex...。