# Design: 架构梳理方法与技术决策 ## Architecture Overview ### 现有系统架构分析 ``` ┌─────────────────────────────────────────────────────────────┐ │ RuoYi-Vue 系统架构 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 前端 (ruoyi-ui) 后端 (Spring Boot) │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ Vue2 + Vue CLI │ HTTP/JSON │ ruoyi-admin │ │ │ │ Element UI │◄──────────►│ (启动配置) │ │ │ │ Vuex │ └────────┬─────────┘ │ │ │ Vue Router │ │ │ │ └────────┬─────────┘ ┌────────▼─────────┐ │ │ │ │ ruoyi-framework │ │ │ ┌────────┴─────────┐ │ (安全、配置) │ │ │ │ components/ │ └────────┬─────────┘ │ │ │ views/ │ │ │ │ │ api/ │ ┌────────▼─────────┐ │ │ │ store/ │ │ ruoyi-system │ │ │ │ router/ │ │ (系统管理) │ │ │ └──────────────────┘ └────────┬─────────┘ │ │ │ │ │ ┌─────────────┼──────────┐ │ │ ▼ ▼ ▼ │ │ ruoyi-common book-system quartz │ │ (工具类) (业务模块) (定时) │ │ │ │ ┌──────────────────┐ │ │ │ MySQL DB │ │ │ │ + Redis Cache │ │ │ └──────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ### 前端架构分析 ``` ruoyi-ui/ ├── src/ │ ├── api/ # API 接口定义 │ │ ├── booksystem/ # 业务模块 API │ │ ├── system/ # 系统管理 API │ │ └── monitor/ # 监控模块 API │ ├── assets/ # 静态资源 │ ├── components/ # 通用组件 │ │ ├── Breadcrumb/ # 面包屑 │ │ ├── Pagination/ # 分页 │ │ ├── DictTag/ # 字典标签 │ │ └── ... # 30+ 组件 │ ├── router/ # 路由配置 │ ├── store/ # Vuex 状态管理 │ ├── views/ # 页面视图 │ │ ├── dashboard/ # 首页 │ │ ├── system/ # 系统管理页面 │ │ └── booksystem/ # 业务页面 │ └── utils/ # 工具函数 ``` ### 后端架构分析 ``` RuoYi-Vue/ ├── ruoyi-admin/ # 启动模块 │ ├── controller/ # 控制器层 │ └── config/ # 配置类 ├── ruoyi-framework/ # 框架核心 │ ├── security/ # 安全配置 │ ├── datasource/ # 数据源 │ └── aspectj/ # AOP 切面 ├── ruoyi-system/ # 系统管理 │ ├── domain/ # 实体类 │ ├── mapper/ # MyBatis Mapper │ └── service/ # 服务层 ├── book-system/ # 业务模块 │ ├── controller/ # 业务控制器 │ ├── domain/ # 业务实体 │ ├── mapper/ # 业务 Mapper │ └── service/ # 业务服务 ├── ruoyi-common/ # 通用工具 │ ├── annotation/ # 自定义注解 │ ├── core/ # 核心类 │ ├── utils/ # 工具类 │ └── exception/ # 异常处理 └── ruoyi-generator/ # 代码生成器 ``` ### 前后端交互流程 ``` ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ User │─────►│ Vue UI │─────►│ API │─────►│ Spring │ │ Action │ │ (View) │ │ (Axios) │ │ Boot │ └─────────┘ └──────────┘ └──────────┘ └───┬────┘ ▲ │ │ ▼ │ ┌──────────┐ │ │ Service │ │ └────┬─────┘ │ │ │ ▼ │ ┌──────────┐ │ │ Mapper │ │ └────┬─────┘ │ │ │ ┌─────────────────────────────────────────┘ │ ▼ │ ┌────────┐ └───│ Response│ └────────┘ ``` ## 分析方法论 ### 1. 静态代码分析 - 使用工具扫描代码结构 - 分析模块依赖关系 - 识别循环依赖和耦合点 ### 2. 动态行为分析 - 分析请求链路 - 分析数据流转 - 分析错误处理路径 ### 3. 架构模式识别 - 识别使用的架构模式(MVC、分层架构等) - 评估模式应用的合理性 - 识别反模式 ## 技术决策 ### 交互规范设计原则 1. **RESTful 风格**:统一使用 RESTful API 设计 2. **统一响应格式**: ```json { "code": 200, "msg": "操作成功", "data": {} } ``` 3. **统一错误处理**: - 业务错误:code != 200,msg 说明原因 - 系统错误:HTTP 500,统一异常处理 4. **分页标准**: ```json { "code": 200, "msg": "查询成功", "total": 100, "rows": [] } ``` ### 输出文档结构 1. **architecture.md** - 整体架构文档 2. **frontend-architecture.md** - 前端架构详细分析 3. **backend-architecture.md** - 后端架构详细分析 4. **api-specification.md** - 前后端交互规范 5. **optimization-suggestions.md** - 优化建议清单 ## 风险评估 | 风险 | 影响 | 缓解措施 | |------|------|---------| | 分析不完整 | 后续重构遗漏 | 建立检查清单,交叉验证 | | 文档过时 | 失去参考价值 | 文档与代码同步更新机制 | | 规范难以执行 | 团队不遵守 | 制定可执行的检查工具 |