Go标准项目模板核心是结合Go Modules与合理目录结构,手动或轻量工具初始化:go mod init声明模块,创建cmd/internal/pkg/api/configs等目录,确保可维护性与清晰分层。

用 Go 初始化标准项目模板,核心是结合 Go Modules 和合理的目录约定,手动搭建或借助轻量工具快速生成结构清晰、可维护的包骨架。不需要复杂框架,Go 官方生态推崇简洁和显式设计。
初始化模块并建立基础目录结构
在项目根目录执行:
-
go mod init example.com/myapp —— 创建
go.mod,声明模块路径(建议用真实域名或 GitHub 路径) - 手动创建常见子目录:
cmd/(主程序入口)、internal/(私有业务逻辑)、pkg/(可复用的公共包)、api/(接口定义)、configs/(配置文件)等 - 例如:
mkdir -p cmd/myapp internal/handler internal/service pkg/utils
添加标准入口文件和示例代码
在 cmd/myapp/main.go 中写最小可运行入口:
- 导入本模块路径(如
"example.com/myapp/internal/handler"),调用初始化逻辑 - 在
internal/handler下放一个handler.go,导出简单函数如StartServer() - 在
pkg/utils放logger.go或errors.go,体现分层意图
可选:用脚本或模板工具一键生成
若需频繁新建项目,可用 Bash/Python 脚本或轻量工具辅助:
立即学习“go语言免费学习笔记(深入)”;
- 写个
init.sh:自动go mod init+mkdir+touch关键文件 + 写入基础代码片段 - 使用 gox 或 boilr 定义模板,运行
boilr template use go-standard快速填充 - 注意:避免过度依赖模板工具,理解每层作用比生成速度更重要
验证结构合理性
运行 go list ./... 查看所有包是否被识别;用 go build ./cmd/myapp 确保能编译;检查 go mod tidy 是否干净无冗余依赖。
不复杂但容易忽略——结构服务于协作与演进,不是越深越好,而是让新人一眼看懂“从哪启动、配置在哪、核心逻辑藏在哪”。










