项目结构
小型项目
概念
- 小型项目: 优先保持结构简单;
- 拆包时机: 职责稳定后再拆分 package;
目录结构
hello/
├── go.mod # module 配置文件
├── go.sum # 依赖校验文件
├── main.go # 可执行程序入口
└── calc/ # 普通业务包目录
└── calc.go # calc 包源码
常见分层
目录结构
project/
├── cmd/ # 可执行程序入口集合
│ └── server/ # server 程序入口目录
│ └── main.go # server main 包入口文件
├── internal/ # 仅当前 module 内部可导入的代码
│ ├── handler/ # 输入输出边界层
│ ├── service/ # 业务规则层
│ └── repository/ # 数据访问层
├── pkg/ # 可被外部 module 复用的公共包
└── go.mod # module 配置文件