乐趣区

关于go:go-web-工程脚手架

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
  • 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: 我的项目工具,如代码生成脚本

参考

  • go 我的项目分层构造
退出移动版