Go開発における便利なツール、パッケージたちをまとめてみました。
主観コメント付きで、抜け漏れは色々あるかと思います。
ちなみにほとんど全て「それvim-goに入ってるよ」状態です。
Goのツールを紹介してるんだかvim-goの紹介してるんだかわかりません。
エディタ、IDE
使ったことがあるやつだけ。Visual Studio Codeが人気と聞くけど使ったことないので詳細は不明。atomやその他でGoを書く気にはなれない。
vim-go(vimプラグイン)
どこぞの調査ではvimがGopher一番人気らしい。(ソースは忘れたけどVim寄りのサイトなので控えめに聞いてほしい)
控えめに言って素晴らしすぎるのでGopherはみんなVimmerになれば良いと思う。
バラバラだったgo関係のvimプラグインを1つにまとめたものらしい。
これから紹介するツールもだいたいvim-goで使える。
Goland
GoglandとGolandをよく間違える。
私が使っていたのは有料化前のベータ版までだが、JetBrainsはやはりいい。
JVM系言語のようなvimだと辛い言語を書くときに利用する。
なかなか高めだがそれだけの価値はある。
vimプラグインのインストール時に黄色いビックリマークの危険サインついてて笑った。
Linter, Formatter、静的解析ツール系
go fmt
宗教戦争を起こさずにすむツールが言語自体にくっついてるのが素晴らしい!
昔、fmtの気にくわないところを手動で直していた先輩がいたが、やめてほしかった。
fmtってフムトゥって読むらしいね。
vim-goでもgolandでも、保存時の実行機能は付いてる。
ロクでもないプロジェクトに入ると「go fmtを実行した」ってコミットがある。
gometalinter
これから紹介する静的解析ツール類をひとまとめに実行するもの。
もちろんvim-goに入ってるよ。
goimports
go fmtの(だいたい)上位互換。
fmtしながら、インポート管理もしてくれる。
golint, go vetなど
静的解析ツールの代表的なもの。
詳しくはgometalintのREADMEを読むと幸せになれる。
ドキュメントツール(go doc)
ソースコードのコメントとソースコード自体からドキュメントを生成する。
ものすごく便利。
依存関係管理(dep)
色々あったけど、今はdep。
公式ツール。
Goが初期の理想を諦めた結果かもしれない。
依存パッケージを特定のコミットで固定するやつ。
詳細はググってほしい。
デバッグ(delve)
これしか使ったことないのでdelveだけ紹介。
1行ずつ実行したり変数の中身見たりするあれ。
もちろんvim-goが対応している。
テスト
個人的にGoに組み込まれているやつだけでいいと思っているのでassert系の紹介はなし
go test
ツールじゃなくて言語機能だけどgoのテスト思想は個人的に好き。
go tool cover
上記go testのオプションで出力したC0を綺麗に表示してくれる。
個人的に見た目が好きなツールなので紹介。
vim-goが対応しており、コマンド1つでソースが赤と緑に変わる。
まとめ
多分紹介忘れありますが、仕事の時間なので一旦ここで。
リファクタリングツールはのちに追記します。
編集リクエストかコメントを投げていただければ増やしていきます。