PaperCall is shutting down on August 31, 2026. Existing events and submissions will remain available until then. New events can no longer be created.

Welcome to Linter

By Junki Kaneko

Elevator Pitch

チーム開発を行う際、コードの統一性を保っておくと、新規メンバーが入ってきた時にキャッチアップが早くなったり、より高いコンテキストでコードレビューを行うことができます。 Go言語においては静的解析を行う為のツールセットが言語側で提供されているので、他の言語に比べて非常に敷居が低いです。 このセッションでは、コードの統一性を静的解析を行うことで解決できるようにする静的解析ツールを開発する為の入門セッションです。

Description

背景

静的解析を利用しない時に起こりうる開発組織における問題点

導入

  • Go言語における静的解析の実装(go vet)と、analysis.Analyzer interfaceを利用した抽象化について
  • Go言語に組み込まれているanalysis.Analyzerの中からピックアップしたもののコード紹介

開発

  • analysis.Analyzerの実装方法について、いくつか解析するパターンに応じて開発方法や関連パッケージについて紹介
  • 自作したanalysis.Analyzerをコマンド化する方法について

テスト

実際に作った静的解析ツールを”golang.org/x/tools/go/analysis/analysistest”を利用してテストを行う方法について紹介。

最後に

開発したものを開発フローに組み込む方法を紹介