

新闻资讯
技术学院推荐采用 cmd/、internal/、pkg/、api/、configs/、scripts/ 目录结构,根目录含 go.mod;internal 下分 app/、handler/、service/、repo/、model/ 实现关注点分离,强调接口抽象与测试友好。
初始化一个规范的 Go 项目结构,核心是遵循 Go 官方推荐的布局习惯(如 cmd/、internal/、pkg/、api/ 等目录划分),同时兼顾可维护性、可测试性和工具链兼容性。不需要复杂脚手架,手动创建即可,关键是逻辑清晰、职责分明。
一个典型的中小型 Go 服务项目,推荐从以下结构开始:
cmd/myapp)config.yaml.example)和加载逻辑
化命令与关键步骤在空目录中执行以下命令快速启动:
go mod init example.com/myapp(替换为你的真实模块路径)cmd/myapp/main.go,写入最简 main 函数并导入内部包(触发依赖识别)go build -o ./bin/myapp ./cmd/myapp 验证构建通路.gitignore,至少忽略 /bin/、/dist/、go.work 和编辑器临时文件internal/ 是项目主干,建议按关注点拆分,避免“一锅炖”:
app.Run())让结构真正好用,注意几个细节:
internal/xxx 子包应有明确的 interface 定义(比如 repo.UserRepo),便于 mock 测试main.go 中写业务逻辑,它只负责初始化依赖、启动服务go:embed 加载静态资源(如模板、SQL 文件),不要硬编码路径internal/app/ 下统一管理 wiring 逻辑基本上就这些。结构不是越深越好,而是让新人一眼看懂“代码在哪改、测试怎么写、配置从哪来”。初期可以精简,随着模块变多再逐步拆分,保持演进节奏比一步到位更重要。