风离不摆烂学习日志 Day6 --- 校园树洞项目重构(长期更新)
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
风离不摆烂学习日志 Day6 — 校园树洞项目重构(长期更新)
关于校园树洞项目
时间点:
2022 03-01 ~ 2022 07-20 基于全栈云原生架构的 "三高" 选课系统解决方案
2022 07-20 ~ 2022 08-10 校园树洞 Java SpringBoot版 使用人数 3000+
2022 11-24 ~ 至今 重构为 校园树洞 Go + Gin + Grom 版
历程:
本项目前身 原本为Java微服务项目 整合了各种技术 例如
SpringCloud Alibaba Nacos Sentinel Redis RabbitMq MybatisPlus K8s Jenkins....
后面由于需求变更以及代码混乱等各种原因 后面重构为Java
SpringBoot
单体项目 这次 代码结构清晰 并且使用了设计模式
使得项目具有高扩展性 后台项目结构如图所示并且适配了 不同的学校
项目展示截图如下
为何会产生重构的想法?
学如逆水行舟 不进则退
Java太卷了 转Go 试试~
学点新东西
闲着没事干~
…
项目重构思路
由于SpringBoot版校园树洞项目 已经足够成熟与稳定了 转Go版本 思路直接借鉴即可 毕竟思路和设计模式是通用的
项目技术栈
Go
(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Gin
一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter, 速度提高了近40倍Gorm
采用Gorm 2.0版本开发, 包含一对多、多对多、事务等操作Jwt
使用JWT轻量级认证, 并提供活跃用户Token刷新功能Casbin
Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型Viper
Go应用程序的完整配置解决方案, 支持配置热更新Lumberjack
设置日志文件大小、保存数量、保存时间和压缩等GoFunk
包含大量的Slice操作方法的工具包Validator
使用validator v10做参数校验, 严密校验前端传入参数Mysql
关系型数据库
项目踩坑记录
Gorm框架官方中文文档:
gorm框架表名自动加s问题
查看日志会发现表名自动加了s
解决方案
或者在GORM配置中设置
db, err := gorm.Open(mysql.Open(xxx.xxx.xxx.xxx)), &gorm.Config{ NamingStrategy: schema.NamingStrategy{ SingularTable: true, // 使用单数表名 }, })
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员风离
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果