11 KiB
11 KiB
开发文档目录
目录说明
此目录用于存放项目的开发相关文档,包括开发指南、代码样例、问题记录等。
1. 开发环境搭建
环境准备
- 开发环境搭建指南.md:完整的开发环境搭建步骤
- IDE 配置指南.md:IntelliJ IDEA 开发环境配置
- Maven 配置.md:Maven 环境配置和私服配置
- Git 配置.md:Git 版本控制配置
工具安装
- JDK 安装配置.md:Java 开发环境安装
- Node.js 安装配置.md:前端开发环境安装
- 数据库安装.md:MySQL 和 Redis 安装配置
- 开发工具推荐.md:推荐的开发工具和插件
环境配置示例:
# 开发环境启动脚本示例
#!/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:业务层常用设计模式
架构示例:
// 标准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 层代码示例:
@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 接口测试
测试示例:
@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. 快速开始
项目初始化
# 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
新模块开发步骤
- 需求分析: 明确功能需求和技术要求
- 数据库设计: 设计表结构和关系
- 代码生成: 使用代码生成器生成基础代码
- 业务开发: 实现具体业务逻辑
- 前端开发: 开发前端页面和交互
- 测试验证: 编写测试用例并验证
- 文档更新: 更新相关文档
注意事项
- 开发前必须阅读框架文档和开发规范
- 新功能开发需要编写对应的测试用例
- 代码提交前需要通过代码规范检查
- 重要功能变更需要进行 Code Review
- 及时更新开发文档和接口文档
- 遵循安全编码规范,避免安全漏洞