This commit is contained in:
zlwu committed 2025-06-26 18:30:03 +08:00
commit 1ab9f9c458
1319 files changed
+137505

No files matched your search

+384
View File
@@ -0,0 +1,384 @@
# 开发文档目录
## 目录说明
此目录用于存放项目的开发相关文档,包括开发指南、代码样例、问题记录等。
## 1. 开发环境搭建
### 环境准备
- **开发环境搭建指南.md**:完整的开发环境搭建步骤
- **IDE 配置指南.md**:IntelliJ IDEA 开发环境配置
- **Maven 配置.md**:Maven 环境配置和私服配置
- **Git 配置.md**:Git 版本控制配置
### 工具安装
- **JDK 安装配置.md**:Java 开发环境安装
- **Node.js 安装配置.md**:前端开发环境安装
- **数据库安装.md**:MySQL 和 Redis 安装配置
- **开发工具推荐.md**:推荐的开发工具和插件
### 环境配置示例:
```bash
# 开发环境启动脚本示例
#!/bin/bash
# 启动MySQL
sudo systemctl start mysql
# 启动Redis
sudo systemctl start redis
# 启动后端应用
cd ruoyi-admin
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 启动前端应用
cd ../plus-ui
npm run dev
```
## 2. 开发规范和指南
### 代码规范
- **Java 代码规范.md**:Java 代码编写规范
- **前端代码规范.md**:Vue3+TypeScript 代码规范
- **数据库设计规范.md**:数据库表设计规范
- **API 接口规范.md**:RESTful API 设计规范
### 命名规范
- **包命名规范.md**:Java 包命名规范
- **类和方法命名.md**:类和方法命名规范
- **数据库命名规范.md**:表和字段命名规范
- **前端命名规范.md**:组件和方法命名规范
### Git 规范
- **Git 分支规范.md**:Git 分支管理规范
- **提交信息规范.md**:Git 提交信息格式规范
- **代码审查流程.md**:Code Review 流程和标准
## 3. 架构设计指南
### 系统架构
- **整体架构设计.md**:系统整体架构设计说明
- **模块化设计.md**:模块化架构设计原则
- **分层架构设计.md**:分层架构设计和职责划分
- **微服务架构.md**:微服务架构设计指南
### 设计模式
- **常用设计模式.md**:项目中使用的设计模式
- **Spring 设计模式.md**:Spring 框架中的设计模式
- **业务设计模式.md**:业务层常用设计模式
### 架构示例:
```java
// 标准Controller示例
@RestController
@RequestMapping("/api/v1/users")
@Tag(name = "用户管理", description = "用户管理相关接口")
public class UserController extends BaseController {
@Autowired
private IUserService userService;
@SaCheckPermission("system:user:list")
@GetMapping
@Operation(summary = "查询用户列表", description = "分页查询用户信息")
public R<PageResult<UserVO>> list(@Valid UserQueryDTO queryDTO) {
return R.ok(userService.queryPageList(queryDTO));
}
}
```
## 4. 功能开发指南
### 新功能开发流程
- **功能开发流程.md**:从需求到上线的完整流程
- **业务模块开发.md**:新业务模块开发步骤
- **接口开发指南.md**:API 接口开发步骤
- **前端页面开发.md**:前端页面开发步骤
### 数据库开发
- **数据库设计流程.md**:数据库表设计流程
- **SQL 编写规范.md**:SQL 语句编写规范
- **数据迁移指南.md**:数据库迁移指南
- **性能优化指南.md**:SQL 性能优化指南
### 缓存开发
- **Redis 使用指南.md**:Redis 缓存使用指南
- **缓存策略设计.md**:缓存策略设计原则
- **分布式锁使用.md**:分布式锁使用指南
## 5. 代码样例和模板
### 后端代码模板
- **Controller 模板.md**:标准 Controller 代码模板
- **Service 模板.md**:标准 Service 代码模板
- **Mapper 模板.md**:标准 Mapper 代码模板
- **Entity 模板.md**:标准实体类代码模板
### 前端代码模板
- **Vue 组件模板.md**:标准 Vue 组件模板
- **API 调用模板.md**:API 接口调用模板
- **表单组件模板.md**:表单组件开发模板
- **表格组件模板.md**:表格组件开发模板
### 配置文件模板
- **application.yml 模板.md**:应用配置模板
- **logback 配置模板.md**:日志配置模板
- **Dockerfile 模板.md**:Docker 镜像构建模板
### Service 层代码示例:
```java
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
@DataPermission(deptAlias = "d", userAlias = "u")
public PageResult<UserVO> queryPageList(UserQueryDTO queryDTO) {
LambdaQueryWrapper<SysUser> lqw = buildQueryWrapper(queryDTO);
Page<UserVO> result = userMapper.selectVoPage(queryDTO.toPage(), lqw);
return PageResult.build(result);
}
private LambdaQueryWrapper<SysUser> buildQueryWrapper(UserQueryDTO queryDTO) {
return Wrappers.<SysUser>lambdaQuery()
.like(StringUtils.isNotBlank(queryDTO.getUserName()),
SysUser::getUserName, queryDTO.getUserName())
.eq(StringUtils.isNotBlank(queryDTO.getStatus()),
SysUser::getStatus, queryDTO.getStatus())
.between(queryDTO.getCreateTime() != null && queryDTO.getCreateTime().length == 2,
SysUser::getCreateTime,
queryDTO.getCreateTime()[0], queryDTO.getCreateTime()[1]);
}
}
```
## 6. 第三方集成指南
### 权限认证集成
- **Sa-Token 集成.md**:Sa-Token 权限框架集成
- **JWT 配置.md**:JWT 令牌配置和使用
- **第三方登录.md**:第三方登录集成指南
- **单点登录.md**:SSO 单点登录配置
### 消息服务集成
- **短信服务集成.md**:短信服务集成指南
- **邮件服务集成.md**:邮件服务集成指南
- **消息中间件.md**:消息队列集成指南
### 存储服务集成
- **文件存储集成.md**:MinIO 文件存储集成
- **云存储集成.md**:阿里云 OSS 等云存储集成
- **图片处理.md**:图片上传和处理
## 7. 测试开发指南
### 单元测试
- **单元测试编写.md**:单元测试编写指南
- **Mock 测试.md**:Mock 对象使用指南
- **测试用例设计.md**:测试用例设计原则
- **测试覆盖率.md**:测试覆盖率要求和检查
### 集成测试
- **集成测试编写.md**:集成测试编写指南
- **数据库测试.md**:数据库操作测试
- **API 测试.md**:API 接口测试
### 测试示例:
```java
@SpringBootTest
@Transactional
@Rollback
class UserServiceTest {
@Autowired
private IUserService userService;
@Test
@DisplayName("测试用户查询功能")
void testQueryUser() {
// Given
UserQueryDTO queryDTO = new UserQueryDTO();
queryDTO.setUserName("admin");
// When
PageResult<UserVO> result = userService.queryPageList(queryDTO);
// Then
assertThat(result).isNotNull();
assertThat(result.getRecords()).isNotEmpty();
}
}
```
## 8. 性能优化指南
### 代码优化
- **算法优化.md**:常见算法优化技巧
- **集合框架优化.md**:Java 集合使用优化
- **字符串优化.md**:字符串操作优化
- **反射优化.md**:反射操作优化
### 数据库优化
- **查询优化.md**:SQL 查询优化指南
- **索引优化.md**:数据库索引优化
- **连接池优化.md**:数据库连接池优化
- **分页优化.md**:大数据量分页优化
### 缓存优化
- **缓存设计.md**:缓存设计最佳实践
- **缓存穿透.md**:缓存穿透问题解决
- **缓存雪崩.md**:缓存雪崩问题解决
- **缓存击穿.md**:缓存击穿问题解决
## 9. 问题记录和解决方案
### 常见问题
- **启动问题.md**:应用启动常见问题
- **配置问题.md**:配置相关常见问题
- **数据库问题.md**:数据库连接和操作问题
- **缓存问题.md**:Redis 缓存相关问题
### 框架问题
- **Spring Boot 问题.md**:Spring Boot 框架问题
- **MyBatis Plus 问题.md**:MyBatis Plus 相关问题
- **Sa-Token 问题.md**:Sa-Token 权限框架问题
- **前端框架问题.md**:Vue3 相关问题
### 部署问题
- **Docker 问题.md**:Docker 部署相关问题
- **Nginx 问题.md**:Nginx 配置相关问题
- **SSL 证书问题.md**:SSL 证书配置问题
## 10. 版本升级指南
### 框架升级
- **Spring Boot 升级.md**:Spring Boot 版本升级指南
- **Java 版本升级.md**:Java 版本升级指南
- **依赖升级.md**:第三方依赖升级指南
### 数据库升级
- **MySQL 升级.md**:MySQL 版本升级指南
- **Redis 升级.md**:Redis 版本升级指南
- **数据迁移.md**:数据库结构迁移指南
### 兼容性处理
- **向后兼容.md**:向后兼容性处理
- **接口兼容.md**:API 接口兼容性处理
- **数据兼容.md**:数据格式兼容性处理
## 11. 开发工具和插件
### IDEA 插件推荐
```
必装插件:
- Lombok
- MyBatis Plus
- Alibaba Java规约检查
- SonarLint
- GitToolBox
- Rainbow Brackets
- Translation
可选插件:
- JRebel (热部署)
- Sequence Diagram (时序图)
- RestfulTool (接口测试)
- Database Navigator (数据库)
```
### 开发工具推荐
- **数据库工具**: Navicat Premium / DataGrip
- **Redis 工具**: RedisDesktopManager / AnotherRedisDesktopManager
- **API 工具**: Postman / Insomnia
- **Git 工具**: SourceTree / GitKraken
- **文档工具**: Typora / Mark Text
### 代码质量工具
- **静态分析**: SonarQube
- **代码格式**: Google Java Format
- **依赖检查**: OWASP Dependency Check
- **测试覆盖**: JaCoCo
## 12. 快速开始
### 项目初始化
```bash
# 1. 克隆项目
git clone https://gitee.com/dromara/RuoYi-Vue-Plus.git
# 2. 导入数据库
mysql -u root -p < script/sql/ry_vue_5.X.sql
# 3. 修改配置
# 编辑 ruoyi-admin/src/main/resources/application-dev.yml
# 修改数据库连接信息
# 4. 启动后端
cd ruoyi-admin
mvn spring-boot:run
# 5. 启动前端
cd plus-ui
npm install
npm run dev
```
### 新模块开发步骤
1. **需求分析**: 明确功能需求和技术要求
2. **数据库设计**: 设计表结构和关系
3. **代码生成**: 使用代码生成器生成基础代码
4. **业务开发**: 实现具体业务逻辑
5. **前端开发**: 开发前端页面和交互
6. **测试验证**: 编写测试用例并验证
7. **文档更新**: 更新相关文档
## 注意事项
1. 开发前必须阅读框架文档和开发规范
2. 新功能开发需要编写对应的测试用例
3. 代码提交前需要通过代码规范检查
4. 重要功能变更需要进行 Code Review
5. 及时更新开发文档和接口文档
6. 遵循安全编码规范,避免安全漏洞