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