Go项目目录该怎么组织?官方终于出指南了!
💡
原文中文,约6200字,阅读约需15分钟。
📝
内容提要
Go官方文档新增“Organizing a Go module”文档,提供7种项目布局建议,解决项目目录布局问题。唯一不同于个人建议的是在pkg目录的使用上。
🎯
关键要点
- Go官方文档新增了关于项目布局的指南,解决了Go项目目录布局的问题。
- Go项目分为library和executable两类,分别对应package和command。
- 官方指南提供了7种项目布局建议,涵盖不同类型的Go项目。
- basic package是最简单的package类项目,包含一个导出package。
- basic command是最简单的executable类项目,包含一个可执行文件。
- package with supporting packages建议将不导出的支持包放入internal目录。
- command with supporting packages的main.go文件需放在main包中。
- multiple packages项目可以通过多个导出package的目录来实现。
- multiple commands项目将每个command放在单独的目录下。
- multiple packages and commands项目使用cmd目录来存放commands。
- 官方建议与个人建议相近,主要区别在于pkg目录的使用。
- 项目目录布局的设计是基础布局,业务层面的布局不在本篇讨论范围内。
🏷️
标签
➡️