项目结构
mengstack/
├── cmd/
│ └── server/
│ └── main.go # 应用入口,Swagger 注解
├── configs/
│ └── config.yaml # 默认配置文件
├── docs/ # Swagger 自动生成文档
│ ├── docs.go
│ ├── swagger.json
│ └── swagger.yaml
├── internal/
│ ├── kernel/ # 第一层:零业务语义基础组件
│ │ └── response/ # 统一响应格式
│ ├── app/ # 第二层:应用基础设施
│ │ ├── cache/ # Redis 缓存模块
│ │ ├── database/ # PostgreSQL 数据库模块
│ │ ├── health/ # 健康检查
│ │ ├── middleware/ # 全局中间件(CORS、请求ID、日志)
│ │ └── app.go # fx 容器组装
│ ├── config/ # 配置加载(Viper)
│ ├── logger/ # 日志初始化(Zap)
│ └── modules/ # 第三层:业务模块
│ └── auth/ # 认证模块
│ ├── domain/ # 领域层:实体、值对象、接口定义
│ ├── application/ # 应用层:业务逻辑编排
│ ├── infrastructure/ # 基础设施层:GORM/Redis 实现
│ └── interfaces/ # 接口层:HTTP Handler + 路由
├── migrations/ # 数据库迁移文件
├── test/ # 集成测试
├── docker-compose.yml # Docker 编排
├── Makefile # 构建命令
├── AGENTS.md # AI 辅助开发指南
└── go.mod # Go 模块定义目录职责
cmd/server/
应用入口,仅负责组装和启动。包含 Swagger 全局注解。
internal/kernel/
零业务语义的基础组件。不包含任何业务概念,只提供通用工具:
response/— 统一响应格式{code, message, data, trace_id}- 后续可扩展:
paginator/、errors/等
internal/app/
应用基础设施,连接 kernel 和外部世界:
database/— GORM + PostgreSQL 初始化和生命周期cache/— Redis 客户端初始化和生命周期middleware/— 请求 ID、请求日志、CORShealth/— 健康检查端点
internal/modules/
业务模块目录,每个模块独立自包含,遵循四层模式。
configs/
默认配置文件,运行时可通过环境变量覆盖。
migrations/
数据库迁移文件,使用 golang-migrate 管理。

