golintを通るように変更してみた #golang

少し前になりますがGunosyさんで行われた↓なgolangの勉強会 #gunosygo に参加

gunosygo.connpass.com

初めての参加でしたが、テーマがNotHttpNightということでバラエティに富んだ発表が聞けて非常に刺激と参考になりました。

その中で↓なLTがあり、その時のTLを見てみるとやはりみなさんgolintを通している模様・・・

www.slideshare.net

せっかくちょっと前に↓なツールを作ってみてたので、実際にgolintで怒られないように変更をしてみました。

uchimanajet7.hatenablog.com

まず、一番多かったのは 

logger.go:16:7: don't use underscores in Go names; const file_name_text should be fileNameText

アンダースコアを使ってる変数を直せという指示。これは個人的にスネークケースで書く方が好きなので至るところで出ていて、正直結構面倒な作業でした・・・そしてあまり好きじゃないキャメルケースに変更なのですね。

アンダースコアだめなのは、「ブランク識別子」として利用するかなのかなぁ?

golang.jp

その次はコメントが無い、もしくは指定の形式になっていないというもの

config.go:14:6: exported type Config should have comment or be unexported

これも公開しているものには変数・関数・構造体 ・・・etcであれ決まったフォーマットでコメントを付ける必要があるので結構な作業でした。

あとはちょっと変わっていたのは、特定の文字列で大文字を指定されることがありました。↓な感じでJSONとかIDとか。

config.go:35:2: struct field Json should be JSON

このあたりの理由とかもきになりますし、 #gunosygo のLTにあるようにソース読んでみるといろいろわかって面白そうですねー

しかしひたすらgolint→置換→test→(最初に戻る)を繰り返してたな・・・