Go項目結構
在進行Go語言開發的時候,我們的代碼總是會保存在$GOPATH/src目錄下。在工程經過go build、go install或go get等指令后,會將下載的第三方包源代碼文件放在$GOPATH/src目錄下, 產生的二進制可執行文件放在 $GOPATH/bin目錄下,生成的中間緩存文件會被保存在 $GOPATH/pkg 下。
如果我們使用版本管理工具(Version Control System,VCS。常用如Git)來管理我們的項目代碼時,我們只需要添加$GOPATH/src目錄的源代碼即可。bin 和 pkg 目錄的內容無需版本控制。
個人開發
我們知道源代碼都是存放在GOPATH的src目錄下,那我們可以按照下圖來組織我們的代碼。

目前流行的項目結構
Go語言中也是通過包來組織代碼文件,我們可以引用別人的包也可以發布自己的包,但是為了防止不同包的項目名沖突,我們通常使用頂級域名來作為包名的前綴,這樣就不擔心項目名沖突的問題了。
因為不是每個個人開發者都擁有自己的頂級域名,所以目前流行的方式是使用個人的github用戶名來區分不同的包。

舉個例子:張三和李四都有一個名叫studygo的項目,那么這兩個包的路徑就會是:
import "github.com/zhangsan/studygo";
和
import "github.com/lisi/studygo";
以后我們從github上下載別人包的時候,如:
go get github.com/jmoiron/sqlx
那么,這個包會下載到我們本地GOPATH目錄下的src/github.com/jmoiron/sqlx。
企業開發

