这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 mrkong 于 2025-8-7 16:27 编辑
一、为什么需要脚手架?在创建一个 Go Web 项目时,我们通常要重复很多机械性的工作: 初始化 go module; 安装 Gin 框架; 创建基础目录结构; 编写路由模板; 配置数据库连接...
虽然现在有 AI 工具如 Cursor、Trae、Cline 等辅助生成,但依然需要写提示词、等响应,流程复杂,不够高效。 前端领域早已有成熟的脚手架工具,如 vue-cli、create-react-app,Go 项目也应该拥有一个“开箱即用”的脚手架。 所以,ginGen 来了! 只需一句命令: - ginGen new my-shop --module github.com/myteam/my-shop
复制代码再来一句: - cd my-shop && ginGen add mysql
复制代码一个标准的 Go + Gin 项目就搞定了,是不是很香? 二、手把手体验 ginGen
项目结构预览
- my-shop/
- ├── cmd/
- │ └── server/
- │ └── main.go # 启动入口
- ├── configs/
- │ └── config.yaml # 统一配置文件
- ├── internal/
- │ ├── config/ # 配置加载
- │ ├── router/ # 路由管理
- │ └── repository/ # 数据层(DAO)
- └── go.mod
复制代码 安装 ginGen- go install github.com/leixiaotian1/ginGen@latest
复制代码安装后,验证是否成功: 创建项目骨架- ginGen new my-shop --module github.com/myteam/my-shop
复制代码控制台输出如下: - ✅ 创建目录结构
- ✅ 初始化 go module
- ✅ 安装 Gin 框架
- ✅ 生成基础路由模板
复制代码启动项目: - cd my-shop
- go run cmd/server/main.go
复制代码打开浏览器访问: - http://localhost:8080/ping
复制代码输出: 添加 MySQL 支持
自动完成以下操作:
- ✅ 安装 GORM 和 MySQL 驱动
- ✅ 创建数据库连接逻辑
- ✅ 添加数据库配置项
复制代码 查看 configs/config.yaml,可以看到多了:
- mysql:
- dsn: "user:pass@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
复制代码 三、ginGen 实现原理揭秘1️⃣ 命令行解析 —— 使用 Cobra
- var newCmd = &cobra.Command{
- Use: "new <项目名>",
- Short: "创建新项目",
- Run: func(cmd *cobra.Command, args []string) {
- // 生成项目逻辑
- },
- }
复制代码Cobra 是 Go 最常用的 CLI 库,支持: 2️⃣ 模板引擎 —— 项目文件模板化比如 main.go 的模板: - // templates/new/main.go.tmpl
- package main
- import (
- "{{.ModulePath}}/internal/router"
- "github.com/gin-gonic/gin"
- )
- func main() {
- r := gin.Default()
- router.SetupRoutes(r)
- r.Run(":8080")
- }
复制代码渲染时 {{.ModulePath}} 会被自动替换为实际的模块路径。
3️⃣ 自动化操作 —— 背后执行各种命令
- // 初始化 Go module
- exec.Command("go", "mod", "init", modulePath).Run()
- // 安装依赖
- 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 项目生成器。使用它可以极大提升开发效率,减少重复劳动,统一团队的项目结构。 |