Go语言提倡按功能进行模块化设计,一个工程通常包含以下结构
main包
main包包含main函数,是程序启动的入口,一般用于解析参数、初始化配置、启动服务等。
内部包
内部包按功能模块组织代码,通常采用多层目录组织,例如:
- controllers - 控制处理流程的代码
- services - 核心业务逻辑
- dao - 数据访问层,与数据库交互
- utils - 工具类与通用代码
- config - 配置加载与管理
- models - 数据模型与业务结构
外部包
外部包存放对外提供的API接口,其他项目可以导入这些包使用其中的函数。
通常按功能命名为 calc、parser等。
外部包名应该简洁明了,与内部包区分开。
测试包
测试包包含各种测试用例,位于内部包旁的test目录,如dao/test。
测试用例通常命名为xxx_test.go。
第三方包
通过go mod管理第三方依赖包。
资源文件
如配置文件、语言文件等,通常放在resources目录。
脚本
构建、部署等自动化脚本,如build.sh, deploy.sh等。
这样的项目结构划分清晰,方便维护。实际项目可以根据需要调整结构。