人人都会AI编程

2.4.3 .rules 编码规范基础配置

更新时间:2026-06-29

在 AI 辅助编码(如 Cursor)中,.rules 文件(或早先的 .cursorrules)是落定项目编码规范最直接的方式。它能将团队约定、技术栈偏好、禁止项一次性注入上下文,让 AI 生成的代码更贴近实际标准。基础配置应追求少而精,优先覆盖最常出问题的点。

编写要点

  • 从痛点出发:先列最近 Code Review 中反复出现的 3~5 个问题,而不是抄规范大全。
  • 具体、可验证:不要写“代码要清晰”,要写“函数不超过 40 行”、“参数多于 3 个必须用对象”。
  • 分块标记:可以用 # 区分类别(通用/语言/框架/禁止项),便于维护。
  • 只做约束,不解释:AI 不需要长篇原因,只需明确指令。若需示例,用内联代码片段。

基础配置示例(通用 + React + TypeScript 场景)

# 通用规范
- 缩进用 2 空格,不用 Tab。
- 命名:变量/函数用 camelCase,组件/类用 PascalCase,常量用 UPPER_SNAKE_CASE。
- 文件命名:组件文件用 PascalCase,工具函数用 camelCase。
- 每个导出函数必须有 JSDoc,说明参数和返回值。
- 禁止使用 any,优先使用具体类型或泛型。

# React 项目专用
- 全部使用函数组件 + Hooks,禁止 class 组件。
- 页面/容器组件放在 src/pages,UI 组件放在 src/components。
- 事件处理函数命名:handle + 事件名(例:handleClick)。
- 组件接收的 props 必须定义 interface,放在文件顶部。
- 避免在 JSX 中写复杂逻辑,提前提取为变量或函数。

# 异步与数据
- 只能使用 async/await,禁止 Promise.then/catch。
- 接口请求必须统一使用 @/utils/request 封装,不裸调 fetch/axios。
- 请求前后状态处理:必须显示 loading、处理 error,不能吞错。
- 数据格式要求:日期字符串统一用 ISO 8601。

# 禁止项
- 禁止引入 lodash 全量包,用 lodash-es 按需导入。
- 禁止 console.log 进入生产环境(可用 env 判断)。
- 禁止硬编码魔法数字,必须定义为常量。
- 禁止提交注释掉的代码,不用的代码直接删除。

配置生效与调整

  1. 将以上内容保存在项目根目录 .cursorrules.rules 目录中(根据工具版本选择)。
  2. 提交后团队成员拉取即可自动生效,AI 回答会逐条遵循规则。
  3. 每两个迭代回顾一次 .rules,删除不再需要的条目,避免规则臃肿导致 AI 忽略。

遵循这套基础配置,能在不增加心智负担的前提下,让 AI 输出直接进入可 review 状态,显著减少返工。