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