Go言語での開発を行う際にお世話になる開発支援ツールがいくつか存在しています。
そこまで猛烈に意識しなくてもいい気もしますが、自分用のメモとしてコマンドラインでの入手方法等を記載しておきます
gofmt
gofmt
は、Go標準で付属しているコードフォーマッターです。
ソースコードのインデント等を自動的に整形してくれます
好き勝手な独自スタイルが乱立しないように公式の単一のスタイルを強制してくれます。
使い方例(元のファイルを上書きする場合)
gofmt -w target.go
goimports
goimports
は gofmt
の上位互換のツールでコードフォーマット共に自動でimport文の挿入や削除を実施してくれます
入手方法
go get golang.org/x/tools/cmd/goimports
golint
Goとして望ましくないコーディングスタイルに対して警告をしてくれます。
ソースコードの問題報告というより、こういう風にした方がいいよというアドバイスをくれます
入手方法
go get -u golang.org/x/lint/golint
godoc
godoc
は、強力なドキュメント閲覧ツールです。
入手方法
go get golang.org/x/tools/cmd/godoc
使い方(サンプル)
net/http
について調べる場合
$ godoc net/http use 'godoc cmd/net/http' for documentation on the net/http command PACKAGE DOCUMENTATION package http import "net/http" Package http provides HTTP client and server implementations. Get, Head, Post, and PostForm make HTTP (or HTTPS) requests: resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) ... resp, err := http.PostForm("http://example.com/form", url.Values{"key": {"Value"}, "id": {"123"}}) The client must close the response body when finished with it:` (以下省略)
httpサーバとして利用する場合
godoc -http=:6070
のような実行をします
その後Webブラウザで http:localhost:6070
にアクセスすると以下のような画面が表示されます
`
gorename
gorename
は、Goのリファクタリングツールです。変数名や関数名のリネーム等ができます
入手方法
go get -u golang.org/x/tools/cmd/gorename
guru
guru
は、ソースコードの静的解析など行うツールです
入手方法
go get golang.org/x/tools/cmd/guru
gocode
コード補完を実施してくれるツールです
入手方法
go get -u github.com/nsf/gocode
godef
godef
は、関数定義などへジャンプするためのツールです
入手方法
go get -u github.com/rogpeppe/godef
goreturns
goreturns
は、importの追加や削除、フォーマット、function 内で戻り値に合わせた return の補完をしてくれます
入手方法
go get -u sourcegraph.com/sqs/goreturns