こんにちは、TIGの辻です。渋川、伊藤と同じく Go Conference Online 2021 Autumn に登壇しました。Go Conference Autumn には2019年にも登壇しているので、2年ぶり2度目の出場になります。
2019年はGoの特徴である並行処理に焦点を当てた、Goによる並列のシミュレーテッドアニーニングの実装、というマニアックな内容でしたが、今回はGoの静的解析、という身近なテーマで登壇しました。
スライドは以下です。
静的解析というと、聞いたことはある。実際 golangci-lint
にはめちゃくちゃお世話になっている。ただ、自分でアドホックな静的解析のモジュールを自作するとなると、めちゃくちゃハードル高いんじゃないの? と思う方が多いと思います。しかし、そんなことはありません。本発表では実際に私がはじめて静的解析のモジュールを自作した経験から、静的解析のモジュールを作るのはハードル高くないよ、ということをお伝えしたくて登壇しました。
以下は、静的解析のモジュールを作って、現場で活用できるようになったよ、という記事です。
https://future-architect.github.io/articles/20210603a/
カンファレンスでお伝えしたかったことは以下の2点です。
- Goが提供している順標準ライブラリ(https://pkg.go.dev/golang.org/x/tools/go/analysis)を使おう!
- Goが提供している静的解析のモジュールのコードを参考にしよう!
加えて、静的解析のモジュールを実際に実装するときには、エコシステムのライブラリ( gostaticanalysis/skeleton など)を使うと、より効率的に開発ができます。今回は時間の関係上割愛しましたが、このあたりのTipsもどこかでお話しできれば、と思います。
今回の発表が静的解析をはじめるみなさんの参考になれば嬉しいです。