juejin.cn/aicoding AI编程板块了解更多AI编程干货
作者:Thierry S.
发布时间:2025年3月5日
阅读时长:5分钟
随着"氛围编码"(vibe coding)的流行,许多开发者认为 Cursor 和 Claude 仅适用于原型开发。然而,Cursor 不仅擅长编写新代码,还能高效地进行代码结构化、标准化、重构以及维护大型项目。借助它,你可以以5-30倍的速度构建软件,这令人兴奋。
本教程将分享我使用 Cursor 的工作流程,以及如何将其应用于大型项目。为了提供背景信息,我们在 Stream 公司为超过10亿终端用户提供聊天、活动动态和视频服务,代码库包含约80万行 Go 代码。
工程岗位并未消失,相反,我们的招聘速度比以往任何时候都要快------目前在阿姆斯特丹、博尔德及远程地区招聘 Go 语言工程师、领导、资深工程师和总监。
Cursor 的编辑与测试循环
高效使用 AI 的关键在于建立一个良好的"编辑-测试循环"。通常,你希望 AI 编写代码、生成测试用例,然后运行测试并修复发现的错误。只有在 AI 完成这些步骤后,我才会开始审查代码。
以下是编辑循环的基本步骤:
第一步:配置 Cursor 和 Agent 模式
你需要使用 Agent 模式(快捷键 Cmd + I)并选择 Claude 3.7 Sonnet(注意左下角的小下拉菜单)。Agent 模式会持续调用 Claude,直到目标实现为止。它会自动搜索文件、查找更多上下文、运行测试、安装依赖包等。
第二步:为 AI 准备文档
上文中的示例稍显简化。通常,你需要在项目中创建一个 docs 文件夹,向 AI 传授代码库中常见任务的最佳实践,例如:
- 如何编写测试?
- 如何创建新的数据库模型并应用迁移?
- 如何创建新的控制器或状态层?
我们为 AI 单独维护一个文档文件夹,大致结构如下:
css
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 的核心。另一个重要工作流程是创建项目文件。
项目步骤示例
以下是一个为消息添加书签/提醒功能的项目文件示例:
bash
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。以下是重置工作区的常用命令:
shell
perl
git stash --include-untracked # 暂存所有更改,包括未跟踪的文件
git stash pop # 恢复最近的暂存
git clean -fd # 删除所有未提交的文件(谨慎使用)
如果 Claude 的生成偏离预期,只需重置并重试。这也是保留项目文件的好处,它便于基于不同文档或最佳实践重新开始。
Cursor 和 Claude 的其他技巧
在使用 Cursor 时,我们发现特定步骤和技巧能显著提升生成代码的质量。
限制 Composer 窗口的步骤
在单个 Composer 窗口中运行5-7个步骤时,Claude 可能会遗忘部分指令。因此,适时创建新的 Agent 窗口。
Cursor 设置技巧
- 在设置中添加文档,特别适用于 Claude 默认不太熟悉的较少使用的包;
- MCP 与 Linear 等工具的集成非常实用;
- /add open files to context 功能方便地将打开的文件加入上下文。
与 Goland 配合
Cursor 的 AI 功能很强大,但我会同时使用 Goland 进行调试、重构和常规编辑。对于 iOS/Android 开发等场景,强工具支持的编辑器也难以完全替代。
Cursor Tools推荐
@EastlondonDev的 cursor-tools 项目(github.com/eastlondone...
Cursor 规则
在设置中添加规则,可自动引入文档。例如:
bash
当创建新模型时,始终参考 docs/how-to-create-models.md
常见规则目录可供参考。
代码标准化
如果代码命名混乱或存在重复实现,AI 容易出错。因此,保持干净、标准化的代码能提高 AI 的成功率。
检查所有内容
就像检查初级工程师的工作一样,你应仔细审查 AI 生成的每一行代码,确保理解其功能。
重构、文档与搜索
Cursor 和 Claude 不仅限于代码生成,还可用于文档编写、搜索和重构。
重构示例
可以一次性对数百个文件进行复杂调整。简单更改我仍偏好 Goland 的重构工具,但复杂变更可节省数天时间。
搜索与文档
对于大型代码库中难以理解的部分,可让 Cursor 生成文档加以解释。
技术理解
遇到不熟悉的技术时,Cursor 可替代 Google 或 Stack Overflow,提供快速解答。
结论
Cursor 不仅是原型工具,也是维护大型项目的利器。要高效使用它:
- 建立生成/测试/运行测试的循环,让 AI 自我纠正;
- 创建项目计划,并用 AI 检查和改进;
- 调整 Cursor 设置,适应其独特的工作流程;
- 不仅限于代码生成,还可用于重构、文档编写和搜索。
通过合理配置,你的工作效率可提升5-30倍。作为工程师,我尤其喜欢它让我能专注于更复杂的问题,而 AI 处理基础工作。希望本指南对你有所帮助!