go web 工程脚手架

本文涉及的产品
云数据库 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
目录
相关文章
|
1月前
|
负载均衡 Java 中间件
使用Go语言构建高性能Web服务
Go语言作为一种快速、高效的编程语言,其在构建高性能Web服务方面具有独特优势。本文将探讨如何利用Go语言开发和优化Web服务,以实现更高的性能和可伸缩性。
|
4月前
|
JSON JavaScript Go
Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
掌握 Go 语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解 Go 基础知识的好起点是查阅 Go 官方文档
459 2
|
5月前
|
SQL 关系型数据库 MySQL
GO web 开发 实战三,数据库预处理
GO web 开发 实战三,数据库预处理
|
1月前
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
20 0
|
1月前
|
SQL 机器学习/深度学习 缓存
Go语言Web应用实战与案例分析
【2月更文挑战第21天】本文将通过实战案例的方式,深入探讨Go语言在Web应用开发中的应用。我们将分析一个实际项目的开发过程,展示Go语言在构建高性能、可扩展Web应用方面的优势,并分享在开发过程中遇到的问题和解决方案,为读者提供宝贵的实战经验。
|
1月前
|
安全 中间件 Go
Go语言Web服务性能优化与安全实践
【2月更文挑战第21天】本文将深入探讨Go语言在Web服务性能优化与安全实践方面的应用。通过介绍性能优化策略、并发编程模型以及安全加固措施,帮助读者理解并提升Go语言Web服务的性能表现与安全防护能力。
|
1月前
|
开发框架 JSON Go
Go语言Web开发基础与框架探索
【2月更文挑战第21天】本文将带领读者深入了解Go语言在Web开发领域的基础知识和常用框架。通过介绍Go语言的Web开发特点、核心库的使用,以及流行框架如Gin、Echo等的基本用法和优势,帮助读者快速上手Go语言Web开发,提升开发效率。
|
2月前
|
存储 缓存 网络协议
Go语言并发编程实战:构建高性能Web服务器
【2月更文挑战第6天】本文将通过构建一个高性能的Web服务器实战案例,深入探讨如何在Go语言中运用并发编程技术。我们将利用goroutine和channel实现高效的请求处理、资源管理和并发控制,以提升Web服务器的性能和稳定性。通过这一实战,你将更好地理解和掌握Go语言在并发编程方面的优势和应用。
|
2月前
|
Java 应用服务中间件 Maven
【Maven从入门到如土】创建 Maven 版的 Web 工程
【Maven从入门到如土】创建 Maven 版的 Web 工程
37 0
|
3月前
|
存储 中间件 Go
7天用Go从零实现Web框架Gee教程
7天用Go从零实现Web框架Gee教程
52 0