
项目结构
web项目:https://github.com/coder-lzh/go-web-demo
shell
system/
├── main.go
├── go.mod
├── go.sum
├── Makefile
├── .env.example
├── .gitignore
│
├── configs/ # 配置文件
│ ├── config.yaml # 基础配置(所有环境通用)
│ ├── config.dev.yaml # 开发环境配置
│ ├── config.prod.yaml # 生产环境配置
│ └── config.local.yaml # 本地环境配置(最高优先级)
│
├── docs/ # swag init 生成
│ ├── docs.go
│ ├── swagger.json
│ └── swagger.yaml
│
├── internal/ # 私有代码
│ ├── common/ # ★ 公共组件(枚举、常量、通用工具)
│ │ ├── constants/ # 常量定义
│ │ │ ├── status.go # 状态常量
│ │ │ └── error_code.go # 错误码常量
│ │ ├── enums/ # 枚举定义
│ │ │ ├── order_status.go # 订单状态枚举
│ │ │ └── user_role.go # 用户角色枚举
│ │ └── response/ # 统一响应格式
│ │ └── response.go
│ │
│ ├── config/ # 配置加载
│ │ └── config.go
│ │
│ ├── domain/ # 核心领域模型(业务对象 + 行为)
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── model/ # 数据库表映射(Entity/DO)
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── dto/ # API入参出参
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── repository/ # 数据访问层
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── service/ # 业务逻辑层
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── handler/ # 控制器层
│ │ ├── order.go
│ │ └── user.go
│ │
│ ├── middleware/ # ★ 中间件
│ │ ├── auth.go # JWT鉴权
│ │ ├── logger.go # 日志中间件
│ │ └── cors.go # 跨域处理
│ │
│ ├── router/ # 路由注册
│ │ └── router.go
│ │
│ └── utils/ # ★ 工具函数
│ ├── crypto.go # 加密工具
│ ├── time.go # 时间工具
│ ├── validator.go # 验证工具
│ └── convert.go # 类型转换工具
│
├── scripts/ # 脚本
│ ├── build.sh
│ └── deploy.sh
│
└── test/ # 测试
├── integration/ # 集成测试
└── unit/ # 单元测试
