go web 工程脚手架

简介: 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)

目录
相关文章
|
6月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
562 1
|
6月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
539 4
|
7月前
|
监控 前端开发 数据可视化
Github 12.3kstar, 3分钟起步做中后台?Go+Vue 脚手架,把权限、代码生成、RBAC 都封装好了
Go-admin 是基于 Gin + Vue 的中后台脚手架,集成 Casbin RBAC 权限、JWT 鉴权、GORM 数据库操作与 Swagger 文档,内置用户、角色、菜单等管理模块。提供代码生成器与表单构建器,支持多租户与多前端框架(Element UI/Arco/Ant Design),3 分钟快速搭建企业级后台,助力高效交付。
608 4
|
10月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
10月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
11月前
|
人工智能 监控 算法
Go语言GC:三色标记法工程启示
本文深入探讨了Go语言中垃圾回收(GC)机制的性能影响及优化策略。首先分析了GC可能成为性能瓶颈的原因,如延迟敏感场景下的服务响应时间突增问题。接着介绍了三色标记法的核心概念与工作流程,以及并发GC面临的挑战和写屏障的作用。文章还详细讲解了Go GC的完整流程,并提供了多种工程实践启示,包括减少分配频率、预分配内存、避免过度使用指针、合理设置GOGC参数以及监控GC指标等优化方法。最后总结了GC优化的核心策略,帮助开发者构建更高效、可靠的Go应用。
271 5
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
504 20
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
499 0
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1741 1
|
缓存 前端开发 中间件
go语言中Web框架
【10月更文挑战第22天】
331 4

热门文章

最新文章