Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह · पाठ

बिल्ड और परीक्षण प्रदर्शन का अनुकूलन

बड़े monorepo में बिल्ड और परीक्षण समय को काफ़ी कम करने के लिए कैशिंग, दूरस्थ निष्पादन और क्रमिक बिल्ड लागू करें।

पाठ 2, कुल 4 में से11 चरण

बिल्ड और परीक्षण प्रदर्शन का अनुकूलन, CoddyKit पर Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

तेज़ बिल्ड, तेज़ प्रतिक्रिया

स्वागत है! बड़े मोनोरेपो में बिल्ड और परीक्षण का समय बड़ी बाधा बन सकता है। धीमे प्रतिक्रिया चक्र डेवलपर की उत्पादकता को नुकसान पहुँचाते हैं और रिलीज़ में देरी कर सकते हैं।

इस पाठ में आप सीखेंगे कि उन्नत अनुकूलन तकनीकों को लागू करके इन प्रक्रियाओं को काफ़ी तेज़ कैसे किया जाए।

मोनोरेपो के प्रदर्शन की चुनौती

मोनोरेपो में अक्सर प्रदर्शन संबंधी समस्याएँ क्यों आती हैं?

  • पैमाना: एक ही रिपॉज़िटरी में सैकड़ों प्रोजेक्ट हो सकते हैं।
  • परस्पर निर्भरताएँ: एक प्रोजेक्ट में किया गया छोटा बदलाव कई अन्य प्रोजेक्ट को प्रभावित कर सकता है।
  • पारंपरिक CI: हर कमिट पर अक्सर सब कुछ फिर से बनाता और दोबारा जाँचता है, जो अत्यंत अक्षम है।

बिल्ड कैशिंग का परिचय

कल्पना कीजिए कि आपका कंप्यूटर अभी किए गए किसी कार्य के सटीक आउटपुट को याद रखता है। यही बिल्ड कैशिंग है!

  • यह पिछले बिल्ड या परीक्षण कमांड के परिणाम (आर्टिफैक्ट) संग्रहीत करता है।
  • यदि इनपुट (कोड, कॉन्फ़िगरेशन) नहीं बदले हैं, तो यह संग्रहीत आउटपुट का दोबारा उपयोग करता है।
  • इससे अनावश्यक काम से बचा जाता है और काफ़ी समय बचता है।

स्थानीय कैशिंग का प्रयोग

Nx और Turborepo जैसे मोनोरेपो उपकरण स्थानीय कैशिंग को स्वतः लागू करते हैं। जब आप कोई कमांड चलाते हैं, तो वे पहले स्थानीय कैश की जाँच करते हैं।

यदि ठीक उन्हीं इनपुट के लिए कैश किया गया परिणाम मौजूद हो, तो कार्य को दोबारा चलाने के बजाय उसे तुरंत प्राप्त कर लिया जाता है।

# First run (may be slow)
npm install
nx build my-app

# Second run (instant, cached)
nx build my-app

रिमोट कैशिंग के साथ विस्तार

स्थानीय कैशिंग व्यक्तिगत डेवलपर के लिए उपयोगी है, लेकिन टीमों को इससे अधिक की आवश्यकता होती है। रिमोट कैशिंग इन कैश किए गए बिल्ड आर्टिफैक्ट को सभी के बीच साझा करती है!

  • यदि किसी सहकर्मी या CI ने कोई प्रोजेक्ट बनाया या जाँचा है, तो आप कैश किया गया परिणाम डाउनलोड कर सकते हैं।
  • इससे पूरी टीम के लिए शुरू से बिल्ड करने की आवश्यकता कम होती है और CI/CD पाइपलाइन तेज़ होती हैं।

वृद्धिशील बिल्ड: प्रभावित कमांड

यदि आपने केवल बैकएंड API बदला है, तो अपने पूरे फ़्रंटएंड अनुप्रयोग को फिर से क्यों बनाएँ? यहीं वृद्धिशील बिल्ड उपयोगी होते हैं।

इन्हें "प्रभावित" कमांड भी कहा जाता है। ये आपके हाल के कोड बदलावों से प्रभावित केवल उन प्रोजेक्ट की पहचान करके उन्हें संसाधित करते हैं।

वृद्धिशील बिल्ड कैसे काम करते हैं

मोनोरेपो उपकरण एक निर्भरता ग्राफ़ बनाते हैं—यह दर्शाने वाला मानचित्र कि आपके सभी प्रोजेक्ट किस प्रकार जुड़े हैं।

जब आप कोई बदलाव करते हैं, तो उपकरण इस ग्राफ़ का उपयोग करके बुद्धिमानी से निर्धारित करता है:

  • किन प्रोजेक्ट में सीधे बदलाव किए गए।
  • कौनसे अन्य प्रोजेक्ट बदले गए प्रोजेक्ट पर निर्भर हैं।

इसके बाद केवल इन "प्रभावित" प्रोजेक्ट को बनाया या जाँचा जाता है।

# Run tests only for projects affected by recent changes
nx affected:test

# Build only affected libraries
turborepo run build --filter="[HEAD^...]"

काम का वितरण: रिमोट निष्पादन

कैशिंग और वृद्धिशील बिल्ड के बावजूद, कुछ कार्य बहुत अधिक गणनात्मक संसाधन लेते हैं। रिमोट निष्पादन बिल्ड या परीक्षण कमांड के कुछ हिस्सों को कई मशीनों में वितरित करके मदद करता है।

इससे एक लंबे समय तक चलने वाला कार्य कई छोटे, समानांतर कार्यों में बदल जाता है, जो बहुत जल्दी पूरे हो जाते हैं।

रिमोट निष्पादन के लाभ

रिमोट निष्पादन निम्नलिखित तरीकों से प्रदर्शन में काफ़ी सुधार करता है:

  • समानांतरीकरण: कई कार्य एक साथ चलाना।
  • संसाधन विस्तार: क्लाउड संसाधनों या समर्पित बिल्ड फ़ार्म का उपयोग करना।
  • तेज़ प्रतिक्रिया: बिल्ड और परीक्षण के परिणाम बहुत जल्दी प्राप्त करना।

यह विशेष रूप से बड़े परीक्षण समूहों और जटिल संकलन चरणों के लिए प्रभावी है।

अपनी समझ जाँचें

कौनसी तकनीक पिछले कार्यों के आउटपुट का दोबारा उपयोग करने पर केंद्रित है, ताकि इनपुट में बदलाव न होने पर अनावश्यक काम से बचा जा सके?

पुनरावलोकन: अपने मोनोरेपो को अनुकूलित करें!

आपने मोनोरेपो में बिल्ड और परीक्षण के प्रदर्शन को बेहतर बनाने की सशक्त रणनीतियाँ सीखी हैं:

  • बिल्ड कैशिंग: पिछले कार्यों के परिणामों को स्थानीय और रिमोट, दोनों रूपों में संग्रहीत करना और दोबारा उपयोग करना।
  • वृद्धिशील बिल्ड: बदलावों से प्रभावित प्रोजेक्ट को ही संसाधित करने के लिए निर्भरता ग्राफ़ का उपयोग करना।
  • रिमोट निष्पादन: समानांतर प्रसंस्करण के लिए भारी कार्यभार को कई मशीनों में वितरित करना।

बढ़ते हुए किसी भी मोनोरेपो में डेवलपर की उत्पादकता बनाए रखने के लिए इन तकनीकों में दक्षता आवश्यक है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “बिल्ड और परीक्षण प्रदर्शन का अनुकूलन” पाठ निःशुल्क है?

हाँ—“बिल्ड और परीक्षण प्रदर्शन का अनुकूलन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“बिल्ड और परीक्षण प्रदर्शन का अनुकूलन” में मैं क्या सीखूँगा?

बड़े monorepo में बिल्ड और परीक्षण समय को काफ़ी कम करने के लिए कैशिंग, दूरस्थ निष्पादन और क्रमिक बिल्ड लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“बिल्ड और परीक्षण प्रदर्शन का अनुकूलन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कोड स्वामित्व और पहुँच नियंत्रण
  2. बिल्ड और परीक्षण प्रदर्शन का अनुकूलन
  3. Monorepo में स्थानांतरण की रणनीतियाँ
  4. Monorepo में निर्भरता प्रबंधन और संस्करण निर्धारण
← Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पर वापस जाएँ