素晴らしいゴーリナー
Awesome Go Linterのキュレーションリスト。
Golangciがスポンサー:Github Pullリクエストでリナーを実行するためのSaaSサービス。オープンソースは無料です。

コンテンツ
- クラウドリナー
- リナー
- コードフォーマット
- コードの複雑さ
- スタイルとパターンのチェック
- バグ
- 未使用コード
- パフォーマンス
- 報告
- その他
- リナーヘルパーツール
クラウドリナー
集中してください
- Golangci -Github Pullリクエストでリナーを実行するためのオープンソースSaaSサービス。オープンソースは無料です。
- Golint Online -Lints Online Github、Bitbucket、Golintパッケージを使用したGoogleプロジェクトホスティングのソースファイル。
- Gopherci -Gopherciは、各Github Pullリクエストをチェックして、逆方向の互換性のない変更、および他のテストのスイートを確認することにより、高品質のGOプロジェクトを維持するのに役立ちます。
- GOレポートカード-Go Repo Reportカード。
汎用
- CodeClime-オープンおよび拡張可能な静的分析プラットフォーム。
- CodeFactor -GithubまたはBitbucketのリポジトリの自動コード分析。
- Houndci- Github Pullリクエスト用のコードレビューツール
- QuantifiedCode-自動化されたコードレビューと修理
- Scrutinizer -GitHubと統合できる所有者コード品質チェッカー
- Sideci-自動コードレビューツール。開発者の生産性の向上。
リナー
コードフォーマット
- Dedupimport -同じインポートパスを持つが、インポート名が異なる重複するインポートを修正します。
- GOFMT -GOFMTフォーマットGOプログラム。すべてのプロジェクトに必要です。 -sフラグを使用することを忘れないでください。
- GoFumpt-このツールはGOFMTの修正されたフォークであり、GOFMTよりも厳しい形式を実施し、後方互換性があります。
- Goimports -GoimportsはGOFMTが行うすべてを行います。さらに、未使用のインポートをチェックします。
- UNINDENT-不必要にインデントされたレポートコード
コードの複雑さ
- ABCGO -GOソースコードのABCメトリック。
- 深さ-Go関数の最大値をカウントします。読みやすさのために、関数をいくつかの小さな関数に分割する必要があるかどうかを確認すると役立ちます。
- Funlen-長い関数をチェックするリナー。行の数とステートメントの数の両方を確認できます。
- Gocyclo-機能のサイクロマティックな複雑さを計算してチェックします。
- Nakedret -Nakedretは、指定された関数の長さよりも大きい機能で裸のリターンを見つけるためのGO静的分析ツールです。
- Sprint-長すぎるか、パラメーターや結果が多すぎる関数が見つかります。
スタイルとパターンのチェック
- Dogsled-空白の識別子が多すぎる課題/宣言を見つけます。
- Dupl-コードクローン検出用のツール。
- Go -Checkstyle -CheckStyleは、Java CheckStyleのようなスタイルチェックツールです。このツールは、Java Checkstyle、Golintに触発されました。このスタイルは、GOコードレビューのコメントのいくつかのポイントを参照しています。
- GO-CLEANARACH-GO-CLEANARCHは、GOプロジェクトのパッケージ間の依存ルールや相互作用など、クリーンなアーキテクチャルールを検証するために作成されました。
- Go -Consinstent- GOプログラムをより一貫性にするのに役立つソースコードアナライザー。
- Go -Namecheck-プロジェクト内の可変/フィールド命名規則を維持するのに役立つソースコードアナライザー。
- go-printf-func-name-printfのような関数が最後に
fに命名されることをチェックします。 - Go-RuleGuard-パターンベースのカスタムリントルールを定義および実行します。
- gochecknoinits-コードの副作用を減らすために、init関数を見つけます。
- GoCheckNoglobals-コードの副作用を減らすために、グローバルなVARを見つけます。
- GOCONST-定数に置き換えることができる繰り返しの文字列を見つけます。
- Golint -GolintはGoソースコードのリナーです。
- GOSIMPLE -GOSIMPLEは、コードを簡素化することを専門とするGOソースコードのリナーです。
- Impi-インポートのグループ化と注文を確認します。
- インターフェーサー - より狭いインターフェイスタイプを示唆するリンター。
- lll-ファイルのライン長を施行するために使用されるライン長リナー。
- Misspell-一般的に間違った英語の単語を見つけます
- nofuncflags -boolean paramsを関数(フラグ)に禁止します。
- 事前宣言-Shadowsが組み込みの識別子(たとえば、
append 、 copy 、 int )を見つけたコードを見つけます。 - Revive -〜6倍高速、より厳格、構成可能、拡張可能、そしてGolintのドロップインの代替品
- Uncomber -Goソースから不要なタイプ変換を削除します。
- UsedExports -Exported Exported変数を入力してください。
- Whitespace-関数の開始時と終了時に不要なニューラインをチェックします
バグ
- Apicompat-最近の変更をGOプロジェクトにチェックします。
- 悪いタイム - 悪いタイムは、時間の不適切な使用を検出するGolangリナーです。
- Bodyclose-HTTP応答本文が閉じていて、TCP接続の再利用がブロックされていないかどうかを確認します
- Durcheck -Durcheckは、GOパッケージの時間のある潜在的なバグを検出する非常にシンプルなリナーです。
- Enumcase -Enumcaseすべてのスイッチステートメントは、タイプのすべてのconst値を処理します。
- enumlinter- enumeratedタイプ用のenum inum go。
- errcheck -errcheckは、GOプログラムでチェックされていないエラーをチェックするためのプログラムです。
- ガス - GO ASTをスキャンして、セキュリティ問題のソースコードを検査します。
- GO VET -VETはGOソースコードを調べ、引数がフォーマット文字列と一致しないPrintFコールなどの疑わしいコンストラクトを報告します。変数の影を確認できますが、明示的に有効にする必要があります。
- GoSumCheck-タイプスイッチのすべての可能なケースをチェックします。
- Go-Sumtype-Switchタイプのすべての可能なケースが処理されます。
- Mulint -Go Lintは、再帰ロックを検出し、死んだロックにつながる可能性があります。
- SAFESQL- SQL注入から保護するGolangの静的分析ツール。
- scopelint -scopelintは、GOプログラムの未使用変数をチェックします。
- sqlrows- sql.rowsで閉じるかどうかをチェックします。
- StaticCheck -StaticCheckはステロイドの
go vetであり、C#のResharperなどのツールから慣れているかもしれない多くの静的分析チェックを適用します。
未使用コード
- DeadCode-未使用のコードを見つけます。
- INEFFASSIGN-既存の変数への割り当てが使用されていない場合を検出します。
- structcheck-未使用のグローバル変数と定数を見つけます。
- UNPARAM-未使用の関数パラメーターを報告します。
- 未使用 - 未使用のチェックは、未使用の定数、変数、関数、およびタイプのコードを作成します。
- Varcheck-未使用のグローバル変数と定数を見つけます。
パフォーマンス
- alignheck-最適ではない構造について警告します。
- CopyFighter -GOコードを静的に分析し、値で大きな構造体を渡す関数を報告します。
- 悪意のある - フィールドがソートされた場合にメモリが少なくなるGO構造体を検出するツール。
- PREALLOC-潜在的にPREALLOCATESを使用できるスライス宣言を見つけます。
- RangerDanger-アドレス指定可能な配列を繰り返す範囲ステートメントを検出するツール
報告
- FLEN- GOパッケージの機能の長さに関する情報を入手してください。
- Goreporter-静的分析、単体テスト、コードレビュー、コード品質レポートを生成するGolangツール。
- Golinters -Golintersは、Go Lintersに関するHTMLレポートを生成します。
その他
- Go Ostdated-時代遅れのパッケージを表示するコンソールアプリケーション。
- GO-TEMPLATE-LINT-GO-TEMPLATE-LINTは、Go Text/Template(およびHTML/Template)テンプレートファイルのリナーです。
- Godox-すべてのtodo/fixmeコメントを見つけてください。
- Lingo-特定のチェックのセット。
- Megacheck -Megacheckは、StaticCheck、Gosimple、およびUnsauseを一度に実行します。作業を再利用できるため、各ツールを個別に実行するよりも速くなります。
- Go -Critic -Source Code Linterは、現在他のリナーに実装されていないチェックをもたらします。
- TARP -TARPは、GOソースコードで直接単位テストなしで機能と方法を見つけます。
- go -mnd-ゴーのマジック番号検出器。
- GoCheckit-廃止されたGOモジュールを特定するのに役立つGOツール。
リナーヘルパーツール
- Golangci -lint -go for go。 Gometalinterよりも5倍高速。素敵な色の出力。新しい問題のみを報告できます。偽陽性が少ない。 yaml/toml config。
- Gometalinter -Metalinterは、すべての静的解析ツールを自動的に適用し、その出力を正規化された形式で報告するためのツールです。
- LINT -GOテストの一部としてリナーを実行します。
- Revgrep-静的分析ツールからのフィルター出力。
- ReviewDog-「ReviewDog」は、Linter Toolsと簡単に統合することにより、GitHubなどのコードホスティングサービスにレビューコメントを投稿する方法を提供します。
- ZB -Gometalinterの結果をキャッシュして、スピードアップリント。
- Golintui -Go Linters用のシンプルな端末UI。