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

相关推荐
幼儿园老大*1 分钟前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue2 分钟前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man4 分钟前
【go从零单排】go语言中的指针
开发语言·后端·golang
萧鼎1 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸1 小时前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农1 小时前
Python 继承、多态、封装、抽象
开发语言·python
^velpro^1 小时前
数据库连接池的创建
java·开发语言·数据库
秋の花2 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端2 小时前
第六章 7.0 LinkList
java·开发语言·网络
可峰科技2 小时前
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
开发语言·qt