
go项目开发结构探讨
对于go项目的目录结构,没有统一的标准,需要根据项目复杂度灵活制定。
- 简单项目:如果项目较小,可以直接将所有业务逻辑放在controller层中,由其负责数据操作。
- 中等复杂度项目:可以引入model层,负责与数据库交互,controller层仅负责调用model层的逻辑。
- 高度复杂项目:需要引入service层,负责封装业务逻辑,controller层仅负责调用service层的接口。
- 极端复杂项目:在service层和controller层之间,再引入transform层,用于处理数据的转换和组装。
go项目目录结构示例:
├── makefile
├── assets
│ ├── static
│ └── template
├── cmd
│ └── server
├── config
│ └── config.go
├── config.yaml
├── go.mod
├── go.sum
├── internal
│ ├── http
│ └── sms
├── pkg
│ ├── es
│ ├── ext
│ └── id
├── prod.yaml
├── scripts
│ ├── generate.sh
│ └── start.sh
├── static
│ ├── assets
│ ├── bootstrap
│ └── imgs
├── template
│ ├── default
└── test
└── inites.go关于包导入:
go项目中使用go mod来管理包依赖,建议使用全路径导入包,比如:
import "example.com/app/internal/http"










