goimportsが高速になりました!
goimportsとは、.goファイルのimport文を自動的に追加・削除してくれる、Goによる開発には欠かせないツールです。しかし、Goのパッケージの仕様上、パッケージ名の探索のためにGOROOT/GOPATH配下の全てのディレクトリを探索する必要があり、GOPATH配下に大量のディレクトリが存在する場合、遅くなることでも知られています1 2。
そこでbradfitzがgoimportsにパフォーマンス改善を加えたのですが、その中の一つに、設定ファイルで特定ディレクトリを除外するという新機能を見つけたので紹介します。
やり方
$GOPATH/src/.goimportsignore
ファイルを作成し、除外したいディレクトリを(設定ファイルからの相対パスで)記述すると、goimportsはそのディレクトリを無視してくれます。スマートです。
これでテストのためにパッケージ配下に大量のディレクトリを作っていても安心ですね。