Що таке сховище Google?


62

Я чув, що Google має величезний приватний (внутрішній) сховище всього свого коду, і їхні співробітники мають доступ до нього, тому коли вони розробляють речі, їм не доведеться винаходити колесо. Я хотів би дізнатися про це більше!

Чи є тут хтось з Google, який може описати це трохи детальніше, чи ви знаєте трохи більше про це? Мені цікаво в основному знати про те, як це організовано, і як вони можуть полегшити працівникові знайти щось у такій гігантській кодовій базі, як це має бути.


2
Інші компанії, які, як повідомляється, використовують "монорепо" - це Facebook та Twitter. Хочеться почути з перших вуст від тих, хто це пережив.
Денніс

Відповіді:


37

Ось відео, що пояснює, як воно організоване: Розвиток зі швидкістю та масштабами Google

Ашиш Кумар представляє, як Google вдається зберегти вихідний код усіх своїх проектів понад 2000 років в єдиному стовбурі коду, що містить сотні мільйонів рядків коду, а більше 5000 розробників отримують доступ до одного сховища.


8
Я знаю, що інша відповідь має більше відгуків, але це відео містить усі дані з іншої відповіді, а потім і деякі. Якщо ви (читач) хочете резюме, прочитайте відповідь Кріса, інакше, якщо у вас є година запасного перегляду цього відео!
Ricket

63

Більшість Google використовує налаштування Perforce . Однак є внутрішні інструменти для отримання інших інструментів, таких як git, щоб працювати над ним. (Як вони це досягають, я не знаю.) Великі проекти з відкритим кодом, такі як Android та Chromium, мають окремі сховища.

На Perforce побудовано багато зоряних внутрішніх додатків. Наприклад, існують інструменти, щоб зробити побудову, тестування та огляд кодів нічого не магічного.

Частково через цю "магію" та тестуючу культуру Google насправді не використовує розгалуження. Усі перевіряють "головне". Для будь-якого проекту ви можете бачити джерело, створювати його та запускати одиничні тести без будь-яких спеціалізованих знань. Це величезне. Коли я був у Microsoft, кожен продукт вимагав жертви іншої тварини, щоб створити і запустити їх тести, не виникне сумніву.

Також у Google є посібник зі стилів для всіх основних мов, якими ми користуємось. якщо у вас є доступ до вихідного коду іншої команди, який би був сенс, якщо форматування все вибагливе!

Щодо пошуку, можливо, ви знайомі з пошуком коду Google . Існує спеціальна версія цієї програми, а також інші засоби секретного пошуку коду, які значно спрощують навігаційний код.

Коротше кажучи, Google має дуже інженерно-орієнтовану культуру, яка розуміє цінність інструментів та продуктивність розробників.


1
Я використовую посібник зі стилів, на який ви посилалися, роками, це чудово! Але це не так для проектів з відкритим кодом, що походять з Google? Чи є інший посібник для внутрішніх проектів?
Денніс

1
Інструмент пошуку "найпотаємнішого" коду робиться з відкритим кодом на веб- сайті github.com/google/kythe - це підмножина і не має інтерфейсу (більше того, приклад більше не підтримується afaik), але я думаю, що їх мета полягає в тому, щоб зробити Kythe таким же повним, як і їх внутрішній інструмент.
mmlac

3

Це величезне:

(станом на січень 2015 р.)

  • Загальна кількість файлів: 1 мільярд
  • Кількість вихідних файлів: 9 мільйонів
  • Рядки коду: 2 мільярди
  • Глибина історії: 35 мільйонів комітів
  • Розмір вмісту: 86 терабайт
  • Комісій за робочий день: 45 тисяч

Вони використовують внутрішній інструмент під назвою Piper, сам покладаючись на інфраструктуру google.

Джерело: Чому Google зберігає мільярди ліній коду в одному сховищі


@CodesInChaos Ця інформація взята з відео в слайді о 3:22 . Слайд містить більше пояснень про те, як обчислюються ці числа.
Бенджамін Крозьє

Зачекайте, чи це не означатиме в середньому 2 рядки на файл?
Хашим
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.