还在从零搭建 Go 项目?试试这款开箱即用的 Go 项目脚手架 (Gooze-Starter)

soryetong · · 136 次点击 · · 开始浏览    

> 文末搭配了开源示例: **`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)** ![login.png](https://static.golangjob.cn/250819/8746da15c289566126f56729ea847923.png) ![api.png](https://static.golangjob.cn/250819/aac6c0f6cc092082a8eb11ea08e2b5cb.png) ![menu.png](https://static.golangjob.cn/250819/14ed65c9962d1ff8c803582a251aef79.png) ![role.png](https://static.golangjob.cn/250819/e03c45b333e3676be0e05e1a6d294dd3.png) 如果这个项目对你有帮助,欢迎在 GitHub 上给个 Star!也期待你的 Issue 和 PR。 --- <p align="center" style="color:#7A4442; font-size:18px;"> END </p> <br>

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

136 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传