Go版RuoYi

RuoYi-Go https://github.com/Kun-GitHub/RuoYi-Go

1. 关于我

个人介绍

2. 介绍

后端用Go写的RuoYi权限管理系统 (功能正在持续实现)

后端 Gitee地址

3. 前端

RuoYi-Vue3 官方前端Vue3版

4. Go后端技术栈(持续在对齐项目,在补充)

功能 框架 是否采用 备注
配置管理 Viper ✅ 功能丰富,支持动态重载
配置管理 Envconfig 轻量级库
验证码 base64Captcha ✅ 提供了生成各种类型验证码的功能
Web Iris ✅ 高性能、灵活且易于使用的Go Web框架
Web Gin 快速且高效的Go Web框架
Web goFrame 高性能、模块化和企业级的全栈开发框架
Web beego 全功能的MVC框架
ORM gorm ✅ Go语言中一个非常流行的ORM框架
ORM Xorm 简洁、易用且功能强大的Go语言ORM库,不过没维护了
ORM SQLBoiler 通过Go的代码生成器来实现的ORM工具
内存缓存 Bigcache 高性能、持久化的键值存储库 适合存储永不过期或者生命周期非常长的数据
内存缓存 freecache ✅ 高性能的内存缓存库
内存缓存 Groupcache Google开源的一个分布式缓存和缓存填充系统 主要用于大型系统的缓存共享
日志记录 zerolog 高性能的结构化日志库,专为JSON输出优化,支持零分配日志记录 适合微服务和云原生应用
日志记录 Zap ✅ 高性能、结构化的日志库,特别强调速度和效率 项目配合用了lumberjack,实现日志文件的自动切割和管理功能
日志记录 Logrus 以其易用性和灵活性著称
日志记录 seelog 支持复杂的过滤规则、多级日志处理管道和多种输出目标
依赖注入 wire 由Google开源的依赖注入工具,它通过代码生成的方式,在编译时期完成依赖注入
依赖注入 dig 提供了高性能和可读性,支持构造函数注入、函数参数注入和结构体字段注入
Redis go-redis/redis ✅
ORM 代码生成工具 go-gorm/gen ✅ Friendly & Safer GORM powered by Code Generation
JWT jwt ✅ jwt-go 衍生版
JWT jwx 实现各种 JWx(JWA/JWE/JWK/JWS/JWT,也称为 JOSE)技术的 Go 模块

5. 数据库(后面再考虑要不要支持多几个数据库)

ORM框架 数据库 是否采用 备注
gorm PostgreSQL ✅ 主要是想用这个
gorm Mysql ✅ 不用说的,很赞
gorm Sqlite

RuoYi 数据库脚本

6. 项目目录(持续在对齐项目,在补充)

复制代码
RuoYi-Go/
|-- build/
|   |-- build.cmd     // go build 文件
|-- cmd/
|   |-- main.go       // 主入口文件
|-- config/           // 配置文件目录
|   |-- config.yml    // 示例配置文件
|-- internal/
|   |-- handler/      // HTTP请求处理器
|   |-- service/      // 业务逻辑层
|   |-- repository/   // 数据访问层
|-- pkg/
|   |-- i18n/         // 国际化
|-- middleware/       // 中间件(如JWT验证)
|-- model/            // 数据模型
|-- websocket/        // WebSocket处理逻辑
|-- go.mod            // Go模块依赖管理
|-- go.sum            // Go模块依赖哈希

7. 环境(工具)

JetBrains Fleet (目前还是免费用,类似微软的VS Code,个人刚用这个Fleet,不喜勿喷) PS:发现暂不支持安装插件

DBeaver Community (SQL客户端和数据库管理工具)

Another Redis Desktop Manager (Redis 客户端)

8. 致谢

致谢 RuoYi

致谢以上项目使用到的开源库,不分先后哈

致谢以上开发用到的工具

9. 缺陷

  1. 本项目是纯后端项目,前端是用RuoYi前端,所有为了适配RuoYi前端,有些写法会不太遵循Go语言的规范,不过不影响使用,只是为了适配RuoYi前端而已
  2. 有些工具类的引用没有使用依赖注入,或者上下文,目前用的是全局变量,暂时先这样,等后续个人经验丰富了,有更好的做法可能会改上去。
  3. 暂时没有做单元测试,后续会加上,目前测试用例比较少,所以没有写单元测试。

10. 最后

目前项目还是一个人写,边工作边写,主要是下班后写,所以可能会慢一些哈,如果不介意的话,点个 Start 持续关注,谢谢啦,有什么建议可以提issue哈。

相关推荐
Thneonl4 分钟前
别上来就 strace:60 秒十条命令看清一台病机
后端·程序员
马剑威(威哥爱编程)13 分钟前
【AI全栈后端12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
人工智能·spring boot·后端
xuxigifxfh24 分钟前
HJ15 求int型正整数在内存中存储时1的个数
java·开发语言·华为机考
Wokoo728 分钟前
自动化测试入门:核心场景、回归测试与 Web 自动化环境搭建
java·开发语言·测试工具
tachibana230 分钟前
Golang 中数组和切片的区别?
开发语言·后端·golang·数组·切片
我是人✓1 小时前
Spring IOC注解全解析和Spring整合测试单元
java·后端·spring
智购科技无人售货机工厂店1 小时前
玻璃瓶饮料破损率突然上升,排查发现是取货口缓冲垫老化了~YH
java·开发语言·人工智能·python·eclipse
枫叶丹41 小时前
语音 AI 怎样边听边答:实时对话系统的工作原理
开发语言·人工智能·chatgpt·开源·php·agent·codex
小小龙学IT1 小时前
Redis 源码深度解析:从常用命令到内部实现
redis·golang·开源
xie0510_1 小时前
Any类简要实现
开发语言·c++·算法