Goの環境周りの確認とREPL、フォーマッター、リンターについて
雰囲気でgolangを使っていたのですが、みんなのGo言語
という本を読んで、もう少し土台を見直した方が良いなと影響を受けました。本を参考に、環境周りの設定など整理したので、情報を共有します。
環境変数
GOROOT
golangのインストールパス。go env GOROOT
コマンドで確認できます。
go env GOROOT
# ↓出力結果例
/go/app # go env GOROOT
/usr/local/go
GOROOT配下のbin/
ディレクトリにgo
、gofmt
の実行バイナリが置かれています。インストール先のディレクトリなどを変更した場合は環境変数として$GOROOT
を設定したり、$PATH
を通したりします。
GOPATH
外部のパッケージが保管されるパス。go env GOPATH
で確認できます。
go env GOPATH
# ↓出力結果例
/go/app # go env GOPATH
/go
ちなみにパッケージはgo get hoeghoge~
でgithubのリポジトリを指定してインストール。GOROOTと同じくbin/
に実行バイナリが置かれます。
src/
はソースコードが置かれているディレクトリ。バージョンが1.13以降はpkg/
に置かれる模様。
開発コードもこのGOPATH配下に設置します。
REPL
gore
というパッケージがあります。PythonやRubyでいうインタプリタのような機能をgolangで使えるようにするパッケージです。手軽に挙動を確認できて便利です。
# goreのインストール
go get -u github.com/motemen/gore/cmd/gore
REPL上で入力補完や色付けをしてくれるパッケージもあるので、一緒にインストールすると良さそうです。
# ↓gore上で入力補完を可能にする
go get -u github.com/mdempsky/gocode
# ↓色付けしてくれるパッケージ
go get -u github.com/k0kubun/pp
gore
コマンドでREPLが起動します。
/go # gore -autoimport
gore version 0.4.1 :help for help
gore> fmt.Println("Hello")
Hello
6
nil
フォーマッター・リンター
golangではgofmt
というフォーマッターと、go vet
というリンターが標準装備されています。
他には外部パッケージにgoimports
、golint
などがあります。
- フォーマッター
– gofmt…標準のフォーマッター
– goimports…必要なパッケージを自動でコードに挿入してくれるフォーマッター - リンター
– go vet…標準のリンター
– golint…ガチガチに細かくチェックしてくれるリンター
golintはコメントの挿入場所まですごく細かく指摘してくれるので、チーム開発向け。goimportsは好みに応じて。
gofmt
とgo vet
はファイルの保存時に自動で実行されるよう、エディタの設定をしておくとすごく便利です。
まとめ
文法やコーディングにばかり目を向けがちですが、効率よく開発しようと思えばフォーマッターやリンターなど、環境周りの設定はとても重要ですよね。
雰囲気で把握していたGOROOTとGOPATH周りの設定など、とても参考になりました。