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目录的使用。
  • 项目目录布局的设计是基础布局,业务层面的布局不在本篇讨论范围内。
➡️

继续阅读