一个基于Go语言的快速Web开发框架
.
├── app 应用目录
│ ├── cmd 命令目录
│ ├── common 公共文件库
│ ├── constant 常量库
│ ├── dao 数据访问库
│ ├── handler 助手文件库
│ ├── http Http访问库
│ │ ├── controller 控制器目录
│ │ ├── middleware 中间件目录
│ │ └── request 请求验证器目录
│ ├── model 模型文件库
│ │ ├── dto 数据传输对象库
│ │ ├── entity 实体类库
│ │ └── vo 回调对象库
│ └── service 接口服务库
├── bootstrap 引导文件库
├── config 配置文件库
├── database 迁移文件及工厂文件库
│ ├── factory 工厂文件库
│ ├── migrations 迁移文件库
│ └── seeder 种子文件库
├── main.go 应用入口文件
├── pkg 内核代码库
│ ├── app 应用代码库
│ ├── auth 认证代码库
│ ├── cache 缓存代码库
│ ├── config 配置代码库
│ ├── console 控制台代码库
│ ├── database 数据库操作代码库
│ ├── file 文件操作代码库
│ ├── heplers 助手代码库
│ ├── limiter 限流代码库
│ ├── logger 日志代码库
│ ├── migrate 迁移操作代码库
│ ├── paginator 分页操作代码库
│ ├── redis Redis操作代码库
│ ├── seed 种子操作代码库
│ ├── str 字符串操作代码库
│ └── utils 工具代码库
├── public 公开目录
├── resources 资源文件库
├── routes 路由文件库
│ ├── api API路由文件库
│ └── web Web路由文件库
├── storage 文件资料库
│ └── logs 日志文件库
├── tests 单元测试库
└── tmp 编译文件库
包/扩展 | 作用说明 |
---|---|
gin | 基础Web框架 |
air | 热重载 |
cast | 类型转换 |
testify | 单元测试 |
gorm | ORM框架 |
gorm-mysql | GORM-MySQL依赖 |
viper | 配置文件处理 |
jwt | JWT |
go.uuid | UUID生成器 |
zap | 日志处理扩展 |
lumberjack | 日志滚动方案 |
go-redis | Redis操作 |
limiter | 限流器 |
ansi | 终端高亮 |
cobra | 命令行处理 |
strcase | 处理大小写 |
go-pluralize | 处理英文单复数 |
govalidator | 参数验证器 |
faker | 假数据填充 |
- Go
- 版本: 1.18.x
- MySQL
- 版本: 5.7.x
- Redis
- 版本: 6.x
- 1.首先拉取项目到本地,然后进入项目目录,执行如下命令:
cp .yml.example .yml
- 2.进入项目根目录执行:
go mod tidy
,整理依赖 - 3.配置项目下的
.yml
文件,填写项目数据库信息,如果没有数据库信息,请先创建数据库,然后在.yml
文件中填写数据库信息 - 4.根据
.yml
配置的数据库名称到数据库服务中创建对应数据库 - 5.如果本机环境有安装 air,则进入项目根目录,可以通过如下命令进行热重载运行项目:
air run
或者air run -d
(常驻进程,开发时不建议) - 6.如果本机环境没有安装 air,则进入项目根目录,可以通过如下命令运行项目:
go run main.go
- 7.也可通过框架封装的命令:
go run main.go serve
,运行项目,并启动服务 - 8.air的安装教程为(使用推荐方式安装):air安装教程
- 注:如有需要可将项目包名同步为自己的项目包名,然后执行如下命令:
go mod init 项目包名
,然后执行go mod tidy
,整理依赖
- 1.查看所有命令:项目根目录执行:
go run main.go -h
- 2.查看子命令举例:项目根目录执行:
go run main.go cache -h
即可查看 cache 命令的帮助信息
- 所有包名尽可能使用1个单词命名,如果包名中有多个单词,则使用下划线分隔,如:
http_response
- 每个包中的文件名尽可能使用单个单词命名,如果文件名中有多个单词,则使用下划线分隔,如:
http_response.go
- 尽量不要使用复数命名包、文件、函数、方法等名,除非语义化需求
- 结构体遵循大驼峰命名法,如:
User
、UserInfo
- 变量名尽可能使用小驼峰命名法,如:
user
、userInfo
- 函数名需注意:如果需对外开放访问权限则使用大驼峰命名法,如:
GetUser
、GetUserInfo
,如果仅对内部函数访问权限则使用小驼峰命名法,如:getUser
、getUserInfo
格式: type(scope) : subject
- feat:添加新功能
- fix:修补缺陷
- docs:修改文档
- style:修改格式
- refactor:重构
- perf:优化
- test:增加测试
- chore:构建过程或辅助工具的变动
- revert:回滚到上一个版本