go-web-quickstart
- github: https://github.com/fengjx/go-web-quickstart
- gitee: https://gitee.com/fengjx/go-web-quickstart
go web 工程示例,可以作爲一些項目工程結構參考,對一些常用功能做了簡單封裝。支持構建docker鏡像。
示例中已完成了部分功能實現,方便做一些參考
- 用戶登錄、註冊
- 博客查看、添加、刪除、修改
環境依賴
- MySQL
- 初始化sql在
deployments/db
- 初始化sql在
- Redis
對應配置在configs
目錄,可以自行修改
make 指令
$ make help
Makefile cmd:
build: 項目打包
build-go: 構建 golang 包
fmt-go: 格式化 golang 代碼
tidy: 去掉未使用的項目依賴
clean: 清理臨時文件
help: Makefile 幫助
啓動項目
go run cmd/main.go configs/app-local.yaml
打包
make build
打包後的可執行文件生成在.dist
目錄
docker
打包
# 鏡像名和版本可以自己定義
docker build . -t web-app:1.0.0
啓動
# APP_ENV 啓用不同環境配置
docker run -p 8080:8080 -e APP_ENV=test --name webapp web-app:1.0.0
技術選型
- gin - web 框架
- json-iterator - 高效 json 類庫
- go-yaml - yaml 文件加載
- xorm - orm 框架
- go-redis redis 客戶端
- lo 一個類似 lodash 的集合工具類庫
工程結構
- build: 工程構建相關
- cmd: 應用啓動入口
- configs: 項目配置
- deployments: 應用依賴
- init: 應用啓動配置
- internal: 應用業務邏輯代碼
- pkg: 放到應用外部依然能使用的代碼庫、工具類
- test: 測試相關
- tools: 項目工具,如代碼生成腳本