Golang覚書
Noahです
Golangを触る機会があったので備忘録も兼ねて残しておきます
というかぶっちゃけ、
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (4件) を見る
この本の覚書が多いです
$GOPATH と $GOROOT
そもそもここからわかっていなかった。
$GOPATHとは、Golangのソースコードなどを置くワークスペース。
基本どこでもいいらしいが、自分は$HOME/go/
ディレクトリにしておいた。
その下にsrc/
を配置、その中に各プロジェクトを置いたりする。
githubなんかからgo get
した際には$GOPATH/src/github.com/<USER NAME>/<REPOSITORY>
のように置かれる。
$GOROOTはGolangのインストールパス。昔は指定する必要があったみたいだが、今は不要のようだ。
vendor
RubyでいうところのBundlerみたいなものがGolangにもある。
それがglide
brew install glide
で入手可能。
使い方は簡単で、対象のプロジェクトディレクトリで
$ glide init
とすればglide.yml
ができて、自動で依存関係共々そこに記述される。
その後に
$ glide update
とすれば、glide.lock
, vendor/
ディレクトリが生成され、その中に依存するパッケージなどが配置される。
ディレクトリ構成
以下のようにしている。
project/ ├ main.go -- package main ├ lib/ │ └ pkg1/ │ └ pkg1.go -- package pkg1 ├ glide.yml ├ glide.lock └ vendor/ -- 依存パッケージなど
ちなみに、$GOPATH/github.com/<MY USER ID>/<PROJECT NAME>/
で管理することで、実際にGithubなどにあげたときと同じ環境で出来る。
main.go内でlib/
内のパッケージをimportする際にも、このディレクトリ構成なら、import "github.com/<MY USER ID>/<PROJECT NAME>/lib/<PKG NAME>"
でいけちゃうので楽。
最後に
Golangを、「Gopher君、超かわいい!!」くらいにしか思ってなかったが、今回触ってみてやはり他言語と比べて割りとシンプルだという印象を受けた。
ろくに書けるわけでは無い(A Tour of Go を一通りやっただけ)のに「みんなのGo言語」を読んで少し駆け足気味だったのでもう少し基本的なところから復習しがてら何か成果物を作っていけたらな、と思います。