# bks **Repository Path**: bks-czy/bks ## Basic Information - **Project Name**: bks - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BKS - Go 微服务脚手架 **一行命令,快速生成可运行的 Go 微服务项目** > 🎯 适合:在职开发快速出活 | 学生学习微服务流程 --- ## ⚡ 5秒快速开始 ```bash # 安装脚手架 go install github.com/12qwaszx3edc123/bks/cmd/mygen@latest # 一行命令生成项目(连数据库自动读取表结构) mygen --name myshop --modules user,order,product --db-host 127.0.0.1 --db-port 3306 --db-user root --db-password your_password --db-name myshop # 进入项目,直接运行 cd myshop go mod tidy go run bffH5/basic/cmd/main.go ``` ✅ **就是这么快:安装 → 生成 → 运行,不用从零写代码** --- ## 📦 项目自带什么 生成出来的项目,开箱即用: | 功能 | 技术栈 | 状态 | |------|--------|------| | **API 网关** | Gin BFF (:8080) | ✅ 能跑 | | **微服务通信** | gRPC (:50051+) | ✅ 能跑 | | **数据库** | GORM + MySQL | ✅ 能跑 | | **Redis 购物车** | go-redis/v9 | ✅ 能跑 | | **ES 搜索** | olivere/elastic | ✅ 能跑 | | **支付宝对接** | smartwalle/alipay | ✅ 能跑 | | **定时任务** | robfig/cron | ✅ 能跑 | | **JWT 验证** | dgrijalva/jwt-go | ✅ 能跑 | | **文件上传** | 七牛云 SDK | ✅ 能跑 | | **短信发送** | 短信 SDK | ✅ 能跑 | --- ## 🏗️ 项目结构(生成即标准) ``` myshop/ ├── bffH5/ # API 网关层 (Gin, 端口 8080) │ ├── basic/cmd/main.go # 启动入口 │ ├── handler/api/ # 接口处理 │ └── router/router.go # 路由注册 ├── users-server/ # 用户微服务 (gRPC, 端口 50051) ├── order-server/ # 订单微服务 (gRPC, 端口 50052) ├── book-server/ # 商品微服务 (gRPC, 端口 50053) ├── common/ # 公共模块 │ ├── config/ # 配置管理 (Viper) │ ├── model/ # 数据模型 (GORM) │ └── init/ # 初始化逻辑 ├── proto/ # gRPC 协议定义 │ ├── users/users.proto │ ├── order/order.proto │ └── book/book.proto ├── pkg/ # 工具包 │ ├── cart.go # Redis 购物车 │ ├── alipay.go # 支付宝支付 │ ├── jwt.go # JWT 生成验证 │ ├── ordersn.go # 订单号生成 │ └── sendsms.go # 短信发送 ├── go.mod └── go.sum ``` --- ## 🔧 mygen 命令参数 ```bash mygen --name 项目名 --modules 模块1,模块2,模块3 --db-host 数据库地址 --db-port 3306 --db-user 用户名 --db-password 密码 --db-name 库名 ``` | 参数 | 说明 | 示例 | |------|------|------| | `--name` | 项目名称 | `--name myshop` | | `--modules` | 业务模块列表(对应数据库表名) | `--modules user,order,product` | | `--bff` | BFF 端口(默认 8080) | `--bff 9000` | | `--db-host` | MySQL 地址 | `--db-host 127.0.0.1` | | `--db-port` | MySQL 端口 | `--db-port 3306` | | `--db-user` | MySQL 用户 | `--db-user root` | | `--db-password` | MySQL 密码 | `--db-password your_password` | | `--db-name` | 数据库名 | `--db-name myshop` | **数据库参数会自动读取表结构,生成对应 Model** --- ## 🚀 完整运行流程 ### 1. 准备环境 ```bash # 安装依赖(有 Go 就行) go install github.com/12qwaszx3edc123/bks/cmd/mygen@latest ``` ### 2. 生成项目 ```bash mygen --name demo --modules user,book,order --db-host 127.0.0.1 --db-port 3306 --db-user root --db-password your_password --db-name demo ``` ### 3. 准备配置文件 在 `common/config/` 创建 `config.yaml`: ```yaml mysql: host: 127.0.0.1 port: 3306 user: root password: "" # 填入你的数据库密码 dbname: demo redis: addr: 127.0.0.1:6379 password: "" db: 0 es: url: http://127.0.0.1:9200 services: usersaddr: 127.0.0.1:50051 orderaddr: 127.0.0.1:50052 bookaddr: 127.0.0.1:50053 ``` ### 4. 启动服务 ```bash # 启动 BFF 网关 go run bffH5/basic/cmd/main.go # 启动微服务(可以多开几个终端) go run users-server/basic/cmd/main.go go run order-server/basic/cmd/main.go go run book-server/basic/cmd/main.go ``` ### 5. 测试接口 ```bash curl http://localhost:8080/users/list curl http://localhost:8080/book/list curl http://localhost:8080/order/list ``` --- ## 📚 学习路径(学生版) 如果你是学生,想系统学习 Go 微服务,按这个顺序走: | 阶段 | 学习内容 | 对应代码 | |------|----------|----------| | **第1步** | 项目结构理解 | 整个目录 | | **第2步** | gRPC 基础 | `proto/*.proto` | | **第3步** | GORM 数据操作 | `common/model/*.go` | | **第4步** | Gin 路由处理 | `bffH5/router/router.go` | | **第5步** | Redis 缓存实战 | `pkg/cart.go` | | **第6步** | ES 搜索实战 | `book-server/server/order.go` | | **第7步** | 支付对接 | `pkg/alipay.go` | | **第8步** | 定时任务 | `bffH5/handler/api/redtorenum.go` | 每个文件都有 `// xxx - bks` 注释,方便定位学习点。 --- ## 💻 在职开发快速上手 **你只想快速出活?看这几步就够了:** ```bash # 1. 安装 go install github.com/12qwaszx3edc123/bks/cmd/mygen@latest # 2. 生成 mygen --name myproject --modules user,order,book --db-host 127.0.0.1 --db-port 3306 --db-user root --db-password your_password --db-name myproject # 3. 配置数据库连接,改 config.yaml # 4. 运行 go run bffH5/basic/cmd/main.go ``` 剩下的业务逻辑,直接在生成的代码上改: - 加字段 →改 `model/*.go` + `proto/*.proto` - 加接口 → 改 `handler/api/*.go` + `router/router.go` - 加微服务 → 再生成一个项目,复制 `xxx-server/` 目录 --- ## 🔗 相关项目 | 项目 | 说明 | 链接 | |------|------|------| | **mygen** | 代码生成器(本项目核心) | `github.com/12qwaszx3edc123/bks` | | **bksgpx** | Go 工具包(ES/Redis/gRPC 封装) | `github.com/12qwaszx3edc123/bksgpx` | --- ## ⚠️ 常见问题 **Q: 生成后运行报错?** > 检查 config.yaml 路径是否正确,MySQL/Redis/ES 是否启动 **Q: 如何只生成部分模块?** > `--modules` 只写你需要的,比如 `--modules user,order` **Q: 如何改端口?** > 改 config.yaml 里的 services.xxxaddr,或用 `--bff 9000` 参数 **Q: 支付功能怎么测试?** > 支付宝沙箱环境,改 config.yaml 里的 alipay 配置 --- ## 📜 License MIT License - 想怎么用就怎么用 --- **一个问题:你是想快速出活,还是想系统学习?** - 快速出活 →看上面 **5秒快速开始** - 系统学习 →看上面 **学习路径(学生版)**