同步操作将从 张奇峰/GinSkeleton 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
1.这是一个基于go语言gin框架的web项目骨架,专注于前后端分离的业务场景,其目的主要在于将web项目主线逻辑梳理清晰,最基础的东西封装完善,开发者更多关注属于自己的的业务即可。
2.本项目骨架封装了以tb_users
表为核心的全部功能(主要包括用户相关的接口参数验证器、注册、登录获取token、刷新token、CURD以及token鉴权等),开发者拉取本项目骨架,在此基础上就可以快速开发自己的项目。
3.本项目骨架请使用master
分支版本即可, 该分支是最新稳定分支.
1.提交问题请在项目顶栏的
issue
直接添加问题,基本上都是每天处理当天上报的问题。
2.本项目优先关注https://gitee.com/daitougege/GinSkeleton
仓库的所有问题, github 太卡严重影响效率。
3.从v1.2.26
版本之后开启qq群答疑, QQ群:273078549 欢迎喜欢gin框架go开发者一期参与讨论.
1.手动下载:https://wwa.lanzous.com/iqPH5fw11va
2.打开goland
---file
---setting
---gopath
查看gopath路径(gopath主要用于存放所有项目的公用依赖,本项目是基于go mod 创建的,和gopath无关,建议存放在非gopath目录之外的任意目录),复制在以下目录解压即可:
1.安装的go语言版本最好>=1.14,只为更好的支持
go module
包管理.
2.配置go包的代理,参见https://goproxy.cn
,有详细设置教程.
3.使用goland(>=2019.3版本)
打开本项目,找到database/db_demo_mysql.sql
导入数据库,自行配置账号、密码、端口等。
4.双击cmd/(web|api|cli)/main.go
,进入代码界面,鼠标右键run
运行本项目,首次会自动下载依赖, 片刻后即可启动.
1
goland
终端底栏打开terminal
, 依次执行set GOARCH=amd64
、set GOOS=linux
、set CGO_ENABLED=0
2 进入根目录(GinSkeleton所在目录):go build -o demo_goskeleton cmd/(web|api|cli)/main.go
可交叉编译出(web|api|cli)对应的二进制文件。
序号 | 功能模块 | 文档地址 |
---|---|---|
1 | 消息队列 | rabbitmq文档 |
2 | cli命令 | cobra文档 |
3 | goCurl、httpClient | httpClient客户端 |
4 | websocket js客户端 | websocket服务端 |
5 | aop切面编程 | Aop切面编程 |
6 | redis | redis使用示例 |
7 | 原生sql操作(mysql、sqlserver、postgreSql) | sql操作示例 |
8 | 日志记录 | zap高性能日志 |
9 | 项目日志对接到 elk 服务器 | elk 日志顶级解决方案 |
10 | 验证码 | 验证码 |
11 | nginx负载均衡部署 | nginx配置详情 |
12 | supervisor | supervisor进程守护 |
序号 | 运维模块 | 文档地址 |
---|---|---|
1 | linux服务器 | 详情 |
2 | mysql | 详情 |
3 | redis | 详情 |
4 | nginx | 详情 |
5 | go应用程序 | 详情 |
1.开发之初,我们的目标就是追求极致的高性能,因此在项目整体功能越来越趋于完善之时,我们现将进行一次全面的性能分析评测.
2.通过执行相关代码, 跟踪 cpu 耗时 和 内存占用 来分析各个部分的性能,CPU耗时越短性、内存占用越低能越优秀,反之就比较垃圾.
序号 | 分析对象 | 文档地址 |
---|---|---|
1 | 项目骨架主线逻辑 | 主线分析报告 |
2 | 操作数据库代码段 | 操作数据库代码段分析报告 |
序号 | 分析对象 | 文档地址 |
---|---|---|
1 | 操作数据库代码段 | 操作数据库代码段 |
V 1.2.xx 2020-09(开发计划预告)
1.基于
GoSkeleton
的实践项目,进行不断地完善、增强功能,发现bug、寻找性能薄弱环节,进一步增强本项目骨架的各项功能。
2.基于pprof+graphviz
, 对项目骨架做全方位的cpu、内存性能分析,给所有使用者展示本项目骨架的每一处性能细节参数.
V 1.3.00 2020-09-21
1.为项目日志(nginx 的 access.log、error.log,goskeleton.log)提供了顶级解决方案.
2.修复注册验证器、登录验证器校验的密码字段pass长度不一致问题.
3.其他地方格式化、规划化了代码书写格式.
V 1.2.27 2020-09-08
1.文档更新,增加 FAQ 常见问题汇总、答疑文档.
V 1.2.26 2020-09-04
修复一处bug,兼容正常启动模式和单元测试模式:
1.运行命令:go run abc/xx.go 和 单元测试命令: go test abc/xxx.go 在golang中获取的可执行文件路径不一致,如果用户目录含有test就会导致了定位根目录出现错误. 本次更新修复此问题.
2.goCurl包更新至 v1.2.4,主要是文档方面的细节完善.
V 1.2.25 2020-09-03
1.进程信号监听,凡是收到结束进程信号时, 在退出之前增加日志记录功能.
2.文档布局进行了调整, 比较繁琐的地方独立为一个文件,使主文档显得简洁.
V 1.2.24 2020-09-02
1.增加
内用占用
分析报告,至此整个项目骨架的性能分析全部结束.
V 1.2.23 2020-09-01
1.开始启动项目骨架全方位性能分析.
2.路由文件:api 和 web 调整,调试阶段增加pprof
系列路由,方便开发阶段性能分析.
3.goCurl 包升级到最新版v1.2.3
,一切从快速应用的角度出发,提供了全新的使用文档,代码进行了增强与精简.
4.本次版本更新后,请记得使用go mod tidy
清理、整理相关引用包,保持项目干净利落.
V 1.2.22 2020-08-27
1.nginx运维文档更新,本次更新主要将 zhangqifeng/nginx_vts 镜像基于alpine3.12 重新编写,大幅度减小体积,更便于快速拉取使用.
V 1.2.21 2020-08-24
1.数据库(mysql、sqlserver、postgresql)增加读写分离配置支持,详情参见:config/config.yml 数据库配置部分.
2.修复上个版本中的一个Bug ,postgresql 数据库驱动初始化变量调用了 sqlserver 代码部分中的变量.
3.其它一些小地方进行了规范与完善.
V 1.2.20 2020-08-23
1.增加 (sqlserver)测试用例,本次更新主要是兼容
sqlserver2008
,截止目前版本号>=2008的全部sqlserver都已经支持.
2.增加 (postgreSql)测试用例.
3.文件上传部分代码进行了规范化,相关配置项增加使用细节说明.
4.配置文件 config/config.yml , 规范化被遗漏的 APP_DEBUG 为: AppDebug .
V 1.2.10 2020-08-20
1.验证码封装完成,相关文档
2.Redis 数据库底层继续增强,在网络出现短暂的断网情况下,程序能够自动等待、重连、从小异常中恢复,该功能 mysql 早已经支持。
3.config>config.yml > AppDebug: true
则所有的日志全部打印到控制台,AppDebug: false
则所有日志打印到日志文件:storage/logs
.
4.本项目骨架的内核gin
框架更新至最新版本 v1.6.3 ,官方说:"进一步提升context性能".
5.项目在升级的过程中,会出现旧版本包的舍弃,请记得在goland
终端执行go mod tidy
清理、整理项目依赖包.
V 1.2.01 2020-08-19
1.配置文件
config.yml
中 log 配置项修复一处被遗漏的路径大写问题。
V 1.2.00 2020-08-18
1.项目代码进行了一次全面规范化 , 对整个项目的代码严谨性进行了一次全面的梳理,部分地方做了精简。
2.本次更新较多,很多都是底层服务逻辑代码,使用上和原版本相差无几,详情参见文档.
V 1.1.xx 版本日志
1.历史日志
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。