TechBlogSideCIのエンジニアによる技術ブログです。サポートするツールについて記そうと思います。Go言語で使用できるLinterをまとめて実行することが出来るツールです。Linterは多くのGoのツールに依存しています。この記事では、その依存している各ツールがどのような機能を持つのかを述べようと思います。いう素晴らしい記事があるため、そちらで説明されているツールに関しては適宜この記事へのリンクを貼っています。上記の記事で言及されていないツールを重点的に説明させていただきます。sourcesAlignCheck構造体のサイズに無駄がないかを教えてくれます。見るとわかりやすく解説がされているのでご覧ください。string}StructCheck構造体の未使用フィールドを検出します。positiveが存在します。varcheck未使用グローバル変数、定数を検出します。変数などを検知します。detection重複コードを検出します。以下のように、変数名などがちょっと変わっていても検出可能で便利です。errors.error型の戻り値を投げ捨てていないかをチェックします。項目を参照してください。AST.Goのプログラムのセキュリティ上の問題を検出します。このツールについては別の記事で詳しく解説しているので、そちらも是非ご覧ください。tech.sideci.comexec.Commandの使用のみで警告が出るなど、作成するアプリケーションの種類によってはマッチしないルールも多いため、ルールの調整が必要でしょう。constant同じ文字列を複数ヶ所で使っている場合、それを定数にすることを促すツールです。""}デフォルトでは、3箇所で同じ文字列が使用されている場合に怒られる。code.Goのコードの循環的複雑度を測ることができます。大量のif文などで多くの分岐がある場合循環的複雑度が増加し、しきい値を超えた場合警告が出されます。GoDocgoimportsでフォーマットされていない様なimportを検出します。golintの項を参照して下さい。GoDocGoのコードをよりシンプルにする術を教えてくれます。gosimpleの項を参照して下さい。GoDocGoコンパイラのフロントエンドの様に、型のエラーなどを出力します。code.効果のない代入を検出します。fmt.Println(x)}interfacer不必要に広い範囲の引数を受け取る関数を、より狭い範囲を示すインターフェースを受け取るような関数に変更することを提案します。linter1行の長さが規定長さ以上になっていないかを検出します。デフォルトでは80文字です。filesよくあるスペルミスを検出します。Golangのソースコード限定というわけではなく、汎用的に使うことが可能なツールです。