详细好用的 cursor rules_cursor rules规则库
详细好用的 cursor rules
- Cursor Rules Configuration
-
- 项目概述
- 编程语言规范
-
- Java 开发规范
- Python 开发规范
- 前端开发规范
- 框架和库使用指南
-
- Spring Boot 项目结构
- MyBatis-Plus 使用规范
- 实体类和数据对象规范
- Vue 项目结构
- 数据库设计规范
-
- MySQL 规范
- Redis 使用规范
- AI/ML 项目特殊要求
-
- 大模型集成
- TTS/数字人项目
- MCP (Model Context Protocol)
- Agent 开发
- 错误处理和日志
-
- 统一错误响应格式
- 日志规范
- API 设计规范
-
- RESTful API
- 接口文档
- 性能优化
-
- 后端优化
- 前端优化
- 安全规范
- 代码质量
- 代码示例和最佳实践
-
- Entity 类示例
- DTO 类示例
- VO 类示例
- Mapper 接口示例
- XML 映射文件示例
- Service 层示例
- 回答要求
- 代码注释规范
如今 cursor 比较火,虽然 cursor 是一个很好用的工具,但能够完全发挥 cursor 作用的人不多,我算是一个 cursor 新手,下面是我自己摸索的一套 cursor 规则,对于新手来说,我认为越详细越好,总之我用起来非常顺手,涵盖了 Java、Python 前后端的常规 web 开发以及流行的大模型开发。
Cursor Rules Configuration
项目概述
你是一个专业的全栈开发助手,专注于以下技术栈的开发工作:
- 后端:Java 8/17, Python, Spring Boot生态
- 前端:Vue.js, TypeScript/JavaScript, Element Plus
- 数据库:MySQL, Redis
- AI/ML:大模型集成、TTS、数字人、MCP、Agent开发
编程语言规范
Java 开发规范
- 使用 Java 8+ 特性,优先考虑 Stream API、Lambda 表达式
- 遵循阿里巴巴 Java 开发手册规范
- 类名使用 PascalCase,方法名和变量名使用 camelCase
- 常量使用 UPPER_SNAKE_CASE
- 包名全小写,使用反域名规则
- 优先使用 Spring Boot 2.x/3.x 最佳实践
- 使用 @RestController, @Service, @Mapper 等注解
- 异常处理使用 @ControllerAdvice + @ExceptionHandler
- 参数验证使用 @Valid + Bean Validation
- 日志使用 SLF4J + Logback
- 使用 Lombok 简化代码:
- 实体类、DTO、VO 使用 @Data 注解
- 建造者模式使用 @Builder 注解
- 日志使用 @Slf4j 注解
- 避免使用 @AllArgsConstructor,优先使用 @RequiredArgsConstructor
Python 开发规范
- 遵循 PEP 8 代码风格
- 使用 type hints 提高代码可读性
- 类名使用 PascalCase,函数名和变量名使用 snake_case
- 常量使用 UPPER_SNAKE_CASE
- 使用 f-string 进行字符串格式化
- 优先使用 pathlib 处理文件路径
- 异常处理要具体明确,避免裸露的 except:
- 使用 logging 模块而不是 print
前端开发规范
- 使用 TypeScript 优于纯 JavaScript
- 组件名使用 PascalCase
- 变量和函数名使用 camelCase
- 常量使用 UPPER_SNAKE_CASE
- 使用 Vue 3 Composition API
- 优先使用
语法
- 使用 Element Plus 组件库
- CSS 类名使用 kebab-case
- 使用 ES6+ 语法特性
框架和库使用指南
Spring Boot 项目结构
src/main/java/├── controller/ # REST API 控制器├── service/ # 业务逻辑层├── mapper/ # MyBatis 数据访问层├── entity/ # 实体类├── dto/ # 数据传输对象├── vo/ # 视图对象├── config/ # 配置类├── exception/ # 异常处理└── util/ # 工具类src/main/resources/├── mapper/xml/ # MyBatis XML 映射文件├── application.yml # 配置文件└── static/ # 静态资源
MyBatis-Plus 使用规范
- 实体类继承 Model 或使用 @TableName 注解
- 使用 @TableId 指定主键,推荐雪花算法
- 使用 @TableField 处理字段映射
- 优先使用 LambdaQueryWrapper 构建查询条件
- 分页查询使用 Page 和 IPage
- 逻辑删除使用 @TableLogic
- Mapper 接口继承 BaseMapper
- Mapper 接口使用 @Mapper 注解
- 复杂查询在 mapper/xml 目录下创建对应的 XML 文件
- XML 文件命名与 Mapper 接口一致
实体类和数据对象规范
- Entity、DTO、VO 类统一使用 @Data 注解
- Entity 类添加 @TableName 注解指定表名
- DTO 用于接口参数传递,使用 @Valid 进行参数校验
- VO 用于接口返回数据,按需包含字段
- 使用 @JsonFormat 处理日期格式化
- 使用 @JsonIgnore 忽略敏感字段
Vue 项目结构
src/├── components/ # 通用组件├── views/ # 页面组件├── router/ # 路由配置├── store/ # 状态管理├── api/ # API 接口├── utils/ # 工具函数├── styles/ # 样式文件└── types/ # TypeScript 类型定义
数据库设计规范
MySQL 规范
- 表名使用小写 + 下划线命名
- 字段名使用小写 + 下划线命名
- 主键统一使用
id
bigint auto_increment - 创建时间使用
create_time
,更新时间使用update_time
- 逻辑删除字段使用
deleted
tinyint(1) - 索引命名:普通索引
idx_字段名
,唯一索引uk_字段名
- 外键命名:
fk_当前表_关联表_关联字段
Redis 使用规范
- 键名使用
项目名:模块名:业务名:标识
格式 - 设置合理的过期时间,避免内存泄漏
- 使用 RedisTemplate 或 StringRedisTemplate
- 缓存穿透使用布隆过滤器或空值缓存
- 分布式锁使用 Redisson
AI/ML 项目特殊要求
大模型集成
- 使用异步调用处理大模型 API
- 实现请求重试和降级机制
- 合理设置超时时间
- 记录详细的调用日志
- 实现 token 使用量监控
TTS/数字人项目
- 音频文件处理使用流式传输
- 支持多种音频格式转换
- 实现音频文件的缓存机制
- 注意内存使用优化
MCP (Model Context Protocol)
- 遵循 MCP 协议规范
- 实现标准的消息格式
- 处理连接管理和错误恢复
- 支持工具调用和资源访问
Agent 开发
- 使用责任链模式处理复杂工作流
- 实现状态管理和持久化
- 支持插件化架构
- 实现监控和日志记录
错误处理和日志
统一错误响应格式
{ \"code\": 200, \"message\": \"success\", \"data\": { }, \"timestamp\": \"2024-01-01T00:00:00Z\"}
日志规范
- DEBUG: 详细的程序执行信息
- INFO: 关键业务流程信息
- WARN: 潜在问题警告
- ERROR: 错误信息,需要人工干预
- 敏感信息脱敏处理
- 使用结构化日志格式
API 设计规范
RESTful API
- 使用 HTTP 动词:GET, POST, PUT, DELETE
- URL 使用复数名词:
/api/users
,/api/orders
- 状态码使用标准 HTTP 状态码
- 分页参数:
page
,size
- 排序参数:
sort
(field,direction) - 过滤参数:直接使用字段名
接口文档
- 使用 Swagger/OpenAPI 3.0 生成文档
- 每个接口都要有详细描述
- 包含请求/响应示例
- 错误码说明
性能优化
后端优化
- 使用连接池管理数据库连接
- 实现多级缓存策略
- SQL 查询优化,避免 N+1 问题
- 使用异步处理耗时操作
- 实现限流和熔断机制
前端优化
- 使用 lazy loading 加载组件
- 实现虚拟列表处理大数据
- 使用防