読者です 読者をやめる 読者になる 読者になる

SideCI Blog

自動コードレビューサービスSideCIを提供している株式会社アクトキャットのコーポレートブログです。



SideCI の対応言語にGo言語を追加しました!

SideCI Update Go

こんにちは。OctocatとGopherをこよなく愛する@pockeです。

今週のSideCIのアップデート情報です。

f:id:sideci:20160114102413p:plain

SideCIの対応言語としてGo言語を追加しました

alt="Go image" Go言語対応イメージ

以下の3つのツールを選択することが可能です。

  • go vet
  • golint
  • gometalinter

それぞれで特色が違うため、簡単に紹介いたします。

Go Vet

go vetは、コンパイラが検出できないような、バグの可能性があるコードを検出します。
例えば、Printf関数のフォーマットの不整合や、よく使われる関数名のインターフェイスの不整合などです。

// %d がひとつ多い
fmt.Printf("%d %d", 10)

// func (*Foo) UnmarshalJSON([]byte) error が標準的
func (*Foo) UnmarshalJSON(string) error

また、JSONなどを使用する際に使用するタグの書式指定ミスも検出します。

type Foo struct {
  Bar string `json:"bar` // クオートが閉じていない
}

Go Lint

golintgo vetとは異なり、コーディングスタイルの問題を検出します。
例えば、公開する関数にはその説明をコメントに書くことを指摘したり、以下のような変数名のルールに沿っているかを確認します。

bad good
foo_bar fooBar
fooUrl fooURL
fooId fooID

Go Meta Linter

Go Meta Linter は、上記二つを含む複数のGo言語用Lintツールをまとめて実行できるツールです。

go vet, golint の他には、デッドコードや重複コードの検出、コードの複雑さのチェックなどをすることが可能です。


SideCIでは、コードを様々な面から検査したい場合にはGo Meta Linterを、スタイルやバグに特化してチェックしたい場合にはgo vet, golintをそれぞれお使いいただくことができます。

この機会にSideCIを触っていただけたら幸いです!