覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Go言語 - 開発支援ツール

Go言語での開発を行う際にお世話になる開発支援ツールがいくつか存在しています。
そこまで猛烈に意識しなくてもいい気もしますが、自分用のメモとしてコマンドラインでの入手方法等を記載しておきます


gofmt

gofmt は、Go標準で付属しているコードフォーマッターです。
ソースコードのインデント等を自動的に整形してくれます
好き勝手な独自スタイルが乱立しないように公式の単一のスタイルを強制してくれます。

使い方例(元のファイルを上書きする場合)

gofmt -w target.go


goimports

goimportsgofmt の上位互換のツールでコードフォーマット共に自動で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 にアクセスすると以下のような画面が表示されます

f:id:nini_y:20180808005152p:plain`


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