Googleにはすべてのコードの巨大なプライベート(内部)リポジトリがあり、従業員はそれにアクセスできるので、彼らが物事を開発しているときに車輪を再発明する必要はありません。もっと知りたい!
もう少し詳しく説明できるGoogleの人はいますか、それとももう少し知っていますか?主にそれがどのように編成されているか、そして従業員が巨大なコードベースであるべきものを見つけやすくする方法について、主に知りたいと思っています。
これがどのように構成されているかを説明するビデオは次のとおりです。 Googleのスピードと規模での開発
Ashish Kumarは、Googleが2000を超えるすべてのプロジェクトのソースコードを、何億ものコード行を含む単一のコードトランクに保持し、5,000人を超える開発者が同じリポジトリにアクセスする方法を紹介します。
ほとんどの場合、Googleは Perforce 設定を使用します。ただし、gitなどの他のツールを動作させるための内部ツールもあります。 (彼らがこれをどのように達成するかは分かりません。) Android や Chromium のような大規模なオープンソースプロジェクトは、個別のリポジトリを持っています。
PERFORCEの上に構築されているのは、多くのstellar内部アプリです。たとえば、ビルド、テスト、コードレビューを魅力的なものにするツールがあります。
この「魔法」とテスト文化のおかげもあって、Googleは実際にはブランチを使用していません。誰もが「メイン」にチェックインします。どのプロジェクトでも、ソースを確認してビルドし、特別な知識がなくても単体テストを実行できます。これは巨大です。私がマイクロソフトにいたとき、各製品でテストを構築して実行するために別の動物を犠牲にする必要がありました。
また、Googleには全社規模の スタイルガイド があり、主要な言語を使用しています。別のチームのソースコードにアクセスできる場合、書式設定がすべておかしくなっているとしたらどうでしょう。
検索に関しては、 Google Code Search に精通しているかもしれません。その特別なバージョンと、コードのナビゲートをより簡単にする他の top-secret コード検索ツールがあります。
つまり、Googleには、ツールの価値と開発者の生産性を理解する、エンジニアリング中心の文化があります。
それは巨大です:
(2015年1月現在)
- ファイルの総数:10億
- ソースファイルの数:900万
- コード行:20億
- 歴史の深さ:3,500万回のコミット
- コンテンツのサイズ:86テラバイト
- 1日あたりのコミット数:45千
彼らはPiperと呼ばれる内部ツールを使用しており、それ自体がGoogleインフラストラクチャに依存しています。