April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
Linterはソースコードを解析して、不具合やバグの匂いがするコード、コードスタイルに合致しないコードなどを発見して報告するためのツールです。
Linterを導入することで、プルリクエストなどをレビューアーがレビューする前に、静的解析によって機械的にコードの問題点を指摘できます。また、よりGoらしい書き方を学ぶきっかけにもなります。Linterに些細な点や機械的な問題点を指摘してもらうことで、レビューでは仕様を満たしていない実装の指摘など、より本質的な内容に集中できるようになるでしょう。Linterの導入はレビューアー、レビューイー双方にとって生産的です。ただし、何でもかんでもLinterでチェックしてエラーを報告させると、開発者(特に新人Gopher)の生産性が下がります。開発チームの力量に合わせて、最初は緩めにチェックしておき、開発ノウハウやGoらしいコードの書き方に習熟してきたら、徐々にLinterの設定を厳しくする、といった考え方もあります。
Goには vet というLinterが言語にデフォルトで組み込まれています。 go vet コマンドで vet を単体のコマンドとして実行できますが、go test でGoのテストを実行するとき、事前に go vet コマンドが実行されます。テスト実行前にコンパイラーが検知できない疑わしいコードを見つけられます。1
go vet が検知するコードの例として、たとえば以下のようなフォーマット文字列の引数が一致しないコードがあります。go test でテストを実行すると、エラーを検知できます。
// Printf のフォーマット引数を忘れている ...Read now
Unlock full access