# 1\. 配置GOPATH
`GOPATH`是一個環境變量,用來表明你寫的`go`項目的存放路徑
`GOPATH`路徑最好只設置一個,所有的項目代碼都放到`GOPATH`的`src`目錄下。
Linux和Mac平臺就參照上面配置環境變量的方式將自己的工作目錄添加到環境變量中即可。 Windows平臺按下面的步驟將(你的安裝目錄,例如:`D:\go`)添加到環境變量:
1.我的電腦->屬性->高級系統設置

檢查一下你的電腦里面是否存在`GOPATH`并且設置值為你要存`go`代碼的目錄

同時在`path`里面添加`go`的安裝目錄和`GOPATH`目錄


## 1.1. 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`目錄的內容無需版本控制。
## 1.2. 適合個人開發者
我們知道源代碼都是存放在`GOPATH`的`src`目錄下,那我們可以按照下圖來組織我們的代碼。

## 1.3. 目前流行的項目結構
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`。
## 1.4. 適合企業開發者
