> 文末搭配了开源示例: **`gooze-starter`** + **`vue-vben-admin`** 实现的企业级管理后台
作为一名 Go 开发者,你是否也经历过这样的循环:每当开启一个新的 **Go Web 项目**,总要先花上一两天,甚至更久的时间来处理 **Go 项目的工程化** 问题?
- **Go 项目结构** 应该怎么规划才清晰?
- 日志、配置、数据库这些基础模块,每次都要重新选型和封装吗?
- 如何为 **Go API 开发** 设计一套优雅的规范,并处理好版本管理?
- 怎样才能从项目初期就引入完善的测试、CI/CD 等 **Go 最佳实践**?
这些问题是每个 **Go 后端开发** 者都会遇到的。为了不再重复“造轮子”,也为了能让大家把更多精力聚焦于业务逻辑,我开发了这款 Go 项目脚手架——**`gooze-starter`**。
它是一个帮你解决了所有前期烦恼的 **Go 项目模板**。
**[GitHub 地址](https://github.com/soryetong/gooze-starter)**
**[项目文档](https://soryetong.github.io/gooze-docs/)**
### **什么是 `gooze-starter`?**
首先要明确,`gooze-starter` 不是要取代 Gin 或 Echo 这样的 Web 框架,而是基于优秀的 **Gin 框架**,构建了一套更完整、更强大的 **Go 工程化** 体系。
你可以把它看作一个高度整合的“**Golang 脚手架**”,它的核心理念是 **“约定优于配置”** 和 **“关注点分离”** ,让你和你的团队能够遵循统一的规范,高效地进行 **Go 应用开发**。
#### 它解决了哪些痛点?
1. **清晰的 Go 项目结构**:采纳并优化了社区公认的 `project-layout` 方案。无论是 `api`, `internal`, 还是 `pkg` 目录,职责都一目了然。这对于团队协作和项目维护至关重要。
1. **简化的 Go API 开发**:内置了 CURD 代码生成,你可以直接在 API 文件中进行定义,就会自动生成 API 代码(handler、serveice、dto、router),你就可以省略这些重复且无意义的工作内容,让 **Go Web 开发** 的代码更加内聚和直观。
1. **开箱即用的核心组件**:这个 **Go 脚手架** 已经为你集成了 Go 开发中最常用的组件:
- **配置管理 (Viper)** :轻松驾驭多环境配置。
- **日志系统 (Zap)** :高性能结构化日志,排查问题的好帮手。
- **数据库 ORM (GORM)** :成熟稳定的 **Go 数据库** 操作库。
- **模块的插拔式使用(Modules)**:Redis、Mongo、DB 等按需安装使用。
- **任务调度 (Cron)** :内置定时任务模块,处理后台任务不再麻烦。(规划版本)
1. **高效的代码生成器**:提供了一个简单的命令行工具,一键即可生成新模块所需的 `handler`, `service`, `dto` 分层代码骨架,让你从重复的体力劳动中解放出来。
1. **自动化的 CI/CD 流程**:项目已配置好 `GitHub Actions`,当你推送代码时,自动编译、测试、构建 Docker 镜像等一系列流程将自动执行,这是现代 **Go 工程化** 不可或缺的一环。(规划版本)
#### 它适合谁?
- **Go 初学者**:想学习和了解 **Go 最佳实践** 与项目组织方式。
- **中小型团队**:需要一个统一、规范、高效的 **Go 项目模板** 来快速启动新业务。
- **独立开发者**:希望专注于业务逻辑,不想在基础架构上耗费过多时间的 **Go 开发者**。
`gooze-starter` 的诞生,源于我自己在真实项目开发中的思考和沉淀。现在我将它开源,希望能成为你工具箱里那个足够“趁手”的 **Go 项目脚手架**。
如果这个项目对你有帮助,欢迎在 GitHub 上给个 Star!也期待你的 Issue 和 PR。
---
### **配套工具 `gooze-cli`**
> `Gooze-Cli` 是为 `gooze-starter` 提供辅助的 `cli` 工具
目前支持以下功能:
1. 基于 `gooze-starter` 一键生成项目目录结构
2. 更多 cli 工具正在构思更新中......
**[GitHub 地址](https://github.com/soryetong/gooze-cli)**
两步即可使用:
1. 安装
```bash
go install github.com/soryetong/gooze-cli@latest
```
2. 使用
```bash
gooze-cli init
```
> 如果 `go install` 成功,却提示找不到 `gooze-cli` 命令,那么需要先添加环境变量
---
### **开源示例 `gooze-vben`**
基于 **`gooze-starter`** 搭配 **`vue-vben-admin`** 实现了一个企业级可用的管理后台
实现了用户、菜单、角色、API 权限管理(配合Casbin实现了接口的权限验证),而且后端接口可快速移植至老项目中
管理后台常用的功能已经实现,可直接使用:
1. 用户管理
1. 菜单管理
1. API权限管理
1. 角色管理
1. 字典管理
1. 操作日志
**[GitHub 地址](https://github.com/soryetong/gooze-vben)**




如果这个项目对你有帮助,欢迎在 GitHub 上给个 Star!也期待你的 Issue 和 PR。
---
<p align="center" style="color:#7A4442; font-size:18px;"> END </p>
<br>
有疑问加站长微信联系(非本文作者))
