在使用Cursor的时候,合理的维护项目的Rules能够让AI的回答不会那么随心所欲,来约束它的回答更加符合我们的要求
如果仅仅给我们的项目配置上通用的Rules,那么我觉得是无法发挥出AI的最大威力,更加推荐的做法是针对每个项目的业务逻辑和架构,持续迭代并维护属于该项目的个性化Rules
大文件Rules会有什么问题
随着项目越来越复杂,我们的Rules会急剧膨胀,我们会遇到以下几个问题:
- o 维护困难,特别是当多人需要同时更新不同部分时
- o AI 上下文加载整个文件会导致 token 使用过多,速度变慢
- o 查询特定领域规则时会引入过多无关上下文,降低回答质量
- o 文件过大时编辑和定位变得困难,Cursor的Editing file会经常超时
拆分Rules的几个参考性原则
按照功能域或关注点分离原则进行组织,这里给出一个供参考的范式。可以根据项目复杂度进行适配调整
.cursor/rules/
├── README.mdc # 总体概述和指引
├── architecture.mdc # 系统架构规范
├── frontend/
│ ├── component.mdc # 前端组件开发规范
│ ├── styling.mdc # 样式和主题规范
│ └── state.mdc # 状态管理规范
├── backend/
│ ├── api-design.mdc # API 设计规范
│ ├── database.mdc # 数据库使用规范
│ └── platform-adapter.mdc # 平台适配器规范
├── workflow/
│ ├── git.mdc # Git 使用规范
│ └── ci-cd.mdc # CI/CD 流程规范
└── code-quality/
├── naming.mdc # 命名规范
├── testing.mdc # 测试规范
└── performance.mdc # 性能优化规范拆分实战
之前我开发过一个DeepWrite的内容多平台分发的插件工具,也将之前的大规则文件进行了拆分,给每个规则制定生效的范围文件
分享给大家进行参考,其中.cursor/rules/下面的4个子Rules就是根据项目中一些重要的功能进行的拆分,尽可能不要互相重复,保持清晰的边界隔离。另外还有一个readme-rule.mdc文件,进行的内容导航:
---
description: "项目开发规范"
globs:
alwaysApply: false
---
# DeepWrite 项目开发规范
## 概述
本规范定义了DeepWrite项目的开发标准和最佳实践,旨在确保代码质量、一致性和可维护性。规范文件按照不同关注点进行拆分,便于查找和维护。
## 规则文件结构
.cursor/rules/
├── readme-rule.mdc # 当前文件:总体概述和指引
├── coding-standards.mdc # 代码风格、命名规范和编码标准
├── network-layers.mdc # API架构、网络请求与响应规范
├── platform-adapter.mdc # 平台适配器架构与实现规范
└── platform-settings.mdc # 平台设置配置与UI实现规范
## 规则文件说明
### coding-standards.mdc
定义了项目的基本编码规范,包括代码格式、命名约定、注释标准等。该规则适用于所有源代码文件,是其他规则的基础。
### network-layers.mdc
规定了四层网络架构设计,包括API接口、服务层、适配器层和数据模型层的职责与交互方式。该规则适用于所有网络请求相关代码。
### platform-adapter.mdc
详细说明了平台适配器的设计原则、接口规范、错误处理和生命周期管理。该规则适用于平台集成相关代码,特别是`src/platforms`目录。
### platform-settings.mdc
定义了平台设置的实现标准,包括配置结构、UI组件、验证逻辑和存储管理。该规则适用于平台设置相关代码。
## 如何使用这些规则
1. **开发新功能时**:首先阅读`coding-standards.mdc`了解基本编码规范
2. **实现API请求时**:参考`network-layers.mdc`了解网络架构设计
3. **开发平台适配器时**:参考`platform-adapter.mdc`了解适配器实现规范
4. **配置平台设置时**:参考`platform-settings.mdc`了解设置实现标准
## 规则维护
1. 规则文件应保持聚焦,每个文件专注于一个特定领域
2. 避免规则之间的重复,必要时使用引用关系
3. 随着项目发展,定期更新规则以反映最新的开发实践
4. 规则更新需要经过团队审核
## 适用范围
这些规则适用于DeepWrite项目的所有代码,尤其是核心功能模块和平台集成相关代码。每个规则文件开头的`globs`属性定义了具体的适用文件范围。 如何应用这些规则
最终的期望是希望通过这些Rules,能够让Cursor帮我尽可能解决集成其他平台的大部分工作。比如现在我的项目实现了公众号、头条、知乎平台的分发逻辑,我通过Rules让Cursor实现另一个新平台的集成逻辑。后续我也会分享出这么做的一个效果和注意事项
总结
当然,我也会承认AI技术的局限性,不管Rules如何优化,AI的回答也会可能出现问题,这是AI的特性导致的,我们也无法完全解决。但这跟我们利用AI来提升我们的生产效率并不冲突,毕竟拥抱变化才能适应这个时代的变化。
