Files
hzdyjs/docs/development
..
2025-06-27 11:47:00 +08:00
2025-06-26 18:30:03 +08:00

开发文档目录

目录说明

此目录用于存放项目的开发相关文档,包括开发指南、代码样例、问题记录等。

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

新模块开发步骤

  1. 需求分析: 明确功能需求和技术要求
  2. 数据库设计: 设计表结构和关系
  3. 代码生成: 使用代码生成器生成基础代码
  4. 业务开发: 实现具体业务逻辑
  5. 前端开发: 开发前端页面和交互
  6. 测试验证: 编写测试用例并验证
  7. 文档更新: 更新相关文档

注意事项

  1. 开发前必须阅读框架文档和开发规范
  2. 新功能开发需要编写对应的测试用例
  3. 代码提交前需要通过代码规范检查
  4. 重要功能变更需要进行 Code Review
  5. 及时更新开发文档和接口文档
  6. 遵循安全编码规范,避免安全漏洞