Go版RuoYi
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哈。
Go版RuoYi的更多相关文章
- ruoyi前后端分离版:添加新页面,不需登录也可访问
添加QRcode页面代码 <template> <div class="register"> <el-form ref="registerF ...
- Ruoyi表单构建
Ruoyi表单构建通过拖动组件就能自动生成前端代码,很方便,所以本文简单通过上层函数源码来梳理一下大致流程,如有需要再自行仔细一行行分析底层代码. 组件拖动 实现组件拖动功能主要依赖第三方库:VueD ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- 微软发布正式版SQL Server 2016
微软于今天在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本(GA),历时一年多,微软为该软件发布了多个公共预览版和候选版本,而今天最终版本终于上线了.在博客中,微软数据集团的企 ...
- premere cs4绿色版 安装 并且 视频导出 讲解
最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...
- 渗透测试工具BurpSuite做网站的安全测试(基础版)
渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...
- CorelDRAW X8 如何破解激活(附国际版安装包+激活工具) 2016-12-15
之前有位搞平面的好友“小瘦”说CDR X8无法破解,只能用X7.呃……呃……呃……好像是的 其实CDR8难激活主要在于一个点“没有离线激活了,只可以在线激活”,逆天不是专供逆向的,当然没能力去破解,这 ...
随机推荐
- PolarDB-X 全局Binlog解读之性能篇(上)
简介: 本篇来介绍一下PolarDB-X全局binlog在性能方面的一些设计和思考,先通过几个实际的测试案例来展示全局binlog的性能情况,然后结合这些案例来深入讲解全局binlog关于优化的故事. ...
- 阿里云力夺FewCLUE榜首!知识融入预训练+小样本学习的实战解析
简介: 7月8日,中文语言理解权威评测基准CLUE公开了中文小样本学习评测榜单最新结果,阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队,在大模型和无参数限制模型双赛道总成绩第一名,决赛答辩总 ...
- python语言中的装饰器详解
装饰器是一个用于封装函数或类的代码的工具.它显式地将封装器应用到函数或类上,从而使它们选择加入到装饰器的功能中.对于在函数运行前处理常见前置条件(例如确认授权),或在函数运行后确保清理(例如输 ...
- [TP5] 浅谈 ThinkPHP 的 Hook 行为事件及监听执行
TP5 中使用 \think\Hook::add('xx', '\app\xxx\behavior\Xx') 注册行为. 也可以在 application/tags.php 中统一注册. 在需要监听执 ...
- Gradle8.4构建SpringBoot多模块项目
Gradle8.4构建SpringBoot多模块项目 一.基本 1.版本 这个版本是Jdk8最后一个SpringBoot版本 软件 版本 Gradle 8.4 SpringBoot 2.7.15 JD ...
- Python基础知识——缩进、标识符、保留字
标识符 标识符就是程序中,使用的各种名称,例如:变量名.常量名.类名等等. 在 Python 中,对标识符格式的要求与 C/C++.Java 等差不多: 第一个字符必须是字母表中的字母或下划线 _ ; ...
- 🔥fastposter v2.19.0 一款很哇塞的海报生成器
fastposter v2.19.0 一款很哇塞的海报生成器 fastposter 是一款快速开发海报的工具,已经服务众多电商.分销系统.电商海报.电商主图.行业海报等海报生成和制作场景. 什么是 f ...
- RemoteView 替代品和类似软件
RemoteView 是一款远程控制软件,使您可以通过Internet连接远程访问计算机和移动设备,而不受时间和地点的限制. 您可以快速,安全地实时轻松地控制计算机和移动设备. 您可以使用我们的iOS ...
- 关于URP14绘制全屏Blit后处理的改动
最近用回URP,发现RendererFeature这部分改动很大,启用了之前HDRP的RTHandle,RTHandle的设计类似于优化版本的RenderTexture, 可以统一控制缩放或者并非一对 ...
- python openstacksdk
调用方法 参考地址 https://github.com/openstack/openstacksdk 注意事项 1.需要安装openstacksdk.我这里装的好像是1.5版本的.opentask接 ...