Skip to content

golang项目的目录结构

golang的项目结构有一些最佳实践,但没有绝对正确的silver bullet

随着经验的增加,我们会知道在哪种场景下,使用什么样的目录结构。

以下是一些可以借鉴的项目

其他参考

https://tutorialedge.net/golang/go-project-structure-best-practices/

常见的目录有:

  • cmd: 包含应用指定代码来生成可执行的应用。有些可能会包含子目录如cmd/web 表示web应用,cmd/cli表示命令行等。
  • pkg: 包含项目中使用的非特定应用的辅助性代码。我们一般用它来存放潜在的可重复使用的代码,比如文本处理、输入校验以及数据库模型等。
  • ui: 包含用户界面相关的文件。ui/html 包含html模板。ui/static包含静态文件。

为什么要有这些目录结构呢?

  • 让golang相关的代码和非golang的代码(如ui)清晰地分开。所有的golang代码都在cmdpkg 目录下(你也可能有其他目录),在根目录下存放非go的相关文件。如ui、makefile和其他脚本等。
  • 支持项目后续的功能扩展。如果当前你是web项目,那么你只要cmd/web就好了,如果后续你需要命令行工具来自动化一些管理任务,可以直接添加到cmd/cli,且可以共享所有在pkg目录下的代码。

Published ingolang

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *