Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一
17章Code Search
Alexander Neubeck, Ben St. John 著
Lisa Carey 編
Code SearchはGoogleのコードの閲覧と検索のためのツールで、フロントエンドUIと各種バックエンド要素から構成されている。Googleの他の様々な開発ツール同様、コードベースの規模に合わせてスケールする必要性から直接生まれてきたツールだ。当初は、ランキングを備えた社内コード用grep型ツール†1と、社外公開版Code Search†2のUIを組み合わせたものだった。Googleの開発者にとって鍵となるツールとしてのCode Searchの地位は、Kythe/Grok†3の統合によって固められ、Kythe/Grokにより相互参照(cross-reference)とシンボル定義へのジャンプ能力が追加された。
†1 GSearchは元はJeff Deanのパーソナルコンピューター上で動作しており、そのせいで昔、Jeffが休暇に出てJeffのパーソナルコンピューターの電源が落とされた際に全社的な苦悩の原因になった。
†2 2013年提供終了。https://en.wikipedia.org/wiki/Google_Code_Searchを参照のこと。
†3 現在はKythe(https://kythe.io/)として知られる、(各種機能の中でも特に)相互参照を提供するサービス。相互参照は、例えば関数のような特定のコードシンボルの利用で、完全なビルド情報を用いて同名のシンボル利用箇所を区別する。
その統合により、Code Searchの力点がコードの検索から閲覧へと変わった。近年のCode Searchの開発は、ある程度まで「コードに関する来るべき質問に1クリックで答える」の原則主導で進められた。現在では、「このシンボルはどこで定義されているか」「どこで使われているか」「どうやってインクルードするか」「コードベースにいつ追加されたか」のような質問、また「フリート全体でどれだけCPUサイクルを消費するか」のような質問さえも、クリック1回か2回で全部回答可能である。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access