Compare commits

...

2 Commits

Author SHA1 Message Date
Cursor Agent
e36213d7e9 Checkpoint before follow-up message 2025-06-17 09:02:51 +00:00
Cursor Agent
e3a08b82a9 Add comprehensive development guidelines for Ruoyi Vue Pro project 2025-06-17 08:56:19 +00:00
3 changed files with 381 additions and 0 deletions

57
cli.cjs Executable file

File diff suppressed because one or more lines are too long

104
index.cjs Normal file

File diff suppressed because one or more lines are too long

220
rules.md Normal file
View File

@@ -0,0 +1,220 @@
# 若依Vue Pro 项目开发规范
## 📖 项目概述
本项目是基于Spring Boot + Vue.js的企业级后台管理系统采用前后端分离架构包含系统管理、工作流、支付、商城、CRM、ERP、AI大模型等多个业务模块。
## 🏗️ 架构规范
### 1. 模块化设计
- **核心框架**`yudao-framework` - 提供基础框架功能
- **业务模块**:按业务领域划分,如 `yudao-module-system``yudao-module-bpm`
- **服务端**`yudao-server` - 主服务启动模块
- **依赖管理**`yudao-dependencies` - 统一版本管理
### 2. 分层架构
```
Controller层 -> Service层 -> Manager层 -> DAO层
```
- **Controller**: 负责请求处理和响应
- **Service**: 业务逻辑处理
- **Manager**: 通用业务处理可被多个Service调用
- **DAO**: 数据访问层
### 3. 包结构规范
```
cn.iocoder.yudao.module.{module}
├── controller # 控制器
├── service # 业务逻辑
├── manager # 通用业务
├── dal # 数据访问层
│ ├── dataobject # 数据对象
│ ├── mapper # MyBatis Mapper
│ └── redis # Redis操作
├── convert # 对象转换
├── vo # 视图对象
│ ├── request # 请求对象
│ └── response # 响应对象
└── enums # 枚举类
```
## 💻 代码规范
### 1. 命名规范
- **类名**: 使用PascalCase`UserController``UserService`
- **方法名**: 使用camelCase`getUserById``createUser`
- **变量名**: 使用camelCase`userId``userName`
- **常量名**: 使用UPPER_SNAKE_CASE`MAX_PAGE_SIZE`
- **包名**: 使用小写,如 `controller``service`
### 2. 注解使用
- **Controller**: 使用`@RestController``@RequestMapping`
- **Service**: 使用`@Service``@Transactional`
- **Validation**: 使用`@Valid``@NotNull``@NotEmpty`
- **API文档**: 使用`@Operation``@Parameter`等Swagger注解
### 3. 异常处理
- 使用自定义异常类继承`ServiceException`
- 统一异常码管理,在`ErrorCodeConstants`中定义
- Controller层不处理异常由全局异常处理器统一处理
### 4. 日志规范
- 使用`@Slf4j`注解
- 关键操作记录INFO级别日志
- 异常记录ERROR级别日志
- 调试信息使用DEBUG级别
## 🔧 开发规范
### 1. 数据库规范
- **表名**: 使用小写下划线,如 `system_user``bpm_process`
- **字段名**: 使用小写下划线,如 `user_id``create_time`
- **主键**: 统一使用`id`作为主键,类型为`BIGINT`
- **审计字段**: 每个表包含`creator``create_time``updater``update_time``deleted`
### 2. API设计规范
- **RESTful**: 遵循RESTful API设计原则
- **URL**: 使用小写字母和连字符,如 `/admin-api/system/users`
- **HTTP方法**: GET(查询)、POST(新增)、PUT(修改)、DELETE(删除)
- **响应格式**: 统一使用`CommonResult`包装响应数据
### 3. 数据传输对象
- **DO (Data Object)**: 数据库实体对象,对应数据库表
- **VO (View Object)**: 视图对象,用于前端展示
- **DTO (Data Transfer Object)**: 数据传输对象,用于层间数据传输
- **Convert**: 使用MapStruct进行对象转换
### 4. 分页查询
- 统一使用`PageParam`作为分页参数基类
- 查询条件继承`PageParam`
- 返回结果使用`PageResult`包装
## 🛡️ 安全规范
### 1. 权限控制
- 使用`@PreAuthorize`注解进行权限校验
- 权限标识格式:`模块:操作`,如 `system:user:query`
- 数据权限使用`@DataPermission`注解
### 2. 参数校验
- Controller层使用`@Valid`进行参数校验
- 自定义校验注解放在`validation`包下
- 校验失败统一返回400错误码
### 3. 敏感数据
- 密码使用BCrypt加密存储
- 敏感信息不在日志中输出
- API接口需要进行签名校验如支付相关
## 📝 文档规范
### 1. 代码注释
- 类和方法使用JavaDoc注释
- 复杂业务逻辑添加行内注释
- 常量和枚举值添加注释说明
### 2. API文档
- 使用Swagger/OpenAPI规范
- Controller方法添加`@Operation`注解
- 请求参数添加`@Parameter`注解
- 响应模型添加`@Schema`注解
### 3. 数据库文档
- 表和字段添加COMMENT注释
- 使用工具自动生成数据库文档
## 🧪 测试规范
### 1. 单元测试
- Service层业务逻辑编写单元测试
- 测试覆盖率达到80%以上
- 使用`@Test``@MockBean`等注解
### 2. 集成测试
- Controller层编写集成测试
- 使用`@SpringBootTest``MockMvc`
- 测试核心业务流程
### 3. 测试数据
- 使用`@Sql`注解准备测试数据
- 测试后清理数据,避免相互影响
## 🚀 部署规范
### 1. 环境配置
- **开发环境**: application-dev.yaml
- **测试环境**: application-test.yaml
- **生产环境**: application-prod.yaml
### 2. Docker化
- 提供Dockerfile和docker-compose.yml
- 镜像使用多阶段构建优化大小
- 配置健康检查
### 3. 监控告警
- 集成Spring Boot Actuator
- 使用SkyWalking进行链路追踪
- 配置日志收集和告警
## 📚 最佳实践
### 1. 性能优化
- 合理使用缓存Redis
- 数据库查询优化避免N+1问题
- 异步处理耗时操作
- 使用连接池和对象池
### 2. 代码质量
- 遵循SOLID设计原则
- 使用设计模式解决复杂问题
- 定期进行代码Review
- 使用静态代码分析工具
### 3. 安全防护
- 防SQL注入、XSS攻击
- 使用HTTPS协议
- 接口限流和防刷
- 敏感操作日志记录
### 4. 多租户设计
- 使用`@TenantIgnore`忽略租户过滤
- 租户数据隔离
- 租户配置管理
## 🔄 版本管理
### 1. Git规范
- **分支策略**: Git Flow工作流
- **提交消息**: 格式为 `type(scope): description`
- **Tag**: 版本发布使用语义化版本号
### 2. 发布流程
- 功能开发在feature分支
- 合并到develop分支进行集成测试
- 发布时合并到master分支
- 使用CI/CD自动化部署
## 📋 检查清单
### 开发完成检查
- [ ] 代码符合命名规范
- [ ] 添加必要的注释和文档
- [ ] 编写单元测试
- [ ] API文档更新
- [ ] 权限配置正确
- [ ] 异常处理完善
- [ ] 日志记录适当
### 发布前检查
- [ ] 功能测试通过
- [ ] 性能测试达标
- [ ] 安全测试通过
- [ ] 部署文档更新
- [ ] 监控配置完成
- [ ] 回滚方案准备
---
> 📖 本规范会随着项目发展持续更新,请及时关注最新版本。
>
> 💡 如有疑问或建议请在项目Issues中提出。