Golang の test について書いたけど、そういや導入について何も書いていなかった。せっかくなのでまとめていきます。
Mac でのGolang の環境構築と Golang のパッケージ管理ツール glide について書きます。
また、vim で Golang を書くときの設定なども書いていきます。
Golang の環境構築
brew でさくっと Golang をインストールしてください。
1 |
brew install go |
(私は zsh を使っているので) .zshrc に Golang のソースを保存するディレクトリと、実行ファイルを入れておきたいディレクトリに GOPATH と PATH を通しましょう。
もちろん、それらのディレクトリは事前に自分で作っといてね。
1 2 |
export GOPATH=$HOME/gocode export PATH=$PATH:$HOME/gocode/bin |
PATH を通したら Golang の環境構築は終了です。
何かしら Golang のパッケージを install したときに GOPATH 以下に、src、bin、pkg というディレクトリが作られます。
ちなみに Golang のパッケージを install するときは以下のコマンド
1 |
go get [パッケージ名] |
Golang の Web Framework 、echo を install したい場合は以下のようにコマンドを打てばいいです。
1 |
go get github.com/labstack/echo |
なお、Golang での開発プロジェクトは、GOPATH/src の中に保存してください。
go get したあとは go のコードに
1 |
import “github.com/labstack/echo” |
と宣言すれば、パッケージが使えるようになります。
glide の利用
glide は Golang の vendor package manager です。
パッケージ管理だと思えばいい(はず)
glide を利用することで、プロジェクト内に様々なパッケージがインストールできます。
また、パッケージのバージョンを固定することもできるので、複数人で開発するときパッケージの管理なども簡単にできます。
まず glide を利用するためには brew で install してください。
1 |
brew install glide |
プロジェクトのディレクトリ内で
1 |
glide init |
を実行すると、そのプロジェクト内で使用されているパッケージの一覧が glide.yaml に保存されます。そして、
1 |
glide install |
すると、使用しているパッケージとそのパッケージと依存関係のあるパッケージ全てがプロジェクト内にインストールされます。
プロジェクト内に vendor というディレクトリが作られ、その中にパッケージが install されます。
(.gitignore などで vendor も git の管理対象外にすることを忘れないでね)
tree コマンドで表示(brew にあるよ!)
glide init, glide install 後のプロジェクトのディレクトリ構造
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Masa]~% tree -a . ├── glide.lock ├── glide.yaml ├── main.go └── vendor ├── github.com │ ├── labstack │ │ ├── echo │ │ │ ├── .editorconfig │ │ │ ├── .git │ │ │ │ ├── HEAD … |
ちなみに echo パッケージを go get 、glide get してきた場合、glide get (vendor)が優先的に読み込まれる仕様です。
Golang を書くときの vim の設定
vim で Golang を書くときは、vim-go を入れることをオススメします。
go get で vim-go をいれましょう。
1 |
go get github.com/fatih/vim-go |
そして、.vimrc 内には以下のコマンドを記述してください。
1 2 3 4 5 6 7 |
let g:go_highlight_functions = 1 let g:go_highlight_methods = 1 let g:go_highlight_structs = 1 let g:go_highlight_interfaces = 1 let g:go_highlight_operators = 1 let g:go_highlight_build_constraints = 1 let g:go_fmt_command = "goimports" |
Golang の syntax highlight が有効になるのと、保存時自動的に import にパッケージを補完してくれます。
また、Golang の記述ルールに則ってソースが自動的に整形されるようになります。
(他にも実はなにかあるのかもしれない)