Go版RuoYi

1. 关于我(在找远程工作,给机会的老板可以联系)

个人介绍

 

2. 后端

后端是用Go写的RuoYi权限管理系统 (功能正在持续实现)
用DDD领域驱动设计(六边形架构)做实践

后端 GitHub地址

后端 Gitee地址

 

3. 前端

本项目没有自研前端,前端代码为 RuoYi-Vue3 官方前端Vue3版

 

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 如果用这个的话,需要重新用gorm生成模型文件

RuoYi 数据库脚本

 

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

RuoYi-Go/
├── cmd/
│   └── api/
│       └── main.go
├── config/
│   └── config.yaml
├── internal/
│   ├── domain/
│   │   ├── model/
│   │   │   └── demo.go
│   ├── application/
│   │   └── usecase/
│   │       └── demo_usecase.go
│   ├── ports/
│   │   ├── input/
│   │   │   └── demo_service.go
│   │   └── output/
│   │       └── demo_repository.go
│   ├── adapters/
│   │   ├── api/
│   │   │   └── demo_handler.go
│   │   ├── persistence/
│   │   │   └── demo_repository.go
├── di/
│   └── container.go
├── pkg/
│   │   ├── db/
│   │   │   └── database.go
│   │   ├── jwt/
│   │   │   └── jwt.go
│   │   ├── logger/
│   │   │   └── logger.go
│   │   ├── config/
│   │   │   └── config.go
└── go.mod
 

 

7. 环境(工具)

Go 1.22.2

Visual Studio Code 神器

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

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

Another Redis Desktop Manager (Redis 客户端)

 

8. 致谢

致谢 RuoYi

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

致谢以上开发用到的工具

 

9. 缺陷

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

 

10. 最后

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

posted @ 2024-06-17 14:22  w_Kong  阅读(112)  评论(1编辑  收藏  举报