Google'ın deposu nasıldır?


62

Google’ın tüm kodlarının devasa bir özel (dahili) deposuna sahip olduğunu ve çalışanlarının buna erişimi olduğunu duydum, böylece bir şeyler geliştirirken tekerleği yeniden icat etmek zorunda kalmayacaklardı. Bunun hakkında daha fazla bilgi edinmek istiyorum!

Google’da biraz daha ayrıntılı olarak tanımlayabilecek biri var mı, yoksa hakkında biraz daha fazla şey biliyor musunuz? Esas olarak nasıl organize edildiğini ve bir çalışanın olması gerektiği gibi devasa bir kod tabanında bir şeyi bulmasını nasıl kolaylaştıracağını bilmekle ilgileniyorum.


2
"Monorepo" kullandığı bildirilen diğer şirketler Facebook ve Twitter. Bunu deneyimlemiş olanlardan ilk elden duymak isterim.
Dennis,

Yanıtlar:


37

İşte nasıl organize edildiğini açıklayan bir video: Google’ın Hızı ve Ölçeğinde Gelişme

Ashish Kumar, Google’ın 2000’in üzerindeki tüm projelerinin kaynak kodunu, yüz milyonlarca kod satırı içeren tek bir kod bagajında, 5.000’den fazla geliştiricinin aynı depoya erişmesini sağlamayı nasıl yönettiğini sunmaktadır.


8
Diğer cevabın daha fazla oyu olduğunu biliyorum, ancak bu video diğer cevaplardan gelen tüm verileri ve ardından bazılarını içeriyor. Siz (okuyucu) bir özet istiyorsanız, Chris'in cevabını okuyun, aksi halde bu videoyu ayıracak bir saatiniz varsa!
Ricket

63

Çoğu Google için bir Performance kurulumu kullanılır. Bununla birlikte, git gibi diğer araçların da üzerinde çalışabileceği dahili araçlar vardır. (Bunu nasıl başardıklarını bilmiyorum.) Android ve Chromium gibi büyük, açık kaynaklı projelerin ayrı depoları var.

Performans üstüne inşa edilmiş bir çok yıldız iç uygulamasıdır. Örneğin, bina oluşturma, test etme ve kod incelemelerini sihirli olmayan hiçbir şey yapmadan yapmak için araçlar vardır.

Kısmen bu 'büyü' ve test kültürü nedeniyle, Google gerçekten dallanmayı kullanmıyor. Herkes 'ana' olarak denetler. Herhangi bir proje için kaynağını görebilir, inşa edebilir ve herhangi bir uzman bilgisi olmadan birim testlerini yapabilirsiniz. Bu cok büyük. Microsoft'tayken, her bir ürün testlerini yapmak ve test etmek için farklı bir hayvanın fedakarlığını gerektiriyordu.

Ayrıca, Google’ın kullandığımız başlıca diller için şirket genelinde bir stil kılavuzu vardır . Başka bir ekibin kaynak koduna erişiminiz varsa, biçimlendirmenin tamamen riskli olması ne anlama gelir?

Arama yapmak için Google Kod Arama’ya aşina olabilirsiniz . Gezinme kodunu çok daha kolaylaştıran diğer gizli kod arama araçları ile birlikte bunun özel bir sürümü de var .

Kısacası, Google, araçların değerini ve geliştirici verimliliğini anlayan çok mühendislik merkezli bir kültüre sahiptir.


1
Yıllardır referans gösterdiğiniz stil kılavuzunu kullanıyorum, bu harika! Ancak bu, Google kaynaklı açık kaynaklı projeler için değil mi? İç projeler için farklı bir rehber var mı?
Dennis,

1
"Çok gizli" kod arama aracı, github.com/google/kythe adresinde açık kaynak kodlu bir kaynak haline getiriliyor - bu bir alt küme ve kullanıcı arayüzü yok (daha fazla, örnek artık afaik olarak korunmuyor). Amaç, Kythe'i içsel araçlar kadar eksiksiz hale getirmektir.
mmlac

3

Bu çok büyük:

(Ocak 2015 itibariyle)

  • Toplam dosya sayısı: 1 milyar
  • Kaynak dosya sayısı: 9 milyon
  • Kod satırı: 2 milyar
  • Tarihin derinliği: 35 milyon taahhüt
  • İçeriğin boyutu: 86 terabayt
  • İş günü başına komisyon: 45 bin

Google altyapısına dayanan Piper adlı dahili bir araç kullanıyorlar.

Kaynak: Google Neden Tek Bir Depoda Milyarlarca Kod Satırı Saklıyor?


@CodesInChaos Bu bilgiler videonun alınır 3:22 de slayt . Slayt, bu sayıların nasıl hesaplandığı ile ilgili daha fazla açıklama içermektedir.
Benjamin Crouzier

Bekle, bu dosya başına ortalama 2 satır anlamına gelmez mi?
Hashim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.