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