https://zenn.dev/tenntenn/books/d168faebb1a739/viewer
本書は技術書典6で@knsh14と共に執筆し、頒布したものです。(移動にあたってこっそり更新はしましたが)2022年5月現在では内容が古くなっている可能性があります。最新の情報を知りたい場合は公式ドキュメントまたはhttsp://tenn.in/analhysisをご覧ください。
読者のみなさんは静的解析ツールを自作したことはありますか?
コードレビューで頻出するような指摘事項は静的解析ツールを使って自動化するとコードレビューに取られる工数が減ります。golint
やgo vet
などは使っている方は多いでしょう。
標準のものやサードパーティ製など様々な静的解析ツールを見かけます。 しかし、自分たちの開発チームの事情を汲んだ静的解析ツールを見つけるのは難しいでしょう。 そんなときに諦めてしまわずに自作するという選択肢があります。
本書はGoで静的解析を行う際に逆引きとして使えるように書いています。 静的解析ツールを書いていると頻出するパターンに出くわすことが多く、 日頃からどこかにまとまっていれば幸せだなと感じていました。 本書によってこれから静的解析をする方々が筆者たちと同じような気持ちにならずに開発に集中できると幸いです。
本書で対象としているGoのバージョンはGo1.18です。本書で取り上げているサンプルコードはGo1の後方互換の約束からおそらくGo1.18以降のバージョンでも問題なく動くはずです。
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。 これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
GoのマスコットキャラクターであるGopherの原作者はRenée Frenchさんです。