Cursor rules(即 .cursorrules 文件)本质上是给 AI 助手加一层 “工作习惯约束”,让它在写代码/改代码时更符合团队规范,避免低级错误。

当团队新成员多、项目需要快节奏交付时,统一的工程规范能显著降低沟通成本、提高交付一致性

我把复杂规则整理成“一页速览 + 若干可复制样板代码”,新人能马上上手,资深工程师也能快速复核。


-01- 核心规范

Java(后端)

  1. 语言:Java 8/17,优先用 Stream / Lambda。
  2. 风格:阿里巴巴 Java 开发手册。
  3. 注解@RestController@Service@Mapper 等。
  4. 异常处理@ControllerAdvice + @ExceptionHandler 统一响应格式:
{ "code": 200, "message": "success", "data": {}, "timestamp": "2024-01-01T00:00:00Z" }
  1. Lombok:实体/DTO/VO 使用 @Data,构建器 @Builder,日志 @Slf4j,构造推荐 @RequiredArgsConstructor
  2. 校验@Valid + Bean Validation(Hibernate Validator)

Python(脚本 / 工具)

  1. 遵守 PEP8,使用 type hints
  2. 文件操作用 pathlib,日志用 logging
  3. 避免裸 except:,要捕获具体异常。
  4. venv / pipenv / poetry 管理依赖。

前端(Vue)

  1. Vue3 + TypeScript,优先 <script setup>Composition API
  2. 组件名 PascalCase,CSS 类 kebab-case
  3. 使用 Element Plus,状态管理(Pinia 或 Vuex)。
  4. 性能:懒加载、虚拟列表、防抖/节流。

数据库 & 缓存

  1. MySQL 表/字段:小写 + 下划线(user_profilecreate_time)。
  2. 主键:id bigint auto_increment(或 MyBatis-Plus 雪花算法)。
  3. Redis 键:project:module:biz:identifier,TTL 必设。
  4. 分布式锁:Redisson,避免自己手写复杂逻辑。

AI/ML 特殊点

  1. 异步请求 + 重试 + 降级策略。
  2. 日志:模型输入/输出(脱敏)、耗时、token 使用量。
  3. TTS/音频:流式传输 + 缓存 + 格式转换。
  4. Agent/MCP:责任链、状态持久化、插件化。

-02- 样板代码

项目结构(Spring Boot)

src/main/java/
├── controller/     # REST 层
├── service/        # 业务逻辑
├── mapper/         # MyBatis 接口
├── entity/         # 实体类
├── dto/            # 接口入参
├── vo/             # 返回视图对象
├── config/         # 配置类
├── exception/      # 异常统一处理
└── util/           # 工具类

Java 实体类示例

package com.example.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 用户实体类,对应数据库表:user
 */
@Data
@TableName("user")
public class User {
    /** 主键ID,使用 MyBatis-Plus 雪花算法分配 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /** 用户名,唯一 */
    private String username;

    /** 密码,返回时忽略 */
    @JsonIgnore
    private String password;

    /** 邮箱 */
    private String email;

    /** 创建时间,插入时自动填充 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /** 更新时间,插入或更新时自动填充 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /** 逻辑删除标识:0 未删除,1 已删除 */
    @TableLogic
    private Integer deleted;
}

Python 小工具示例(安全读取文件)

from pathlib import Path
import logging
from typing import Optional

logger = logging.getLogger(__name__)

def read_text_safe(path: str) -> Optional[str]:
    """
    读取文本文件(安全读取,避免异常外泄)
    :param path: 文件路径
    :return: 文件内容或 None(读取失败)
    """
    p = Path(path)
    if not p.exists() or not p.is_file():
        logger.warning("文件不存在:%s", path)
        return None
    try:
        return p.read_text(encoding="utf-8")
    except Exception as e:
        logger.exception("读取文件失败:%s", e)
        return None

代码质量与交付

  1. 单元测试:覆盖率 > 80%,关键逻辑使用集成测试(Testcontainers)。
  2. 静态检查:SonarQube + CI,PR 必过。
  3. PR 模板:改动目的 / 影响范围 / 回归风险 / 测试说明。
  4. 运行时监控:Prometheus + Grafana,关键业务必设告警。

-03- 示例 .cursorrules 文件

通用规则

rules:
  - name: 基础代码规范
    description: 统一代码风格和基本习惯
    patterns: ["*.java", "*.js", "*.ts", "*.py"]
    commands:
      - "不要生成冗余的 import,按需导入"
      - "变量名使用驼峰命名,类名使用大驼峰命名"
      - "方法长度尽量 < 50 行,超长拆分"
      - "避免硬编码,提取为常量或配置"

Java 高并发/微服务项目示例

rules:
  - name: 并发与线程安全
    description: 高并发场景下的编程规范
    patterns: ["*.java"]
    commands:
      - "禁止在多线程环境下使用非线程安全集合,优先用 ConcurrentHashMap"
      - "多线程共享变量必须加 volatile 或使用原子类(AtomicInteger/Long)"
      - "锁粒度尽量小,避免 synchronized 在大方法上"
      - "优先使用线程池 ExecutorService,禁止手动 new Thread()"

(省略部分,可按项目复制扩展)


-04- 总结:怎么用好 Cursor Rules?

  1. 全局规范:放在项目根目录的 .cursorrules 文件。
  2. 项目定制:比如 Spring Boot 项目,增加特定规则:
- name: SpringBoot特定规则
  patterns: ["*.java"]
  commands:
    - "Controller 层只写路由和参数校验"
    - "业务逻辑必须在 Service 层,事务控制也在 Service 层"
    - "DAO 层必须使用 JPA/MyBatis,不写 SQL 拼接"
  1. 个性化偏好:如 tab=4 空格,日志使用 Slf4j 等。
  2. 多项目管理:每个项目可保留一份全局 rules,再补充一份项目规则。
最后修改:2026 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏