Google का भंडार कैसा है?


62

मैंने सुना है कि Google के पास अपने सभी कोड की विशाल निजी (आंतरिक) रिपॉजिटरी है और उनके कर्मचारियों तक इसकी पहुंच है, ताकि जब वे चीजें विकसित कर रहे हों तो उन्हें पहिया को फिर से चलाना न पड़े। मैं इसके बारे में अधिक जानना चाहता हूँ!

क्या Google से यहां कोई ऐसा है जो इसे थोड़ा और विस्तार से बता सकता है, या क्या आप इसके बारे में थोड़ा और जानते हैं? मुझे मुख्य रूप से यह जानने में दिलचस्पी है कि यह कैसे व्यवस्थित है और वे एक कर्मचारी के लिए इस तरह के विशालकाय कोडबेस में कुछ ढूंढना आसान बना सकते हैं जैसा कि होना चाहिए।


2
अन्य कंपनियां जो कथित तौर पर "मोनोरेपो" का उपयोग करती हैं, वे फेसबुक और ट्विटर हैं। जो लोग इसे अनुभव किया है से firsthand सुनना पसंद करेंगे।
डेनिस

जवाबों:


37

यहां एक वीडियो है जिसमें बताया गया है कि यह कैसे आयोजित किया जाता है: विकास गति और Google के पैमाने पर

आशीष कुमार प्रस्तुत करते हैं कि कैसे Google अपनी सभी परियोजनाओं के स्रोत कोड को 2000 में रखता है, जिसमें एक ही कोड ट्रंक में सैकड़ों लाखों कोड लाइनें हैं, जिसमें 5,000 से अधिक डेवलपर्स समान रिपॉजिटरी का उपयोग करते हैं।


8
मुझे पता है कि अन्य उत्तर में अधिक उत्थान हैं, लेकिन इस वीडियो में अन्य उत्तर के सभी डेटा हैं और फिर कुछ हैं। यदि आप (पाठक) सारांश चाहते हैं, तो क्रिस के उत्तर को पढ़ें, अन्यथा यदि आपके पास इस वीडियो को देखने के लिए एक घंटे का समय है!
Ricket

63

सबसे अधिक के लिए Google एक Perforce सेटअप का उपयोग करता है । हालांकि, इसके ऊपर काम करने के लिए गिट जैसे अन्य उपकरण प्राप्त करने के लिए आंतरिक उपकरण हैं। (वे इसे कैसे पूरा करते हैं, मुझे नहीं पता।) एंड्रॉइड और क्रोमियम जैसी बड़ी, ओपन-सोर्स परियोजनाओं में हालांकि अलग-अलग रिपॉजिटरी हैं।

Perforce के शीर्ष पर निर्मित बहुत सारे तारकीय आंतरिक अनुप्रयोग हैं। उदाहरण के लिए, बिल्डिंग, टेस्टिंग और कोड रिव्यू बनाने के लिए कुछ भी नहीं है।

आंशिक रूप से इस 'जादू' और परीक्षण संस्कृति के कारण, Google वास्तव में शाखा का उपयोग नहीं करता है। हर कोई 'मुख्य' की जाँच करता है। किसी भी परियोजना के लिए आप स्रोत देख सकते हैं, इसका निर्माण कर सकते हैं, और बिना किसी विशेष ज्ञान के इकाई परीक्षण चला सकते हैं। यह बहुत बड़ा है। जब मैं Microsoft पर था, तो प्रत्येक उत्पाद को अपने परीक्षण के निर्माण और चलाने के लिए एक अलग जानवर के बलिदान की आवश्यकता होती थी।

इसके अलावा, Google के पास हमारे द्वारा उपयोग की जाने वाली प्रमुख भाषाओं के लिए एक कंपनी-व्यापी शैली मार्गदर्शिका है । यदि आपके पास किसी अन्य टीम के स्रोत कोड तक पहुंच है, तो प्रारूपण सभी winky है तो क्या होगा!

खोज के लिए, आप Google कोड खोज से परिचित हो सकते हैं । इसका एक विशेष संस्करण है, साथ में अन्य टॉप-सीक्रेट कोड सर्च करने वाले टूल जो नेविगेट करने वाले कोड को बहुत आसान बनाते हैं।

संक्षेप में, Google के पास एक बहुत ही इंजीनियरिंग-केंद्रित संस्कृति है जो उपकरण और डेवलपर उत्पादकता के मूल्य को समझता है।


1
मैं वर्षों से संदर्भित शैली गाइड का उपयोग कर रहा हूं, यह बहुत अच्छा है! लेकिन क्या यह Google के लिए ओपन-सोर्स प्रोजेक्ट्स की उत्पत्ति नहीं है? क्या आंतरिक परियोजनाओं के लिए एक अलग गाइड है?
डेनिस

1
"टॉप-सीक्रेट" कोड-सर्चिंग टूल को github.com/google/kythe पर ओपन सोर्स बनाया जा रहा है - यह एक सबसेट है और इसमें कोई UI नहीं है (और कोई भी, उदाहरण एक को बनाए नहीं रखा गया है) लेकिन मुझे लगता है कि उनका लक्ष्य किथ को अपने आंतरिक उपकरण के रूप में पूरा करना है।
mmlac

3

यह बहुत बड़ा है:

(जून 2015 तक)

  • फ़ाइलों की कुल संख्या: 1 बिलियन
  • स्रोत फ़ाइलों की संख्या: 9 मिलियन
  • कोड की लाइनें: 2 बिलियन
  • इतिहास की गहराई: 35 मिलियन
  • सामग्री का आकार: 86 टेराबाइट्स
  • प्रति दिन काम करता है: 45 हजार

वे एक आंतरिक उपकरण का उपयोग करते हैं जिसे पाइपर कहा जाता है, जो कि Google अवसंरचना पर निर्भर है।

स्रोत: एक भंडार में Google ने अरबों पंक्तियों के कोड क्यों संग्रहीत किए


@CodesInChaos यह जानकारी स्लाइड से वीडियो में 3:22 पर ली गई है । स्लाइड में उन संख्याओं की गणना कैसे की जाती है, इसके बारे में अधिक स्पष्टीकरण दिए गए हैं।
बेंजामिन क्राउज़ियर

प्रतीक्षा करें, इसका मतलब प्रति फ़ाइल औसतन 2 लाइनें नहीं होंगी?
हाशिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.