RuoYi-Go https://github.com/Kun-GitHub/RuoYi-Go
1. 关于我
2. 介绍
后端用Go写的RuoYi权限管理系统 (功能正在持续实现)
后端 Gitee地址
3. 前端
4. Go后端技术栈(持续在对齐项目,在补充)
功能 | 框架 | 是否采用 | 备注 |
---|---|---|---|
配置管理 | Viper | ✅ | 功能丰富,支持动态重载 |
Envconfig | 轻量级库 | ||
验证码 | base64Captcha | ✅ | 提供了生成各种类型验证码的功能 |
Web | Iris | ✅ | 高性能、灵活且易于使用的Go Web框架 |
Gin | 快速且高效的Go Web框架 | ||
goFrame | 高性能、模块化和企业级的全栈开发框架 | ||
beego | 全功能的MVC框架 | ||
ORM | gorm | ✅ | Go语言中一个非常流行的ORM框架 |
Xorm | 简洁、易用且功能强大的Go语言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 衍生版 |
jwx | 实现各种 JWx(JWA/JWE/JWK/JWS/JWT,也称为 JOSE)技术的 Go 模块 |
5. 数据库(后面再考虑要不要支持多几个数据库)
ORM框架 | 数据库 | 是否采用 | 备注 |
---|---|---|---|
gorm | PostgreSQL | ✅ | 主要是想用这个 |
Mysql | ✅ | 不用说的,很赞 | |
Sqlite |
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. 缺陷
- 本项目是纯后端项目,前端是用RuoYi前端,所有为了适配RuoYi前端,有些写法会不太遵循Go语言的规范,不过不影响使用,只是为了适配RuoYi前端而已
- 有些工具类的引用没有使用依赖注入,或者上下文,目前用的是全局变量,暂时先这样,等后续个人经验丰富了,有更好的做法可能会改上去。
- 暂时没有做单元测试,后续会加上,目前测试用例比较少,所以没有写单元测试。
10. 最后
目前项目还是一个人写,边工作边写,主要是下班后写,所以可能会慢一些哈,如果不介意的话,点个 Start 持续关注,谢谢啦,有什么建议可以提issue哈。
标签:--,RuoYi,go,ORM,Go,日志 From: https://www.cnblogs.com/Chillax-KUN/p/18244061