返回列表 发布新帖
查看: 73|回复: 0

10 秒钟搭建一个 Gin 项目?试试 ginGen!

发表于 2025-8-7 16:12:02 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mrkong 于 2025-8-7 16:27 编辑

一、为什么需要脚手架?
在创建一个 Go Web 项目时,我们通常要重复很多机械性的工作:
  • 初始化 go module;
  • 安装 Gin 框架;
  • 创建基础目录结构;
  • 编写路由模板;
  • 配置数据库连接...

虽然现在有 AI 工具如 Cursor、Trae、Cline 等辅助生成,但依然需要写提示词、等响应,流程复杂,不够高效。
前端领域早已有成熟的脚手架工具,如 vue-cli、create-react-app,Go 项目也应该拥有一个“开箱即用”的脚手架。
所以,ginGen 来了!
只需一句命令:
  1. ginGen new my-shop --module github.com/myteam/my-shop
复制代码
再来一句:
  1. cd my-shop && ginGen add mysql
复制代码
一个标准的 Go + Gin 项目就搞定了,是不是很香?
二、手把手体验 ginGen
项目结构预览
  1. my-shop/
  2. ├── cmd/
  3. │   └── server/
  4. │       └── main.go        # 启动入口
  5. ├── configs/
  6. │   └── config.yaml        # 统一配置文件
  7. ├── internal/
  8. │   ├── config/            # 配置加载
  9. │   ├── router/            # 路由管理
  10. │   └── repository/        # 数据层(DAO)
  11. └── go.mod
复制代码
安装 ginGen
  1. go install github.com/leixiaotian1/ginGen@latest
复制代码
安装后,验证是否成功:
  1. ginGen version
复制代码
创建项目骨架
  1. ginGen new my-shop --module github.com/myteam/my-shop
复制代码
控制台输出如下:
  1. ✅ 创建目录结构
  2. ✅ 初始化 go module
  3. ✅ 安装 Gin 框架
  4. ✅ 生成基础路由模板
复制代码
启动项目:
  1. cd my-shop
  2. go run cmd/server/main.go
复制代码
打开浏览器访问:
  1. http://localhost:8080/ping
复制代码
输出:
  1. {"message": "pong"}
复制代码
添加 MySQL 支持
  1. ginGen add mysql
复制代码
自动完成以下操作:
  1. ✅ 安装 GORM 和 MySQL 驱动
  2. ✅ 创建数据库连接逻辑
  3. ✅ 添加数据库配置项
复制代码
查看 configs/config.yaml,可以看到多了:
  1. mysql:
  2.   dsn: "user:pass@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
复制代码
三、ginGen 实现原理揭秘1️⃣ 命令行解析 —— 使用 Cobra
  1. var newCmd = &cobra.Command{
  2.     Use:   "new <项目名>",
  3.     Short: "创建新项目",
  4.     Run: func(cmd *cobra.Command, args []string) {
  5.         // 生成项目逻辑
  6.     },
  7. }
复制代码
Cobra 是 Go 最常用的 CLI 库,支持:
  • 子命令嵌套
  • 参数校验
  • 自动帮助文档生成

2️⃣ 模板引擎 —— 项目文件模板化
比如 main.go 的模板:
  1. // templates/new/main.go.tmpl
  2. package main

  3. import (
  4.     "{{.ModulePath}}/internal/router"
  5.     "github.com/gin-gonic/gin"
  6. )

  7. func main() {
  8.     r := gin.Default()
  9.     router.SetupRoutes(r)
  10.     r.Run(":8080")
  11. }
复制代码
渲染时 {{.ModulePath}} 会被自动替换为实际的模块路径。

3️⃣ 自动化操作 —— 背后执行各种命令
  1. // 初始化 Go module
  2. exec.Command("go", "mod", "init", modulePath).Run()

  3. // 安装依赖
  4. exec.Command("go", "get", "github.com/gin-gonic/gin").Run()
复制代码
四、为什么说 ginGen 好用?[td]
对比项手动创建使用 ginGen
创建耗时10 分钟以上10 秒
项目结构容易出错不统一标准统一
依赖管理容易遗漏自动处理
数据库支持手写模板 & 驱动一键集成 GORM

五、未来规划
ginGen 还在持续迭代中,未来版本将会支持:
  • 组件市场:一键集成 Redis、Kafka、RabbitMQ、Elasticsearch 等;
  • 自定义模板:支持企业自定义项目模板,打造私有标准;
  • 智能配置:自动检测系统环境,智能生成 config.yaml;
  • 插件系统:支持社区和第三方开发者扩展功能。

六、总结
ginGen 是一个为 Go 开发者量身打造的 Gin 项目生成器。使用它可以极大提升开发效率,减少重复劳动,统一团队的项目结构。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.101781 second(s), 8 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表