Cursor AI 代码生成
一、背景
AI助手Cursor引入,实践AI代码生成,智能化代码生成与优化。 提升开发效率,节省开发人力。 提升团队协作与学习效率,共享项目规则,使用同一种开发场景模式。 代码质量提升,使用AI重构代码、自动调试、bug修复、review、自动化测试
二、Cursor 功能简介
Cursor 基于VSCode开发,深度IDE集成与多代码语言支持
AI 辅助编码
- Tab 自动补全代码,可预测下一次编辑,会根据最近的更改建议跨多行编辑代码
- Chat内联聊天,对项目文件进行全盘分析,与结合代码库的 AI 进行交谈
- Composer,专注于代码生成和文件操作,可根据自然语言描述生成完整的代码片段或文件。根据要求可以直接项目层面修改代码,并给出修改过程和修改的具体位置,然后由程序员决定是全部应用或部分应用AI的修改。在 Composer 中切换普通模式和代理模式,代理模式可以工具(如:数据库查询,执行 shell 命令等)进行更多操作。
大模型使用,Cursor支持主流的各种大语言模型,实践下来效果最好的是Claude
- 通过 .cursor/rules 系统定制代码规范与最佳实践
三、Cursor 使用场景
通用场景
自然语言的需求,代码生成
代码调试 代码重构
代码单元测试
代码文档 代码注释
业务化的开发场景
四、Cursor AI对话框
1)聊天中的 @ 符号
默认情况下,用户消息将包含输入的文本以及引用的上下文。在 AI 对话框中可以使用 @ 符合添加对应上下文。
@Files引入文件,使用文件内容进行 AI 分析@Folders引入文件夹,可以让 AI 了解整个项目结构@Code当前选中的代码,将选中的代码片段发送给 AI 分析@Docs引用内置的第三方在线文档内容进行 AI 分析@Git引入 Git 相关信息,如提交历史、分支等@Notepads使用记事本@Cursor Rules使用项目规则@Codebase引入整个代码库的上下文,让 AI 了解项目全貌@Web允许 AI 联网搜索获取信息@Summarized Composers将先前 Composer 会话的摘要版本作为上下文
2)Codebase
引入整个代码库的上下文,Cursor Settings 可以查Codebase的索引状态
为了优化索引性能,可以使用该选项.cursorignore从索引过程中排除不必要的文件。
.cursorignore.vscode.idea.gitignore.DS_StorelogsdatavendorChat聊天功能,向AI提问,可帮助理解和探索代码
3)Cursor Rules
Cursor Rules 用于自定义 Cursor 中的 AI 辅助规则,通过规则约束和优化AI生成代码,设置统一编码风格、代码规范、错误处理,减少错误和不一致性。通过共享规则文件,确保团队成员遵循相同规则,减少沟通成本。
把开发流程写在这里,目的是告诉AI怎么像程序员一样去做开发。
项目规则配置和使用
在项目根目录创建 .cursor/rules 文件(推荐使用 Markdown 格式)
在 AI 窗口中 @Cursor Rules 选择mdc文件使用
项目规则如何写
分层管理规则文件,公共部分的规则可以@file 继承
.cursor/rules/ ├── common/ # 通用规则(如 Git 规范) ├── frontend/ # 前端专项规则(JS/TS) └── backend/ # 后端专项规则(Go/PHP/数据库)指定匹配文件规则,如: Glob 匹配 Go 文件(如 src/**/*.go) 开发场景指定步骤顺序,第一步、第二步.. 细节描述,指定调用方法,指定文件生成顺序 说明代码要求,指定参考代码文件,常用代码可存为代码片段引用 代码规范,如引入:技术中心的代码规范
4)Docs
在线文档添加,@Docs 选择添加新文档 或者Cursor Setting中添加新文档 。Cursor 将索引并学习该文档,将其用作上下文。在聊天框 @Docs 选择对应的文档使用。
5)Notepads
在NOTEPADS添加记事本,@Notepads 选择对应的记事本使用
可重复使用的代码模板
参考的离线文档,比如:头条的指标信息
五、Cursor项目规则开发示例
针对指定开发场景的项目配置
鲲鹏中台,拉取不同媒体广告信息和报表
量子、鲲鹏(批量创建、计划管理、监控)
易览数据爬虫
第一步,配置项目Rules
Cursor Setting -> General -> Project Rules,Add new rule 会在项目目录下的 ./cursor/rules/ 生成一个mdc文件
在mdc文件配置代码生成的规则
## 代码框架
## 代码目录说明
- 应用程序目录:包含主要的业务逻辑代码
- 媒体相关代码:处理各种广告媒体的接口和数据
- 公共代码:共享的工具类和通用功能
- 配置文件:系统配置和参数设置
## 开发场景
### 场景1:新增已有广告层级指标
- 1. 有说明具体指标,直接使用,没有说明具体指标,通过Doc联网查询对应的指标信息
- 2. 判断是否需要在对应媒体的 API 类(ExampleMedia)Api.php 中已有方法中添加新指标字段
- 3. 在对应媒体的 Simulator 类(ExampleMedia)Simulator.php 中已有方法中添加数据处理逻辑
- 4. Sql文件对应的 example_table_name新增指标字段
### 场景2:新增已有广告层级属性
- 1. 有说明具体属性,直接使用,没有说明具体指标key,通过Doc联网查询对应的指标信息
- 2. 判断是否需要在对应媒体的 API 类中(ExampleMedia)Api.php 中已有方法中添加新属性字段
- 3. 在对应媒体的 Simulator 类(ExampleMedia)Simulator.php 中已有方法中添加数据处理逻辑
### 场景3:新增广告媒体接口拉取
- 1. 通过Doc联网查询对应接口信息
- 2. 在对应媒体的 API 类(ExampleMedia)Api.php 中添加新接口
- 3. 在对应媒体的 Simulator 中(ExampleMedia)Simulator.php 添加新接口调用和数据处理逻辑
- 4. 在对应媒体的 servers/(ExampleMedia)Servers.php 添加调用方法
### 场景4:接入新媒体
- 1. 新增媒体配置
- example_platform/defined.php
- example_platform/compatible.php(在对应事业线添加对应事业线媒体id配置)
- example_platform/config.php
- 2. 在媒体相关代码目录创建新媒体目录,按以下顺序逐个创建文件
- 创建新媒体配置类 AdsConfig 类型
- 创建新媒体 API 类,使用getAccessToken和commonCall
- 创建新媒体 Simulator 类(参考 @ExampleSimulator.php 实现)
- 创建新媒体 Servers 类, (参考 @ExampleServers.php)
## 注意事项
- 先一步一步思考再生成代码
- 尽量复用代码
- 遵循现有代码结构
- 做好错误处理和日志记录
- 保持与现有功能的兼容性
- 添加必要的注释说明
- 判断开发场景,使用对应的开发场景步骤执行
第二步,上传doc
Cursor Setting -> Featuers -> Docs -> Add new doc
把文档链接填入,并配置文档名称
第三步,生成代码
cmd + i 打开cursor composer
指定规则,读取代码库,指定接口文档 + 功能需求,选择大模型,回车生成代码
示例:
@code-rule.mdc @Codebase @头条批量获取项目否定词 头条新增拉取批量获取项目否定词接口
使用中如何优化项目规则
让大模型输出思考过程,查看过程是否符合规则,chat 里面要求输出每一步的思考过程,补充细节和具体描述。提供模板文件,@file使用,指明参考模板文件生成。
使用@docs @nodepads 提供在线和离线文档信息,提供链接,使用mcp插件fetch获取链接内容。
六、总结
AI代码生成实现开发流程革新 有效提升开发效率(60-80%代码自动生成),减少编写重复性代码,聚焦业务逻辑,节省开发人力 知识沉淀,共享项目规则,代码质量保障和风格统一