Upgrade to Pro — share decks privately, control downloads, hide ads and more …

golangci-lint徹底入門

sanposhiho
July 19, 2021
1.6k

 golangci-lint徹底入門

sanposhiho

July 19, 2021
Tweet

More Decks by sanposhiho

Transcript

  1. お前 is 誰 名前: Kensei Nakada / sanposhiho 所属: 京都大学

    4回生 (卒業できれば)22年入社予定 期末レポートがやばい @sanposhiho @sanpo_shiho
  2. 基本的な設定内容(linters) - [方針1] enable-all/disable パターン
 - [方針2] disable-all/enable パターン
 どちらを使えばいいの?


    多くのlinterを使いたい → 「1. enable-all/disable パターン」 
 新しいlinterを積極的に追加する必要がなく、バージョンアップには既存のバグの修正等のみを求める →「2. disable-all/enable パターン」
 

  3. [余談] nolintのシンタックスはGoの慣習に即していない? - goのツールは//go:*というコメントディレクティブを使用することになっている - https://golang.org/cmd/compile/ - 他のツールも//^[a-z]+:[a-z]+.というフォーマットでコメントディレクティブを使用するの が一般的である -

    ちゃんと公式にアナウンスするための以下の issueがたっている - https://github.com/golang/go/issues/43776 - //nolint: hoge (nolint:とhogeの間にスペースがある )と書くこともできるがこれもスペースがあるので フォーマットに即していないことになる
  4. golint(非推奨)(archived) - メンテがされていない - 2018年から実質的な変更が加わってない - Issueも放置されているものが多い - golang orgに存在するlinterなのでGoが公式として推奨しているlinterに見える

    - Go が実際には保守されていないプログラムを公式として推奨しているように見えてしまう - 開発者は合理的に異なるスタイルを採用したい場合がある - Golint単体で特定の警告を無視したりするなどの機能を持っていない