Go 语言(GoStartKit 后端)
本教程以 GoStartKit 风格的模块化 Go 后端为对象,对照参考工程:
gostartkit/stub/golang/base
讲解如何理解、本地运行、扩展与部署这类项目——不是传统 Hello World / 语法扫盲课。
你会学到什么
- 为什么默认用 模块化单体(modular monolith),而不是一上来拆微服务
- 仓库目录、
services/*模块形态、libs/contracts边界 - 如何本地启动 monolith、迁移数据库、做 smoke
- HTTP 与启动框架约束(
pkg.gostartkit.com/web、pkg.gostartkit.com/cmd) - 配置、安全与二进制发布部署路径
适合谁
- 有一门语言基础,想用 Go 做可交付后端 的开发者
- 需要理解「业务模块边界 + 单体部署」的团队
- 使用或二次开发 GoStartKit / gskctl 相关脚手架的工程师
先备条件
- 已安装 Go 1.22+(参考工程可能要求更新版本,以该仓库
go.mod为准) - 熟悉命令行、
git、HTTP JSON API 基本概念 - 可选:MySQL(本地默认可用 SQLite 路径,见本地开发文档)
文档目录
项目概览
GoStartKit base 项目概览:模块化单体、设计原则与当前能力范围。
环境准备
运行 GoStartKit base 所需的 Go 版本、工具与仓库准备。
架构与目录
GoStartKit base 架构:模块化单体、目录布局、平面划分与依赖方向。
模块怎么写
GoStartKit 业务模块内部结构、Runtime 接线与禁止跨服务 import。
本地开发
本地运行 GoStartKit monolith:SQLite/MySQL、迁移、smoke 与常用 make 目标。
配置说明
GoStartKit base 关键配置项:HTTP、数据库、JWT、邮件、设备与安全相关环境变量。
API 与鉴权导读
阅读 GoStartKit API 与鉴权模型:组织作用域、权限、OpenAPI 与设备侧入口。
构建与部署
GoStartKit base 构建与部署:二进制发布、迁移、user-level systemd 与生产配置。
建议阅读顺序
- 项目概览 — 目标、原则、能力边界
- 环境准备 — Go、工具、仓库
- 架构与目录 — 单体 / 模块 / contracts
- 模块怎么写 — domain / application / adapter
- 本地开发 — run、migrate、smoke
- 配置说明 — 关键环境变量
- API 与鉴权导读 — 对外接口怎么读
- 构建与部署 — 二进制发布与 systemd
工程协作规范(提需求、验收、变更)见 工程规范与流程,与本教程互补。