Commit c8f1ac3e by 岳建彬

Merge branch 'master' into 'master'

增城项目Cursor案例分享 See merge request !4
parents 41db77b0 55958d29
# Cursor基于交付项目定制化需求快速开发案例分享
# Cursor基于交付项目定制化需求快速开发案例分享
> **场景**: 针对交付项目中,全新定制化需求(与其它业务交互较少或者不涉及其它业务),通过Cursor快速进行代码生成。
>
> **作者**: yanrui
> **日期**: 2025-07-03
---
## 分享内容(结合实际演示)
- #### Cursor-rules介绍以及使用方法
- #### 使用Cursor结合需求原型快速构建表结构以及数据初始化脚本
- #### 通过指定rule快速生成代码
------
## 1、Cursor-rules介绍
#### 在 Cursor 当中,支持两种级别的规则:
- **全局规则(User Rules)**:针对所有项目通用的规则
- **项目规则(Project Rules)**:存放于项目目录下的 `.cursor/rules` 中,只用于约束当前项目。
目前使用的是**项目规则(Project Rules)**,可以针对不同项目,更加灵活的添加规则约束。
------
#### 添加Cursor-rule
- 首先打开Cursor,点击【设置齿轮】,进入Cursor Setting 设置页面,然后点击【 Rules】进入【Add new rule】界面
- 点击 【Add New Rule】后,先输入规则的名称,比如命名为:`db-rules`,约束AI在编写数据库项目的规范
- 规则文件是md格式,可以使用其它AI工具进行编写(deepseek、智普清言、豆包等),自己再加以修改。
- 同时,在编写规则文件时,可以使用@来添加引入文件,文件中的内容会作为额外上下文添加到规则文件中。
------
#### **Cursor 支持四种规则类型:**
- Always:始终应用规则(想始终生效)
- Auto Attached:当匹配 globs 模式的文件被引用时自动附加规则(想自动触发用)
- Agent Requested:根据 AI 代理的判断决定是否应用规则,需要提供规则说明(想让 AI 自己决定是否用)
- Manual:仅在提示中显式使用 @规则名 时附加规则。(想手动调用规则)
## 2、使用Cursor结合需求原型快速构建表结构以及数据初始化脚本
- #### 编写数据库涉及规范
- #### 在Cursor对话框中通过@规则文件名称.mdc,使用规则,将原型图拖入对话框。简单描述需求,让Cursor完成库表设计
- #### 使用AI设计的表结构,还需结合实际业务,对库表、字段进行修改。
## 3、通过指定rule快速生成代码
- #### 制定项目需求规则。
- #### 对话框中指定代码生成路径,基于表结构生成对应的实体类。
- #### 对话框中指定代码生成路径(@/dao),生成各个表的Dao接口以及对应的mapper.xml。
- #### 根据制定的需求规则,在指定路径(@/service)生成对应的service接口以及其实现类,并实现对应的业务方法。
- #### 基于生成的service接口,生成对应的Controller。
- #### 涉及服务间的调用,可以根据生成的Controller在其它服务上生成对应的feign接口
## 分享总结
#### 使用Cursor生成代码前置工作(个人建议):
- ##### 需求梳理、功能设计、表结构设计
- ##### 基于当前需求,整理Project-Rule
- ##### 基于rule开始和Cursor进行问答,生成相关业务代码
------
#### 本次增城在线客服需求,全量使用Cursor进行代码生成,效率提升如下表:
| **指标** | **原计划** | **实际完成** | **提升幅度** |
| :------------- | :--------- | :----------- | :----------- |
| 总工作日 | 10天 | 2天 | **减少80%** |
| 日均任务完成率 | 10% | 50% | **提高5倍** |
| 资源消耗(人天) | 10人天 | 2人天 | **节省80%** |
| 提前完成时间 | - | 8天 | **提前80%** |
| 项目交付速度 | 1x | 5x | **加速5倍** |
---
## 💡 学习建议
- [官方rule模板](https://cursor.directory/java-spring-cursor-rules)
- [Cursor AI中文教程_w3cschool](https://www.w3cschool.cn/cursordocs/)
- [Cursor论坛](https://forum.cursor.com/)
\ No newline at end of file
# Cursor关于rules的使用技巧-数据库(结合实际案例)
---
> **场景**: 使用Cursor生成库表初始化脚本时,可根据自定义规则生成相应的脚本文件,避免后续的重复修改。
>
> **作者**: yanrui
> **日期**: 2025-06-30
---
## Cursor规则描述
- 在 Cursor 当中,支持两种级别的规则:
- **全局规则(User Rules)**:针对所有项目通用的规则
- **项目规则(Project Rules)**:存放于项目目录下的 `.cursor/rules` 中,只用于约束当前项目。
目前使用的是**项目规则(Project Rules)**,可以针对不同项目,更加灵活的添加规则约束。
## 项目规则(Project Rules)添加步骤
### 1. 新增Cursor Rules
首先打开Cursor,点击【设置齿轮】,进入Cursor Setting 设置页面,然后点击【 Rules】进入【Add new rule】界面
![img](../assets/images/cursor-rules-add-image1.png)
当我们点击 【Add New Rule】后,先输入规则的名称,比如命名为:`db-rules`,约束AI在编写数据库项目的规范
![img](../assets/images/cursor-rules-add-image2.png)
添加成功后,在左边的资源管理器中能看到.cursor\rules目录下多了个 db-rules.mdc,把我们自己编写的规则粘贴到这个文件。
![image-20250630100042986](../assets/images/cursor-rules-add-image3.png)
规则文件是md格式,可以使用其它AI工具进行编写(deepseek、智普清言、豆包等),自己再加以修改。
同时,在编写规则文件时,可以使用@来添加引入文件,文件中的内容会作为额外上下文添加到规则文件中。
![image-20250630100519714](../assets/images/cursor-rules-add-image4.png)
**Cursor 支持四种规则类型:**
- Always:始终应用规则(想始终生效)
- Auto Attached:当匹配 globs 模式的文件被引用时自动附加规则(想自动触发用)
- Agent Requested:根据 AI 代理的判断决定是否应用规则,需要提供规则说明(想让 AI 自己决定是否用)
- Manual:仅在提示中显式使用 @规则名 时附加规则。(想手动调用规则)
### 2. Cursor规则使用
- #### Ctrl+L 打开会话,在会话中添加上面新建的db-rules,使得AI结合自定义的规则回答问题
![image-20250630100706493](../assets/images/cursor-rules-add-image5.png)
![image-20250630100739316](../assets/images/cursor-rules-add-image6.png)
### 3. 脚本生成对比(使用rule前后对比)
- #### 使用规则前生成数据库脚本:
```mysql
CREATE TABLE question_category (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
parent_id BIGINT DEFAULT NULL COMMENT '父节点ID,根节点为NULL',
name VARCHAR(100) NOT NULL COMMENT '节点名称',
level INT DEFAULT 1 COMMENT '层级',
sort INT DEFAULT 0 COMMENT '排序',
remark VARCHAR(255) DEFAULT NULL COMMENT '备注',
is_leaf TINYINT DEFAULT 0 COMMENT '是否叶子节点'
);
```
- #### 使用规则后生成数据库脚本:
```mysql
CREATE TABLE t_question_type (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
parentId INT NOT NULL DEFAULT 0 COMMENT '父节点ID,根节点为0',
typeName VARCHAR(100) NOT NULL COMMENT '问题类型/明细名称',
level TINYINT NOT NULL DEFAULT 1 COMMENT '层级:1-大类,2-子类,3-明细',
sortNo INT NOT NULL DEFAULT 0 COMMENT '排序号',
createTime DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updateTime DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
d TINYINT(1) DEFAULT 0 COMMENT '删除标志:1-删除;0-未删除'
) ENGINE=InnoDB COMMENT '问题类型树形结构表';
```
**Cursor问答内容:**
根据你提供的图片内容,结合你的数据库设计规范(db-rule),我将“问题类型-反馈问题详细”这张表的信息,设计为一张树形结构的表,适合存储分级问题类型及其详细内容。
表名、字段名、注释等均严格遵循你的规范。
##### 表结构设计说明
- 表名:t_question_type
- 字段:
- id:主键,自增
- parentId:父节点ID,根节点为0
- typeName:类型/问题名称
- level:层级(1=大类,2=子类,3=明细)
- sortNo:排序号
- createTime、updateTime、d:基础字段
## 使用体验
### Cursor规则使用总结
- 添加统一规则约束,减少每次对话中的冗余聊天。
- 可针对不同项目设置不同的规则,生成代码的目的性更强。
### 注意事项
- 规则设计需要结合实际项目场景,例如:字段长度、索引规则,需要结合实际业务场景考虑,或者单独在对话中表明。
- 规则设计要更加精准,这样可以更好的和“AI幻觉”做对抗。
---
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment