我们在进行Go语言开发的时候,代码总是会保存在我们设置的$GOPATH/src目录下,经过go bulid、go install或者go get等命令,产生的二进制文件会放在$GOPATH/bin目录下,而生成的中间缓存文件会被保存在$GOPATH/pkg目录下。

因此$GOPATH目录通常包含src、pkg、bin这三个文件夹。如果使用版本管理时只需添加src目录的源代码进行版本控制即可。

不同的开发场景下,Go项目的目录结构有些许不同,下面大概介绍一下。

普通开发者项目结构

普通开发者可以使用下面的目录结构去组织代码:

普通开发者

目前流行的项目结构

Go语言中是通过包来组织代码的,我们可以引用别人的包也可以发布自己的包,一般通常顶级域名来避免冲突,因此目前比较流行下面这种项目结构来组织代码:

流行结构

大型企业的项目结构

大型企业中会引入部门或小组名来分隔各个项目,如下:

企业结构

目前市面上大概就分为这几个项目结构,对于初学者来说,建议采用第二种。