Go 项目工程结构
# Go 项目工程结构
Go 不强制唯一目录模板。小项目从简单结构开始,出现多个入口或私有业务包后再分层。
monitor/
├── go.mod
├── cmd/monitor/main.go
├── internal/checker/checker.go
└── internal/checker/checker_test.go
1
2
3
4
5
2
3
4
5
cmd/<name> 保存可执行程序入口,internal 限制模块外部导入。入口负责读取配置和组装依赖,核心逻辑放在可测试包中。不要为了形式预先创建空的 pkg、service、repository 层。
在项目根目录统一运行 go test ./... 和 go build ./...,确保所有包之间的依赖关系成立。