analysis パッケージの仕組みの上でMulti linter with configを実現する

Room 1 17:30 - 17:50

Goに標準で組み込まれている静的解析ツール `go vet` は、コードの品質と整合性維持に非常に役立ちます。しかし、より高度な要件を満たすには、複数のリンターを統合的に管理し、かつユーザーが設定ファイルで挙動を調整できる仕組みが求められます。 本セッションでは、Goの `analysis` パッケージが提供する機能を最大限に活用し、「設定ファイルを伴う」マルチリンターを実現する方法について解説します。 具体的には、https://github.com/k1LoW/gostyle の実装を例に深掘りしていきます。 k1LoW/gostyleでは、設定ファイルを読み込み、その内容を各 `analysis.Analyzer` の解析ロジックに反映させることで、柔軟なリンティングを実現しています。 設定ファイルの値をどのように各 `analysis.Analyzer` に渡すか、その設計パターンと実装の詳細について解説します。 本セッションが、Goの静的解析ツールをある程度理解した上でより実践的で汎用性の高いカスタムリンターの作成を検討しているGo開発者にとって有益な情報となれば幸いです。