Googleのリポジトリはどのようなものですか?


62

Googleにはすべてのコードの巨大なプライベート(内部)リポジトリがあり、従業員はそこにアクセスできるので、開発中に車輪を再発明する必要はありません。私はそれについてもっと知りたいです!

Googleからもう少し詳しく説明できる人はいますか、それについてもう少し知っていますか?私は主に、それがどのように構成され、従業員がそのような巨大なコードベースで必要なものを簡単に見つけられるようにする方法について知ることに興味があります。


2
「モノレポ」を使用すると伝えられている他の企業は、FacebookとTwitterです。それを経験した人から直接聞いてみたいです。
デニス

回答:


37

これがどのように構成されているかを説明するビデオです:Googleのスピードとスケールでの開発

Ashish Kumarは、Googleが2000以上のすべてのプロジェクトのソースコードを数億のコード行を含む単一のコードトランクに保持し、5,000人以上の開発者が同じリポジトリにアクセスする方法を紹介します。


8
他の回答にはより多くの賛成票があることは知っていますが、このビデオには他の回答からのすべてのデータがあり、次にいくつかのデータがあります。要約が必要な場合は(読者)、Chrisの答えを読んでください。そうでない場合は、このビデオを見る余裕があります。
リケット

63

ほとんどの場合、GoogleはPerforceセットアップを使用します。ただし、gitのような他のツールをその上で動作させるための内部ツールがあります。(どのようにこれを達成するかはわかりません。)AndroidChromiumのような大規模なオープンソースプロジェクトには、別々のリポジトリがあります。

Perforceの上に構築されているのは、多くの優れた内部アプリです。たとえば、ビルド、テスト、およびコードレビューを魔法のようなものにするツールがあります。

この「魔法」とテスト文化のために、Googleは実際には分岐を使用しません。誰もが「メイン」にチェックインします。どのプロジェクトでも、ソースを確認してビルドし、特別な知識がなくても単体テストを実行できます。これは巨大です。私がマイクロソフトにいたとき、各製品はテストをビルドして実行するために異なる動物を犠牲にする必要がありましたが、それは問題外です。

また、Googleには、使用している主要言語の会社全体のスタイルガイドがあります。別のチームのソースコードにアクセスできる場合、書式設定がすべて不安定な場合はどうなりますか。

検索に関しては、Google Code Searchに慣れているかもしれません。その特別なバージョンと、コードのナビゲートをより簡単にする他の極秘コード検索ツールがあります。

つまり、Googleには、ツールの価値と開発者の生産性を理解する非常にエンジニアリング中心の文化があります。


1
私はあなたが何年も参照したスタイルガイドを使ってきました、それは素晴らしいことです!しかし、それはグーグル発のオープンソースプロジェクトではありませんか?内部プロジェクト用の別のガイドはありますか?
デニス

1
「トップシークレット」コード検索ツールは、github.com / google / kytheでオープンソース化されています -これはサブセットであり、UIがありません(これ以上、例はafaikでメンテナンスされなくなりました)目標は、Kytheを内部ツールと同じように完成させることです。
mmlac

3

それは巨大です:

(2015年1月現在)

  • ファイルの総数:10億
  • ソースファイルの数:900万
  • コード行:20億
  • 履歴の深さ:3,500万件のコミット
  • コンテンツのサイズ:86テラバイト
  • 1日あたりのコミット数:45千

Googleインフラストラクチャに依存するPiperと呼ばれる内部ツールを使用します。

出典:Googleが数十億行のコードを単一のリポジトリに保存する理由


@CodesInChaosこの情報は、3:22のスライドのビデオから取得したものです。スライドには、これらの数値の計算方法に関する詳細な説明が含まれています。
ベンジャミン・クルージエ

待って、それはファイルごとに平均2行を意味するのではないでしょうか?
ハシム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.