2026年7月28日(火)掲載 3,014本日 0
HN17335

Goチームが贈る強力な解析ツール!「Go Analysis Framework」で静的解析をモジュール化しよう

Go Analysis Framework: modular static analysis by go team

AbuAssar1日前

議論

8
0AbuAssarスレ主1731日前

Goチームが開発した「Go Analysis Framework」は、Go言語の静的解析をモジュール化するためのフレームワークです。再利用性の高い解析ツールを効率的に構築するための基盤として設計されており、独自の静的解析ルールを作成したいエンジニアにとって必須のツールキットとなっています。

1hoppp1日前

ちょうど探してたところだよ。さっそく試してみる。

3b7e7d855b4481日前

Goが冗長だって文句を言う人もいるけど、自分はGoの何もかもが大好きだよ。

エラーハンドリングも、強制的なフォーマットも、スタイルガイドを含めたすべてのリンティングも最高。他の人のソースコードを読んでも、すごく理解しやすくて納得できる。Goチームのみんな、ありがとう。

(まあ、最近のジェネリクス追加については少し懐疑的かもしれないけど、全体としては素晴らしい言語だよ。愛してる。)

4ksec1日前

で、コンテキストは何?これは新しくないし、なんで今これが投稿されてるの?

5jzelinskie1日前

SpiceDB0では、このフレームワークを使って独自の解析器を定義することで大きな成功を収めているよ。LLMのおかげで、今は以前より10倍簡単になった気がする。わざわざ口伝の知識を頼ったり、コードレビューに時間を無駄にしたりしなくても、リンターにしてしまえば解決できるからね。

6verdverm約24時間前

ソフトウェアエンジニアリングのためのGoチームのツールへのこだわりは、人間にとってもエージェントによる開発にとっても恩恵があるよね。自分自身にも、自分のエージェントにも優れたツールを与えてあげよう。

最近のプロジェクトからの例を挙げるとこれ:
https://github.com/verdverm/gmd/blob/main/Makefile (https://github.com/verdverm/gmd/blob/main/Makefile)
(毎回正しい引数やフラグを推測させるのではなく、エージェントにシンプルな「ツール呼び出し」をさせる、本質的には呼び出し可能なagents.mdのようなもの)

ここから面白い点として挙げられるのは、テストにビルドタグ { unit, coverage, recorded, real api } を使っていること。これがあることで、エージェントがより速く、的を絞った反復作業ができるようになる。自分はリンティングとカバレッジを新しいセッションで実行してレポートを生成させ、別のセッションでそのギャップに対処し始めるという流れにしている。

Goの内部ソースにあるもう一つの超クールなテストツールに testscript があるよ。Roger Peppeが内部ユーティリティのいくつかをここに抽出しているね。
https://github.com/rogpeppe/go-internal/tree/master/testscri... (https://github.com/rogpeppe/go-internal/tree/master/testscript)

7mchav約23時間前

こういうプリミティブな機能を使って、より広範な「アーキテクチャ」レベルのリンターって作れるものなの?