इस एक फ़ाइल ने मेरे डेवलपमेंट एनवायरनमेंट को ठीक कर दिया (Devbox)
BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술
Transcript
00:00:00आपका रीडमी (readme) आपसे झूठ बोल रहा है, इसमें लिखा है कि सेटअप पाँच मिनट में हो जाता है, फिर नोड गलत निकलता है, पायथन गलत निकलता है
00:00:07पोस्टग्रेस (postgres) गायब है, डॉकर (docker) बहुत समय ले रहा है और अब हम शुरू करने से पहले ही डीबग कर रहे हैं
00:00:13आपका डेव (dev) वातावरण किसी रीडमी में नहीं, बल्कि गिट (git) में होना चाहिए, डेवबॉक्स (devbox) यही करता है
00:00:20एक डेवबॉक्स जेसन (devbox json) फ़ाइल, एक कमांड 'डेवबॉक्स शेल', बिना किसी ग्लोबल इंस्टाल के हर डेवलपर के लिए एक जैसा वातावरण
00:00:28और निक्स (nix) के किसी ज्ञान की आवश्यकता नहीं, आइए मैं आपको दिखाता हूँ
00:00:30शुरू में डेवबॉक्स बहुत सरल लगता है, आप एक डेवबॉक्स जेसन बनाते हैं और अपने प्रोजेक्ट को जिन उपकरणों की ज़रूरत है, उन्हें सूचीबद्ध करते हैं
00:00:42नोड, गो (go), पायथन, पोस्टग्रेस, जो कुछ भी आपके स्टैक को वास्तव में चाहिए, आप उस फ़ाइल को कमिट करते हैं, फिर कोई भी दूसरा व्यक्ति
00:00:50बस 'डेवबॉक्स शेल' चला सकता है और उन्हें वही वातावरण मिलता है जो आपको मिला है, वही संस्करण, उपकरण, स्क्रिप्ट्स, कोई ग्लोबल
00:00:58इंस्टॉल नहीं, 'कृपया पहले ये आठ चीज़ें इंस्टॉल करें' नहीं, बरसों पुरानी कोई होमब्रू (homebrew) स्थिति नहीं, आपका सेटअप
00:01:03किसी की याददाश्त पर निर्भर नहीं रहता, यह आपके रेपो (repo) में रहने लगता है, अब यह सुनने में छोटा लगता है लेकिन अगर आपने
00:01:09कभी आधे दिन खराब किए हैं खराब लोकल सेटअप पर, तो आप पहले से जानते हैं कि यह छोटा नहीं है, अगर आपको
00:01:16अपने वर्कफ़्लो को तेज़ करने के लिए कोडिंग टूल्स पसंद हैं, तो सब्सक्राइब ज़रूर करें, हमारे वीडियो लगातार आते रहते हैं
00:01:20अब हम यहाँ शुरुआत कर रहे हैं, इसलिए मैं एक खाली प्रोजेक्ट के साथ शुरू करूँगा, मैं एक नया फ़ोल्डर बनाऊँगा
00:01:25हम इसे 'डेवबॉक्स डेमो' कहेंगे, हम उस फ़ोल्डर में जाते हैं और एक बार डेवबॉक्स होने के बाद हमें बस इतना करना है
00:01:31'डेवबॉक्स इनिट' (devbox init) चलाएं, डेवबॉक्स 'डेवबॉक्स जेसन' नाम की एक फ़ाइल बनाता है, अभी यह मूल रूप से खाली है, यह बस वह
00:01:39बॉयलरप्लेट है जो डेवबॉक्स हमें देता है, अब चलिए वे उपकरण जोड़ते हैं जिनकी इस प्रोजेक्ट को वास्तव में ज़रूरत है, उपकरण जोड़ने के लिए हम
00:01:45'डेवबॉक्स ऐड' (devbox add) कर सकते हैं और मैं गो, नोड.जेएस और कुछ पायथन जैसी चीज़ें इंस्टॉल करूँगा, अब यहाँ है
00:01:52महत्वपूर्ण हिस्सा, मैं इन्हें ग्लोबल तरीके से इंस्टॉल नहीं कर रहा हूँ, मैं अपना सिस्टम नोड नहीं बदल रहा हूँ, मैं अपने सिस्टम के साथ छेड़छाड़ नहीं कर रहा हूँ
00:02:00पायथन के साथ, ये उपकरण इस प्रोजेक्ट के हैं, अब जब मैं 'डेवबॉक्स शेल' चलाता हूँ और मैं एक साफ़ प्रोजेक्ट में हूँ
00:02:09वातावरण, अब आप इस वातावरण में हैं तो आप बस संस्करण देख सकते हैं, सही है? 'गो वर्ज़न', 'नोड वर्ज़न',
00:02:14'पायथन वर्ज़न', सही है? मैं यह सुनिश्चित करने के लिए सब कुछ जाँच सकता हूँ कि यह चल रहा है, अब यह सबसे बड़ा फ़ायदा है
00:02:19प्रोजेक्ट ने विशिष्ट उपकरणों के लिए कहा, डेवबॉक्स ने मुझे वे उपकरण दिए, अब चलिए एक स्क्रिप्ट जोड़ते हैं और डेवबॉक्स के अंदर
00:02:27जेसन में हम वास्तव में एक टेस्ट परिभाषित कर सकते हैं और मैं बस इन रनिंग टेस्ट्स को इको (echo) करूँगा और मुझे नोड
00:02:34और गो वर्ज़न मिल जाएगा, जब आप 'डेवबॉक्स रन टेस्ट' चलाते हैं और अब वही कमांड इस रेपो का उपयोग करने वाले किसी भी व्यक्ति के लिए काम करता है
00:02:42वही स्क्रिप्ट, वही उपकरण, वही वातावरण, अब देखें कि जब मैं छोड़ता हूँ तो क्या होता है, आप बस 'एक्जिट' (exit) चला सकते हैं
00:02:48आप उस वातावरण को छोड़ देंगे और मैं अपने सामान्य मशीन वातावरण में वापस आ गया हूँ, तो यह बहुत
00:02:53सरल था, है ना? डेवबॉक्स वास्तव में क्या कर रहा है? खैर, डेवबॉक्स इसके नीचे निक्स का उपयोग करता है, निक्स बहुत अच्छा है क्योंकि
00:03:00यह पुनरुत्पादन क्षमता (reproducibility) के लिए बनाया गया है, यह कहने के बजाय कि आज जो भी नवीनतम है उसे इंस्टॉल करें
00:03:06यह उन सटीक उपकरणों को पिन कर सकता है जिनकी आपके प्रोजेक्ट को वास्तव में ज़रूरत है, अब यह अच्छा हिस्सा है, कठिन हिस्सा यह है
00:03:12कि निक्स एक पूरी नई दुनिया की तरह लग सकता है, ऐसी कई अवधारणाएं हैं जो बहुत अच्छी हैं, लेकिन बिल्कुल
00:03:18अनुकूल नहीं हैं जब आप सिर्फ सही नोड संस्करण चाहते थे, डेवबॉक्स हमें कुछ अलग दिखाता है
00:03:23यहाँ यह कहता है कि क्या होगा यदि हम पुनरुत्पादन क्षमता बनाए रखें लेकिन वर्कफ़्लो को सामान्य महसूस कराएं? इसलिए इसके बजाय
00:03:29निक्स एक्सप्रेशन लिखने के, आप 'डेवबॉक्स ऐड', 'डेवबॉक्स सर्च', 'शेल', 'रन', 'सर्विसेज' जैसी कमांड का उपयोग कर सकते हैं, ये सभी
00:03:37कमांड बहुत सरल हैं और आपके प्रोजेक्ट को दो महत्वपूर्ण फ़ाइलें मिलती हैं, आपको एक जेसन फ़ाइल मिलती है और एक
00:03:44लॉक फ़ाइल, डेवबॉक्स जेसन को सोचें कि हमारे वातावरण को क्या चाहिए, डेवबॉक्स लॉक फ़ाइल को सोचें पिन करने के लिए ताकि आप ठीक वही
00:03:52पाएं जो आपको मिला था, आप दोनों को कमिट करें, अब आपका वातावरण केवल एक रीडमी फ़ाइल में एक पैराग्राफ नहीं है
00:03:58यह वास्तव में प्रोजेक्ट का हिस्सा है, डेवबॉक्स मैक ओएस, लिनक्स और डब्ल्यूएसएल (WSL) पर काम करता है, यह वीएस कोड (VS Code) के साथ एकीकृत हो सकता है, यह
00:04:06स्क्रिप्ट्स को परिभाषित कर सकता है, यह डेटाबेस जैसी सेवाओं का प्रबंधन कर सकता है और जब आपको ज़रूरत हो तो यह निर्यात कर सकता है जैसे
00:04:12डॉकर, डेव कंटेनर्स और सीआई (CI) वर्कफ़्लो, इसका मूल्य सिर्फ एक अच्छा टूल नहीं है, बल्कि एक बहुत सरल टूल है,
00:04:19इसका मूल्य मुझे लगता है कि बस समय है, पहली समस्या रीडमी है, रीडमी वास्तव में कुछ भी कह सकता है, यह
00:04:26कह सकता है 'अरे नोड 18 इंस्टॉल करें', लेकिन ऐप बदल गया है, इसे वास्तव में नोड 20 की ज़रूरत है, दूसरी समस्या
00:04:32जिसमें यह वास्तव में मदद करता है वह है ऑनबोर्डिंग, यह नौकरी पर आपका पहला दिन है, काम शुरू करना आसान होना चाहिए,
00:04:37हम जानते हैं कि ऐसा नहीं है, तो आपको यह पूछने की ज़रूरत नहीं होनी चाहिए कि मुझे कौन सा नोड संस्करण चाहिए, आपको
00:04:43किसी को पिंग करने की ज़रूरत नहीं होनी चाहिए, 'अरे हम किस पायथन संस्करण पर हैं?', क्या मुझे वास्तव में स्थानीय स्तर पर पोस्टग्रेस की ज़रूरत है और यह क्यों
00:04:48केवल उस छोटे टिमी के लिए काम करता है? उन्हें बस रेपो क्लोन करना, शेल में प्रवेश करना
00:04:52और प्रोजेक्ट को चलाना चाहिए, अगर कुछ टूटता है तो कम से कम हर कोई एक ही वातावरण से शुरू कर रहा है, समस्या
00:04:58ग्लोबल प्रदूषण की है, टूल्स को आज़माने से आपका लैपटॉप बर्बाद नहीं होना चाहिए, आप इस रेपो के लिए गो 1.22 चाहते हैं, आप इसे जोड़ते हैं,
00:05:06आप यहाँ नोड 20 चाहते हैं लेकिन कहीं और कुछ और, ठीक है, कोई बात नहीं, उपकरण प्रोजेक्ट के साथ रहते हैं, आपका
00:05:13सिस्टम डेवबॉक्स के साथ अधिक साफ़ रहता है, आपकी वातावरण परिभाषा स्थानीय विकास
00:05:18और स्वचालन के बीच साझा की जा सकती है, क्या यह हर सीआई समस्या को ठीक करता है? नहीं, ऐसा नहीं होगा, लेकिन यह मूर्खतापूर्ण समस्याओं का एक बड़ा वर्ग
00:05:26हटा देता है, और मूर्खतापूर्ण समस्याएँ ही वो हैं जो हमें सबसे ज़्यादा नुकसान पहुँचाती हैं, वे सरल हैं, हमारे पास वे
00:05:32हर समय होती हैं, अंत में यहाँ डॉकर है, अधिक भारी स्थानीय डॉकर वर्कफ़्लो, विशेष रूप से, डॉकर अभी भी महान है, यदि
00:05:40आपको कंटेनरों की ज़रूरत है, कंटेनरों का उपयोग करें, लेकिन बहुत सी टीमें स्थानीय स्तर पर डॉकर का उपयोग करती हैं क्योंकि उनके पास उपकरण प्रबंधित करने का
00:05:46कोई बेहतर तरीका नहीं है, अब यहाँ क्या अच्छा है कि वर्कफ़्लो बहुत सरल है, 'डेवबॉक्स ऐड', 'शेल', 'रन', आपको
00:05:52उतना सीखने की ज़रूरत नहीं है, वातावरण आपके प्रोजेक्ट का एक वास्तविक हिस्सा बन जाता है, एक वास्तविक फ़ाइल
00:05:57रेपो में, जब हर कोई एक ही संस्करण और स्क्रिप्ट का उपयोग करता है, तो डीबगिंग आसान हो जाती है, लेकिन यह बहुत बढ़िया,
00:06:03सुपर सरल है, जो चीज़ आपको परेशान करेगी वह है, पहली बार डाउनलोड करने में थोड़ा समय लगा,
00:06:09यह ठीक है, यह पहली बार है, ठीक है, जेसन सरल है लेकिन यह खराब हो सकता है जैसा कि हम जानते हैं, यदि हम इसमें बहुत कुछ जोड़ते हैं,
00:06:15बुनियादी स्क्रिप्ट्स के लिए यह ठीक है, जटिल सेटअप तर्क के लिए जेसन में एक विशाल शेल कमांड न भरें,
00:06:22बस तर्क को एक एसएच (sh) फ़ाइल में रखें, फिर उसे डेवबॉक्स से कॉल करें और अंत में डेवबॉक्स एक पूर्ण क्लाउड आईडीई (IDE) नहीं है,
00:06:30यदि आपको ब्राउज़र-आधारित कोडिंग, इंस्टेंट प्रीव्यू यूआरएल (URLs) की आवश्यकता है, तो आप अभी भी कोडस्पेस (CodeSpaces) जैसा कुछ चाह सकते हैं,
00:06:36डेवबॉक्स स्थानीय और सीआई पुनरुत्पादन क्षमता में सबसे अच्छा है, डेवबॉक्स हर विकास समस्या का समाधान नहीं करेगा,
00:06:42लेकिन यह उन समस्याओं को हल कर सकता है जो हमें सबसे अधिक परेशान करती हैं, जो वास्तव में सिर्फ प्रोजेक्ट को
00:06:46चलाना है, तो यह एक कोशिश के लायक हो सकता है, खासकर यदि आपके प्रोजेक्ट में एक से अधिक भाषा या एक से
00:06:51अधिक सीएलआई (CLI) टूल हैं, यदि आप इस तरह के कोडिंग टूल्स का आनंद लेते हैं, तो बेटर स्टैक चैनल को सब्सक्राइब करना सुनिश्चित करें, हम
00:06:56हम आपको अगले वीडियो में देखेंगे।
Community Posts
No posts yet. Be the first to write about this video!
Write about this video