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哈。

相关推荐
jllllyuz22 分钟前
matlab使用B样条进行曲线曲面拟合
开发语言·matlab
Undoom32 分钟前
智能开发环境下的 Diagram-as-Code 实践:MCP Mermaid 技术链路拆解
后端
ku_code_ku1 小时前
python bert_score使用本地模型的方法
开发语言·python·bert
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue图书借阅管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
小马哥编程1 小时前
【软考架构】滑动窗口限流算法的原理是什么?
java·开发语言·架构
疯狂的程序猴1 小时前
IPA 深度混淆是什么意思?分析其与普通混淆的区别
后端
cci1 小时前
Remote ssh无法连接?
后端
云栖梦泽1 小时前
鸿蒙数据持久化实战:构建本地存储与云同步系统
开发语言·鸿蒙系统
wjs20241 小时前
《Ionic 侧栏菜单》
开发语言
祁思妙想1 小时前
linux常用命令
开发语言·python