go web 工程脚手架

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: go web 工程示例,可以作为一些项目工程结构参考,对一些常用功能做了简单封装。支持构建docker镜像。

go-web-quickstart


go web 工程示例,可以作为一些项目工程结构参考,对一些常用功能做了简单封装。支持构建docker镜像。


示例中已完成了部分功能实现,方便做一些参考

- 用户登录、注册

- 博客查看、添加、删除、修改


环境依赖


- MySQL

 - 初始化sql在`deployments/db`

- Redis


对应配置在`configs`目录,可以自行修改


make 指令


```bash

$ make help

Makefile cmd:


   build:                              项目打包

   build-go:                           构建 golang 包

   fmt-go:                             格式化 golang 代码

   tidy:                               去掉未使用的项目依赖

   clean:                              清理临时文件

   help:                               Makefile 帮助


```


启动项目


```bash

go run cmd/main.go configs/app-local.yaml

```


## 打包


```bash

make build

```


打包后的可执行文件生成在`.dist`目录


docker


打包

```bash

# 镜像名和版本可以自己定义

docker build . -t web-app:1.0.0

```


启动

```bash

# APP_ENV 启用不同环境配置

docker run  -p 8080:8080 -e APP_ENV=test --name webapp web-app:1.0.0

```


技术选型


- [gin](https://github.com/gin-gonic/gin) - web 框架

- [json-iterator](http://jsoniter.com/go-tips.cn.html) - 高效 json 类库

- [go-yaml](https://github.com/go-yaml/yaml) - yaml 文件加载

- [xorm](https://xorm.io/zh/) - orm 框架

- [go-redis](https://github.com/redis/go-redis) redis 客户端

- [lo](https://github.com/samber/lo) 一个类似 lodash 的集合工具类库


工程结构

- build: 工程构建相关

- cmd: 应用启动入口

- configs: 项目配置

- deployments: 应用依赖

- init: 应用启动配置

- internal: 应用业务逻辑代码

- pkg: 放到应用外部依然能使用的代码库、工具类

- test: 测试相关

- tools: 项目工具,如代码生成脚本


参考


- [go 项目分层结构](https://github.com/golang-standards/project-layout/blob/master/README_zh.md)

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
65 0
|
1月前
|
缓存 前端开发 中间件
go语言中Web框架
【10月更文挑战第22天】
42 4
|
6月前
|
Go
go创建web服务
go创建web服务
|
4月前
|
缓存 监控 中间件
构建高效的Go语言Web服务器:基于Fiber框架的性能优化实践
在追求极致性能的Web开发领域,Go语言(Golang)凭借其高效的并发处理能力、垃圾回收机制及简洁的语法赢得了广泛的青睐。本文不同于传统的性能优化教程,将深入剖析如何在Go语言环境下,利用Fiber这一高性能Web框架,通过精细化配置、并发策略调整及代码层面的微优化,构建出既快速又稳定的Web服务器。通过实际案例与性能测试数据对比,揭示一系列非直觉但极为有效的优化技巧,助力开发者在快节奏的互联网环境中抢占先机。
|
5月前
|
JSON 中间件 Go
Go语言Web框架Gin介绍
【7月更文挑战第19天】Gin是一个功能强大、高性能且易于使用的Go语言Web框架。它提供了路由、中间件、参数绑定等丰富的功能,帮助开发者快速构建高质量的Web应用。通过本文的介绍,你应该对Gin框架有了初步的了解,并能够使用它来开发简单的Web服务。随着你对Gin的深入学习和实践,你将能够利用它构建更复杂、更强大的Web应用。
|
4月前
|
缓存 NoSQL 关系型数据库
Go - 开箱即用,WEB 界面一键安装,没有项目经验,可以拿这个练手
Go - 开箱即用,WEB 界面一键安装,没有项目经验,可以拿这个练手
77 0
|
5月前
|
关系型数据库 MySQL Go
go项目实现mysql接入以及web api
go项目实现mysql接入以及web api
39 0
|
5月前
|
Linux Go API
go创建web项目分别在windows和linux部署
go创建web项目分别在windows和linux部署
59 0
|
6月前
|
存储 前端开发 中间件
Go Web 开发 Demo【用户登录、注册、验证】(3)
Go Web 开发 Demo【用户登录、注册、验证】
|
6月前
|
Java 应用服务中间件 API
eclipse创建 maven-web工程
eclipse创建 maven-web工程