Vercel पर Svelte

VVercel
컴퓨터/소프트웨어자격증/평생교육AI/미래기술

Transcript

00:00:00नमस्ते सबको! एक और बेसेल (Basel) कम्युनिटी सेशन में आपका स्वागत है।
00:00:29मैं माया एवेंडानो हूँ और मैं यहाँ बेसेल में एक DX इंजीनियर हूँ।
00:00:32अगर आप हमारे इन सेशन्स में पहली बार आए हैं और आपको चैट नहीं दिख रही है,
00:00:35तो आप बेसेल के कम्युनिटी प्लेटफॉर्म [community.basel.com/live](https://www.google.com/search?q=https://community.basel.com/live) पर हमसे जुड़ सकते हैं।
00:00:41वहाँ आप चैट का इस्तेमाल कर सकते हैं और सवाल पूछ सकते हैं, जिसकी हम काफी सराहना करते हैं।
00:00:45या अगर आप X (ट्विटर) या किसी और प्लेटफॉर्म पर देख रहे हैं, तो बेझिझक उसका इस्तेमाल करें।
00:00:49आज के सेशन के लिए मैं बहुत उत्साहित हूँ, क्योंकि एक दिलचस्प बात यह है कि,
00:00:53मैं खुद कुछ सालों तक Svelte डेवलपर रही हूँ और मैंने इस पर कई साइड प्रोजेक्ट्स बनाए हैं।
00:00:58तो मैं इसकी बहुत बड़ी प्रशंसक हूँ और मेरे पास इसकी टी-शर्ट भी है।
00:01:01तो चलिए, साथी Svelte प्रशंसकों और इसे जानने के इच्छुक लोगों के लिए,
00:01:06आज हमारे साथ Svelte टीम के कुछ सदस्य मौजूद हैं। तो, आपका स्वागत है।
00:01:12नमस्ते। हैलो सबको! क्या आप हमें अपने बारे में कुछ बताना चाहेंगे?
00:01:21ज़रूर, मेरा नाम रिच है।
00:01:24मैं 10 साल से Svelte पर काम कर रहा हूँ क्योंकि मैंने यह प्रोजेक्ट 2016 में शुरू किया था।
00:01:32शुरुआत में, ताकि मैं इसे अपनी पत्रकारिता की नौकरी में विजुअल जर्नलिज्म के लिए इस्तेमाल कर सकूँ,
00:01:38जहाँ खबरें बताने के लिए जावास्क्रिप्ट की मदद ली जाती है। और फिर चार साल से कुछ ज़्यादा समय पहले,
00:01:44मैं बेसेल में आ गया और यह मेरा फुल-टाइम काम बन गया और तब से मैं यही कर रहा हूँ।
00:01:53हाँ, मुझे लगता है कि आपके जितने सालों का अनुभव किसी और के पास नहीं होगा।
00:01:57मुझे लगता है कि मेरे पास Svelte मेंटेनर के तौर पर लगभग पाँच साल का अनुभव है।
00:02:02तो, मेरा नाम साइमन है। मैं भी बेसेल में Svelte पर काम करता हूँ
00:02:08और मैं अपनी पिछली कंपनी में एक हैकथॉन के ज़रिए Svelte से जुड़ा था।
00:02:13मैं कुछ नया आज़माना चाहता था। उस समय, मैं मुख्य रूप से एंगुलर (Angular) पर काम कर रहा था।
00:02:18हैकथॉन के लिए Svelte का इस्तेमाल किया और तुरंत ही मुझे इससे लगाव हो गया, लेकिन मुझे यह भी पता था,
00:02:22“ठीक है, मैं इसे अपने रोज़ाना के काम में इस्तेमाल नहीं कर सकता, तो मैं Svelte के संपर्क में और कैसे रह सकता हूँ?”
00:02:29सुनने में बहुत किताबी (nerdy) लग सकता है, मुझे पता है। लेकिन इस तरह, मैं एक पार्ट-टाइम मेंटेनर बन गया।
00:02:34और कुछ सालों बाद, मुझे इस पर फुल-टाइम काम करने के लिए बेसेल से जुड़ने का मौका मिला।
00:02:39और हाँ, तब से मैं बहुत खुश हूँ।
00:02:43मैं इलियट हूँ। जैसा कि मैं रिच को बीच-बीच में याद दिलाता रहता हूँ,
00:02:46जिस साल उसने Svelte शुरू किया था, उसी साल मैंने हाई स्कूल पास किया था।
00:02:49तो मैं यहाँ मेंटेनर के रूप में उतने लंबे समय से नहीं हूँ।
00:02:54लेकिन मैंने शुरुआत की थी, मुझे ठीक से याद नहीं कि वह 2021 के आखिर में था या 2022 की शुरुआत में।
00:02:59SvelteKit बीटा के दौरान ही मैंने Svelte कम्युनिटी को ढूँढा और उससे जुड़ा।
00:03:04और फिर रिच के कुछ समय बाद ही मैंने वर्सेल (Vercel) में काम शुरू कर दिया था।
00:03:09अगर मुझे सही याद है, तो यह उसी साल की पतझड़ (fall) की बात थी।
00:03:12पर मैंने वर्सेल की वेबसाइट से जुड़ी कई अन्य चीज़ों पर काम किया।
00:03:16और फिर, अब हैरानी की बात है कि एक साल और कुछ महीने पहले, जो कि बहुत कम समय लगता है,
00:03:23मुझे Svelte टीम में आने का मौका मिला। तो तब से मैं इस पर फुल-टाइम काम कर रहा हूँ।
00:03:27हाल ही में एक बहुत ही बेहतरीन काम जो मैंने किया है, वह है Svelte के लिए असिंक्रोनस SSR इम्प्लीमेंटेशन लिखना।
00:03:36तो इस तरह की चीज़ें ही वह सॉफ्टवेयर डेवलपमेंट का काम हैं जो मुझे पसंद हैं
00:03:43और Svelte के बारे में मुझे हमेशा से पसंद रही हैं।
00:03:48अद्भुत। आप सभी का यहाँ होना बहुत अच्छा है।
00:03:51और हमारे उन दर्शकों के लिए जो शायद परिचित न हों, क्या आप संक्षेप में Svelte और SvelteKit के बारे में बता सकते हैं?
00:04:00हम ज़रूर कोशिश कर सकते हैं। Svelte, असल में कई चीज़ें है।
00:04:04यह एक कम्युनिटी है, यह जीने का एक तरीका है, लेकिन यह एक डिक्लेरेटिव कंपोनेंट फ्रेमवर्क भी है।
00:04:11अगर आपने React और Vue जैसी चीज़ों का इस्तेमाल किया है, तो आप बुनियादी सिद्धांत से परिचित होंगे
00:04:15कि 'document.createElement' और 'setAttribute' लिखने के बजाय,
00:04:21आप अपने ऐप को डिक्लेरेटिव कंपोनेंट्स के रूप में परिभाषित करते हैं।
00:04:25और फिर फ्रेमवर्क का काम उस डिक्लेरेटिव इरादे को स्क्रीन पर दिखने वाली चीज़ों में बदलना होता है।
00:04:33Svelte उन फ्रेमवर्क्स से थोड़ा अलग है क्योंकि इसका डिज़ाइन 'कंपाइलर-फर्स्ट' है।
00:04:40अनिवार्य रूप से, यह एक भाषा है जो बहुत ही बेहतरीन प्रदर्शन करने वाली वैनिला जावास्क्रिप्ट में बदल जाती है।
00:04:48इस्तेमाल के मामले में, यह कई अन्य फ्रेमवर्क्स जैसा ही है, लेकिन अपने डिज़ाइन के कारण,
00:04:53हमें चीज़ों को अन्य फ्रेमवर्क्स की तुलना में थोड़ा बेहतर और संक्षिप्त तरीके से करने का मौका मिलता है।
00:04:58और फिर Svelte के अलावा, जो कि इसकी बुनियादी परत है,
00:05:02हमारे पास एक और फ्रेमवर्क है जो Svelte के ऊपर काम करता है, जिसे SvelteKit कहते हैं,
00:05:08जो कि अगर आप React की दुनिया से हैं, तो यह हमारे Next.js जैसा है।
00:05:13और यह बाकी सारी चीज़ें जोड़ता है, जैसे राउटिंग, सर्वर-साइड रेंडरिंग, डेटा लोडिंग और बिल्ड टूल,
00:05:18और वे सभी चीज़ें जिनकी आपको ऐप बनाते समय ज़रूरत होती है, लेकिन आप नहीं चाहते कि
00:05:24आपको उन्हें खुद बनाने में परेशान होना पड़े।
00:05:28शानदार, बहुत-बहुत धन्यवाद।
00:05:29और आप लोग पर्दे के पीछे भी काफी व्यस्त रहे हैं।
00:05:32और मैं यह जानना चाहूँगी कि पिछले कुछ महीनों में आपने क्या-क्या किया है।
00:05:37मैंने सुना है कि आपके पास दिखाने के लिए कुछ डेमो भी हैं?
00:05:41जी हाँ, हमारे पास कुछ डेमो हैं।
00:05:43क्या मुझे इसकी शुरुआत करनी चाहिए?
00:05:44क्योंकि मुझे लगता है कि क्रम के हिसाब से, पहले असिंक्रोनस Svelte डेवलपमेंट के बारे में बात करना ज़्यादा सही होगा,
00:05:51और फिर हम उन चीज़ों पर आगे बढ़ सकते हैं जो हम उसके ऊपर बना रहे हैं।
00:05:55ठीक लग रहा है।
00:05:55ठीक है, तो पिछले एक साल से ज़्यादा समय से शायद, मुझे ठीक से पता नहीं है।
00:06:02हम उस चीज़ पर काम कर रहे हैं जिसे हम आम तौर पर असिंक्रोनस Svelte कहते हैं। शायद अगर मैं अपनी स्क्रीन शेयर करूँ,
00:06:12तो मैं उसका एक छोटा डेमो दे सकता हूँ, और फिर हम इसके इस्तेमाल के अन्य तरीकों पर चर्चा कर सकते हैं।
00:06:20मुझे बस यह याद करना है कि स्क्रीन शेयर बटन कहाँ है।
00:06:26इन सभी परमिशन डायलॉग्स से गुज़रना पड़ता है।
00:06:28ज़रा रुकिए।
00:06:30पूरी स्क्रीन शेयर करें।
00:06:33लीजिए।
00:06:34ठीक है, मुझे लगता है कि मेरी स्क्रीन शेयर हो रही है।
00:06:35क्या स्क्रीन शेयर हो रही है, या अभी भी बैकस्टेज ही है?
00:06:38हाँ, हमें दिख रही है।
00:06:40ठीक है, तो अनजान लोगों के लिए, यह Svelte.dev है।
00:06:43यह हमारी वेबसाइट है।
00:06:44यह 'प्लेग्राउंड' है जहाँ आप बिना कुछ इंस्टॉल किए या कमांड लाइन के चक्कर में पड़े
00:06:49Svelte को आज़मा सकते हैं।
00:06:51आप सीधे यहाँ कोड लिख सकते हैं।
00:06:53तो यह डिफ़ॉल्ट प्लेग्राउंड है जो आपको मिलता है।
00:06:55शायद मैं इसे थोड़ा बड़ा कर दूँ ताकि हर कोई देख सके।
00:06:58तो यहाँ हमारे पास कुछ 'स्टेट' (state) है।
00:07:03तो ये अजीब चीज़ें, इन्हें 'रून्स' (runes) कहा जाता है।
00:07:05यह बताने का तरीका है कि आपके Svelte कंपोनेंट में कुछ बदलने वाला है,
00:07:10और जब वह बदलेगा, तो हमें फिर से रेंडर करने की ज़रूरत होगी।
00:07:12तो हमारे पास एक 'name' है और एक 'count' है।
00:07:15और फिर हम उस 'name' को यहाँ ऊपर दिखा रहे हैं।
00:07:17और फिर हम उसकी वैल्यू को इसके कंटेंट से बाँध (bind) रहे हैं।
00:07:21तो हम ऐसा कर सकते हैं।
00:07:24और हम इस बटन पर क्लिक कर सकते हैं, जिससे संख्या बढ़ती जाएगी।
00:07:27ये बहुत ही बुनियादी चीज़ें हैं जो हर फ्रेमवर्क
00:07:29किसी न किसी तरीके से कर सकता है।
00:07:35असिंक्रोनस Svelte जो क्षमता जोड़ता है, वह है 'Await' कीवर्ड का सीधे इस्तेमाल करना
00:07:41अपने कंपोनेंट्स के अंदर।
00:07:45तो मान लीजिए-- चलिए नाम और इन सब चीज़ों को हटा देते हैं।
00:07:49और इसे एक 'ID' में बदल देते हैं और एक से शुरू करते हैं।
00:07:56और मैं जो करने जा रहा हूँ वह यह है कि मैं कुछ JSON डेटा खींचने वाला हूँ
00:08:01एक बाहरी स्रोत से।
00:08:04मैं पहले ऐसी चीज़ बनाकर शुरुआत करूँगा जो ID से ली गई (derived) हो।
00:08:10तो यह URL तब कंप्यूट किया जाएगा जब भी वह ID बदलेगी।
00:08:16और आप देख सकते हैं कि अगर मैं यहाँ URL लिखता हूँ, तो जैसे-जैसे यह बदलता है,
00:08:22URL भी बदलता जाता है।
00:08:24और फिर मैं उस URL का इस्तेमाल करके कुछ डेटा लाऊँगा,
00:08:28my data equals derived.
00:08:30और फिर यहाँ अंदर, मैं 'Await fetch URL' कर सकता हूँ।
00:08:36और फिर हम रिस्पॉन्स को JSON में बदलना चाहते हैं।
00:08:41मुझे यकीन है कि डेवलपमेंट में काम करने वाले हर किसी ने इस तरह की चीज़
00:08:43लाखों बार देखी होगी।
00:08:47और फिर नीचे यहाँ, चलिए एक 'ब्लॉक कोट' (block quote) बनाते हैं
00:09:00और वह डेटा दिखाते हैं जो हम यहाँ से खींच रहे हैं।
00:09:03तो आप देख सकते हैं कि अगर हम असल में इसे देखें--
00:09:06वह टूट गया है।
00:09:13तो यह वही है जो हमें मिलने वाला है, और हम इसे दिखाना चाहते हैं।
00:09:16तो यहाँ अंदर, मैं इस तरह 'data.quote' करने वाला हूँ।
00:09:21ओह, कुछ गड़बड़ हो गई है।
00:09:23साइमन, इलियट, अगर आपको दिख रहा है कि मैंने क्या बिगाड़ा है, तो ज़रूर बताएँ।
00:09:28ओह, नहीं, यह बस देरी (delay) की वजह से है।
00:09:30ठीक है।
00:09:31और फिर उसके नीचे, हम कोट के लेखक का नाम जोड़ेंगे।
00:09:40और शायद जब तक हम इस पर काम कर रहे हैं, उस देरी को हटा देते हैं।
00:09:44पता नहीं।
00:09:46अगर मैं इसे कर्ली ब्रेसेस में लपेट दूँ तो मदद मिलेगी।
00:09:50और अब अगर मैं इस पर क्लिक करता हूँ, तो यह हट जाएगा,
00:09:55और यह नया डेटा लाएगा, और इसे रेंडर करेगा।
00:09:58यह सुनने में बहुत ही बुनियादी और तुच्छ लग सकता है,
00:10:01लेकिन अगर आप देखें कि आपको मूल रूप से हर दूसरे फ्रेमवर्क में यह कैसे करना पड़ता है,
00:10:08तो यह बहुत जल्दी डरावना और जटिल हो जाता है।
00:10:10आपके पास कुछ लोकल स्टेट होना चाहिए, और फिर
00:10:13आपके पास एक 'इफेक्ट' (effect) होना चाहिए, जो शायद 'useEffect' हो
00:10:16या अन्य फ्रेमवर्क्स में उसके बराबर, जिसमें आप डेटा फेच करते हैं।
00:10:20और फिर जब फेच रिज़ॉल्व होता है, तब आप उस लोकल स्टेट को असाइन करते हैं,
00:10:25और आपको एरर वगैरह को भी संभालना पड़ता है।
00:10:27और यह वाकई काफी जटिल हो जाता है।
00:10:32लेकिन इसके साथ, यह बस काम करता है।
00:10:36और अगर देरी होती है--
00:10:43तो भी यह काम करना जारी रखता है।
00:10:45हालाँकि आप इसे देखकर सोच सकते हैं, ज़रा रुकिए,
00:10:46अगर मैं बटन को कई बार क्लिक कर रहा हूँ,
00:10:49तो मैं असल में सीधे आखिरी नतीजे पर पहुँचना चाहता हूँ।
00:10:51मैं बीच की इन सभी चीज़ों को नहीं करना चाहता।
00:10:53तो हम वह भी कर सकते हैं।
00:10:54हम यहाँ अंदर कह सकते हैं, अगर मैं इस हेल्पर को इम्पोर्ट करूँ जिसे
00:10:58'get abort signal from self' कहते हैं, और फिर उस सिग्नल को फेच में पास कर दूँ,
00:11:11तो इस बार, जैसे ही मैं बटन क्लिक करूँगा,
00:11:15यह वास्तव में उन सभी बीच के अनुरोधों को खारिज कर देगा
00:11:19और सीधे आखिरी वाले पर पहुँच जाएगा,
00:11:21क्योंकि वे पहले वाले अनुरोध बहुत देर से रिज़ॉल्व हो रहे हैं।
00:11:26और तब तक, हमने पहले ही आईडिया फिर से बदल दिया है।
00:11:28तो हम मौजूदा सिग्नल्स को कैंसिल कर रहे हैं।
00:11:33ठीक है, हम और क्या कर सकते हैं?
00:11:34शायद मैं इस बटन को तुरंत अपडेट होते देखना चाहता हूँ।
00:11:38तो हम असिंक्रोनस होल्डिंग से बाहर निकलने के लिए
00:11:43'state.eager' कह सकते हैं।
00:11:47यह भी काफी उपयोगी है।
00:11:49और हम कुछ स्टाइल जोड़ सकते हैं।
00:11:51हम कह सकते हैं 'data loading equals effect.pending'
00:11:58जो 0 से ज़्यादा है।
00:11:59और फिर अगर हम लोडिंग स्टेट में हैं,
00:12:04तो लोडिंग के दौरान हम इसे 'फ़ेड आउट' (fade out) कर सकते हैं।
00:12:11और यह भी वह सब है जिसे अगर आप
00:12:13खुद तालमेल बिठाकर करने की कोशिश करते
00:12:15तो यह बहुत ही मुश्किल काम होता।
00:12:17हम और भी आगे जा सकते हैं।
00:12:19मान लीजिए मैं कोट के साथ एक फोटो भी जोड़ना चाहता हूँ।
00:12:28यह कुछ ऐसा दिख सकता है।
00:12:37अगर मैं इसे बदलता हूँ, तो मुझे
00:12:41बहुत सारी अलग-अलग तस्वीरें मिलेंगी।
00:12:42जाहिर तौर पर, सब लैपटॉप की हैं, मुझे नहीं पता ऐसा क्यों है।
00:12:46ठीक है, यह एक बेहतर तस्वीर है।
00:12:48हालाँकि, आप ध्यान देंगे कि वहाँ
00:12:50थोड़ी सी देरी हो रही है।
00:12:52हमें कोट के लिए डेटा मिलता है, और फिर इमेज दिखाई देती है।
00:12:57क्योंकि हम इमेज रेंडर कर रहे हैं,
00:12:58और फिर हमें इमेज पाने के लिए वापस नेटवर्क पर जाना पड़ रहा है,
00:12:59और यह उतना अच्छा नहीं है।
00:13:02तो अगर हम उसे एक छोटे 'प्रीलोड' (preload)
00:13:07हेल्पर से बदल दें, जिसे मैं अपने यूटिल्स मॉड्यूल से इम्पोर्ट करने जा रहा हूँ,
00:13:17तो इस बार, हम देखेंगे कि इमेज और कोट
00:13:24दोनों एक ही समय में आते हैं।
00:13:27मैंने अभी-अभी एक छोटी सी बग पकड़ी है।
00:13:28हमें जाकर उसे ठीक करना होगा।
00:13:30लेकिन आपको अंदाज़ा मिल गया होगा।
00:13:31हम अपनी गणनाओं (computations) के अंदर 'Await' का उपयोग कर सकते हैं,
00:13:34और हम इसे अपने टेम्पलेट के अंदर भी उपयोग कर सकते हैं।
00:13:36और ये सभी चीज़ें पूरी तरह से समन्वित (coordinated) हैं
00:13:40एक ऐसे तरीके से जो कई कंपोनेंट्स के साथ काम करता है,
00:13:44जो एक ही इवेंट के जवाब में स्वतंत्र रूप से काम कर रहे हैं।
00:13:47यह सर्वर-साइड रेंडरिंग के साथ भी काम करता है।
00:13:49यह वे सभी चीज़ें करता है जिन्हें अगर आपको
00:13:52बिना असिंक्रोनस Svelte के करना पड़ता
00:13:55तो वे बेहद कष्टदायक होतीं।
00:13:58और इस नींव के साथ, हम कुछ
00:14:02काफी शानदार चीज़ें बनाने में सक्षम हैं, जिसके बारे में मैं
00:14:05बाकी दोनों को बात करने के लिए सौंप रहा हूँ।
00:14:09हाँ।
00:14:10मैं जल्दी से रिमोट फंक्शन्स का डेमो देने वाला हूँ, जो
00:14:17जो इसी के ऊपर बनाए जाएँगे।
00:14:19तो अब जबकि हमारे पास Svelte में async है, यह बहुत शक्तिशाली है।
00:14:24लेकिन SvelteKit, इसके ऊपर बना मेटा फ्रेमवर्क,
00:14:27अभी भी एक तरह से पुरानी दुनिया में ही है।
00:14:30हमारे पास ये लोड फंक्शन्स हैं, जो एक अलग फाइल में रहते हैं।
00:14:34और उसके साथ, हम इस सब नई और बेहतरीन चीज़ों का
00:14:38वास्तव में उपयोग नहीं कर सकते जो हमने अभी देखी हैं।
00:14:41और इसलिए हम अभी जिस चीज़ पर काम कर रहे हैं, वो है रिमोट फंक्शन्स।
00:14:45वे SvelteKit में पहले से ही उपलब्ध हैं।
00:14:48वे प्रायोगिक हैं, लेकिन आप उनका उपयोग अभी भी कर सकते हैं।
00:14:50और मैं यहाँ रिमोट फंक्शन्स का
00:14:55सबसे सरल संभव तरीका दिखाने जा रहा हूँ, बस समय की कमी के कारण।
00:14:59तो मैं क्या करने वाला हूँ कि मैं बस
00:15:01एक बहुत ही सरल काउंटर बनाने जा रहा हूँ जहाँ
00:15:04जब भी मैं बटन क्लिक करूँ, यह गिनती बढ़ा दे,
00:15:08लेकिन वो गिनती सर्वर पर रहेगी।
00:15:10और इसलिए मैं इसे इस counter.remote.ts फाइल में लागू करूँगा।
00:15:16मैं बस एक काउंट से शुरुआत करने वाला हूँ।
00:15:18और फिर कुछ ऐसा, गेट काउंट।
00:15:20और फिर हम $app/server से एक क्वेरी का उपयोग करेंगे।
00:15:26और यह एक रिमोट क्वेरी है।
00:15:29और हम यहाँ बस काउंट वापस कर देंगे।
00:15:31और दूसरी तरफ, हम फिर उसका उपयोग कर सकते हैं
00:15:37और कह सकते हैं, अभी इंपोर्ट की गई फाइल से await get count।
00:15:44तो यह इंपोर्ट TypeScript के लिए एक नियमित इंपोर्ट जैसा दिखता है।
00:15:48बस इतना है कि हम एक फंक्शन इंपोर्ट कर रहे हैं,
00:15:52और फिर हम इसे कॉल कर रहे हैं, और यह एक प्रॉमिस देता है।
00:15:54तो हम इसका इंतज़ार (await) कर रहे हैं।
00:15:56लेकिन असल में, यह क्लाइंट-सर्वर की सीमा को पार कर रहा है।
00:16:01तो यह गेट काउंट, वास्तव में सर्वर पर रहता है।
00:16:05तो असल में हो यह रहा है कि क्लाइंट
00:16:08एक छिपे हुए एंडपॉइंट पर रिक्वेस्ट भेज रहा है
00:16:14और वहां से डेटा वापस ला रहा है।
00:16:17और बेशक, यह सर्वर-साइड रेंडरिंग जैसा भी है।
00:16:19तो शुरुआती लोड पर, यह बैकएंड से रिक्वेस्ट नहीं करेगा,
00:16:23बल्कि इसे सीधे करेगा।
00:16:25और अब हमारे पास यह काउंट तो है, लेकिन हम अभी इसके साथ
00:16:29कुछ कर नहीं सकते।
00:16:29हम इसे बढ़ाना चाहते हैं।
00:16:31तो यह रिमोट फंक्शन के लिए दूसरा हिस्सा होगा।
00:16:34हम इसे बहुत जल्दी लागू करने जा रहे हैं-- कोपायलट नहीं।
00:16:38यह गलत कमांड है।
00:16:40हमें $app/server से कमांड चाहिए।
00:16:45और यहाँ, हम बस अपने सर्वर की स्थिति (state) अपडेट करेंगे।
00:16:49और वह अपने आप में अभी मदद नहीं करेगा,
00:16:52क्योंकि हमें इसे यह भी बताना होगा, क्योंकि यह एक कमांड है,
00:16:55कि इसके साथ एक अपडेट भी भेजें।
00:16:58और इसलिए हम यहाँ अपने रिमोट फंक्शन गेट काउंट को कॉल कर रहे हैं,
00:17:03और उस पर refresh कॉल कर रहे हैं।
00:17:05और इसके साथ, हम मूल रूप से इसे बता रहे हैं,
00:17:08कि एक सिंगल-फ्लाइट म्यूटेशन जैसा कुछ करो।
00:17:10जब आपको कॉल किया जाए, तो काउंट को एक से बढ़ा दें,
00:17:14और फिर क्लाइंट को यह जानकारी वापस भेजें
00:17:19कि, जब भी इस पेज पर गेट काउंट का उपयोग किया जाए,
00:17:22तो अब इसे एक से बढ़ जाना चाहिए,
00:17:24कि अब एक नई स्थिति उपलब्ध है।
00:17:27और इसलिए अगर मैं अब इसे यहाँ जोड़ता हूँ,
00:17:29तो मैं on click जैसा कुछ करूँगा और बस काउंट बढ़ा दूँगा।
00:17:37मैं बस इतना ही करने जा रहा हूँ।
00:17:38यह एक नियमित फंक्शन कॉल जैसा दिखता है।
00:17:40लेकिन फिर से, यह वास्तव में सर्वर को कॉल करता है।
00:17:43और अब जब मैं इसे क्लिक करता हूँ, तो मैं इसे बढ़ा रहा हूँ।
00:17:49तो यह रिमोट फंक्शन्स की एक
00:17:53बहुत ही सरसरी झलक थी।
00:17:55आप इसके साथ बहुत कुछ बना सकते हैं।
00:17:58यह AI के साथ मिलकर भी शानदार ढंग से काम करता है।
00:18:01उदाहरण के लिए, सेशन शुरू होने से पाँच मिनट पहले,
00:18:06मैंने इस कोड कोपायलट से पूछा, हे, मेरे लिए
00:18:12एक पोर्टल-थीम वाला बेसिक ब्लॉक बनाओ जहाँ
00:18:18मैं कुछ रिमोट फंक्शन्स दिखाना चाहता हूँ।
00:18:20और तुम्हें MCP, यानी Svelte MCP के साथ Svelte 5 का उपयोग करना चाहिए।
00:18:25एलियट जल्द ही उसके बारे में थोड़ा और बात करेंगे।
00:18:29उसका उपयोग करो और रिमोट फंक्शन्स और async का उपयोग करो।
00:18:32और इसने मूल रूप से इसे एक ही बार में कर दिया।
00:18:34तो यह प्री-रेंडर किया गया है।
00:18:35यह ब्लॉक प्री-रेंडर किया गया है।
00:18:37और अब मैं यहाँ टाइप कर सकता हूँ--
00:18:42यहाँ आस-पास सेव करें।
00:18:43और यह इसे अपडेट कर देता है।
00:18:49और अंदरूनी तौर पर, यह मूल रूप से वही काम कर रहा है।
00:18:53बस इस पर एक त्वरित नज़र डालते हुए,
00:18:56हम await get posts का उपयोग कर रहे हैं।
00:18:59गेट पोस्ट्स एक प्री-रेंडर फंक्शन है,
00:19:01जिसका अर्थ है कि यह रनटाइम के बजाय
00:19:05बिल्ड टाइम पर निष्पादित होता है।
00:19:06हमारे पास यहाँ नीचे एक कमेंट सेक्शन है
00:19:12जहाँ हम कमेंट्स लोड कर रहे हैं और फिर एक नया कमेंट
00:19:15पोस्ट करने के लिए एक फॉर्म का उपयोग कर रहे हैं और इसी तरह।
00:19:19और यह सब रिमोट फंक्शन्स का उपयोग कर रहा है, कहीं भी
00:19:23कोई लोड फंक्शन नहीं है।
00:19:24और AI ने इसे एक ही बार में कर दिया।
00:19:27और एलियट अब इसके बारे में
00:19:32शायद अधिक विस्तार से बात करने जा रहे हैं।
00:19:34हाँ, बहुत बढ़िया लग रहा है।
00:19:37मुझे भी वही रिच हैरिस वाली चीज़ें करनी होंगी
00:19:41जो हमें स्क्रीन शेयर करने के साथ शुरुआत में करनी पड़ी थीं।
00:19:46ठीक है, ये रहा।
00:19:52तो मैं आप लोगों से उस AI विकास के बारे में बात करने
00:19:57के लिए एक मिनट लेने जा रहा हूँ जो हम हाल ही में कर रहे हैं।
00:19:59और 'हम' से मेरा मतलब साफ़ है कि मेरा मतलब खुद से नहीं है।
00:20:02मेरा मतलब मुख्य रूप से पाओलो नाम के एक व्यक्ति और Svelte के
00:20:06हमारे कुछ अन्य योगदानकर्ताओं से है।
00:20:09वास्तव में, हाल ही में हमने जो भी AI से संबंधित काम किया है,
00:20:13वह ज़्यादातर उन्हीं की तरफ से आया है।
00:20:14तो उनका बहुत-बहुत धन्यवाद।
00:20:15उन्होंने कमाल का काम किया है।
00:20:18और हाँ, चलिए मैं यहाँ आपके लिए ज़ूम करता हूँ।
00:20:24ये रहा।
00:20:27तो मैं इसे समझाने में काफी समय ले सकता हूँ
00:20:28कि हमने इसे करने के लिए क्या बनाया है
00:20:31क्योंकि हमारे पास एक MCP सर्वर है।
00:20:32इसमें कुछ बहुत ही शानदार फंक्शन्स हैं।
00:20:36हमारे पास कुछ स्किल्स हैं जिन्हें हमने प्रकाशित किया है।
00:20:38लेकिन शुक्र है कि आपको विस्तार से यह जानने
00:20:41की ज़रूरत नहीं है कि यह सब कैसे काम करता है
00:20:43क्योंकि हमने Open Code और Cloud Code
00:20:47प्लगइन्स भी प्रकाशित किए हैं।
00:20:48तो मैं यहाँ Open Code प्लगइन इंस्टॉल करने जा रहा हूँ, जिसका
00:20:52मूल रूप से मतलब है कि इस कॉन्फ़िगरेशन को कॉपी करना
00:20:55और फिर इसे अपनी लाइब्रेरी की एक
00:20:58Open Code.json फाइल में डाल देना।
00:21:00और मैं बस Open Code से इसके साथ एक साइट बनवाने वाला हूँ।
00:21:06और हम देखेंगे कि यह कैसे चलता है।
00:21:10तो मैं इससे पूछने जा रहा हूँ।
00:21:11मैंने एसेट्स (assets) में कुछ इमेज प्रदान की हैं।
00:21:17मुझे दुर्भाग्य से इसे आपके लिए ज़ूम करने दीजिए।
00:21:28दुर्भाग्य से, ऐसा नहीं लग रहा है कि मैं इसे आपके लिए ज़ूम कर सकता हूँ।
00:21:34ये रहा।
00:21:34ठीक है।
00:22:00[टाइपिंग]
00:22:06और हम देखेंगे कि इसके साथ क्या होता है।
00:22:09कोई गलती नहीं।
00:22:11हाँ, बिल्कुल।
00:22:12वह बहुत महत्वपूर्ण है।
00:22:13यदि आप अपने प्रॉम्प्ट के अंत में वह नहीं लिखते,
00:22:15तो वे उतनी अच्छी तरह काम नहीं करते।
00:22:18लेकिन जब तक यह चल रहा है, मैं आपको
00:22:21उस काम के बारे में थोड़ा बता सकता हूँ जिस पर वे काम कर रहे हैं।
00:22:25तो अगर आप यहाँ Svelte साइट पर आते हैं
00:22:28और हमारे AI डॉक्स पर आते हैं, तो आपको हर चीज़ का अवलोकन मिल जाता है।
00:22:32हमने एक MCP प्रकाशित किया है, जिसके साथ अपना खुद का CLI सामान है।
00:22:36और इसमें कई--
00:22:40ओह, हे, उन्होंने पिछले पाँच मिनट में इसे ठीक कर दिया।
00:22:43तो यह पाँच मिनट पहले जैसा था, उससे अलग दिख रहा है।
00:22:46लेकिन हमारे पास कई टूल्स हैं जो यह आपकी मशीन पर सक्षम करता है।
00:22:51उनमें से अधिकांश का संबंध--
00:22:53या पहले दो का संबंध Svelte के बारे में
00:22:58अच्छी जानकारी प्राप्त करने से है।
00:22:58तो यह आपके एजेंट को सिखाता है कि डॉक्यूमेंटेशन कैसे पढ़ें
00:23:03और विशेष रूप से इसे इस तरह से पढ़ें
00:23:05कि यह वह विशिष्ट जानकारी प्राप्त कर सके
00:23:08जिसकी उसे तलाश है, बिना पूरे डॉक्स को यहाँ डंप किए
00:23:11या उन्हें खोजने और समय और कॉन्टेक्स्ट
00:23:12बर्बाद किए बिना।
00:23:15यह वास्तव में कमाल का Svelte ऑटोफिक्सर है
00:23:17जिसे उन्होंने बनाया है जो उन पैटर्न्स को पहचानता है
00:23:21जो LLMs अक्सर उपयोग करते हैं जो अच्छे नहीं होते, और उन्हें ठीक करता है।
00:23:26और इसमें हमारे प्लेग्राउंड के साथ कुछ प्लेग्राउंड इंटीग्रेशन भी है
00:23:33जिसका उपयोग आप यहीं कर सकते हैं।
00:23:37और दूसरी अच्छी चीज़ जो हमारे पास है
00:23:39वो हमारे मुख्य डिजाइन निर्णयों में से एक है
00:23:44जब हम इस सब AI सामग्री को देख रहे होते हैं
00:23:46कि हम इसे एजेंटों और लोगों दोनों के लिए उपयोगी कैसे बनाएं?
00:23:52हम नहीं चाहते कि यह कोई अस्पष्ट चीज़ हो
00:23:55जहाँ आपका एजेंट जादुई रूप से चीज़ें जानता हो।
00:23:59आप इसे नहीं जानते।
00:24:00इसे समझना मुश्किल है।
00:24:01तो मूल रूप से, हम जो कुछ भी करते हैं,” उसे हम
00:24:04डॉक्यूमेंटेशन में भी एकीकृत करने का प्रयास करते हैं।
00:24:07और इसलिए हमारी स्किल्स जिन्हें हमने प्रकाशित किया है,
00:24:09जो इस ओपन कोड प्लगइन या क्लाउड कोड प्लगइन
00:24:12का हिस्सा हैं जब आप इसे इंस्टॉल करते हैं, तो वे वास्तव में
00:24:15अपनी सारी सामग्री डॉक्स पर भी प्रकाशित करते हैं।
00:24:18तो आप हमेशा जान सकते हैं कि यदि आप
00:24:20हैरान हैं कि हम आपके LLM को किन सर्वोत्तम प्रथाओं के बारे में बता रहे हैं,
00:24:25तो आप उन्हें स्वयं आकर पढ़ सकते हैं।
00:24:27और वे हमेशा हमारी साइट पर इसी तरह रहेंगे।
00:24:31तो चलिए वापस चलते हैं और देखते हैं कि इस चीज़ ने
00:24:34कितना काम (churning) किया है।
00:24:35अभी तक बहुत ज़्यादा नहीं।
00:24:39शायद बहुत ज़्यादा, असल में।
00:24:45हाँ, तो हमारे पास बहुत सारी स्टाइलिंग चल रही है।
00:24:56और मुझे लगता है कि मैं बस अपना लोकल होस्ट
00:25:00खोलूँगा और देखूँगा कि इसने क्या किया है।
00:25:03कुछ नहीं।
00:25:07ठीक है, खैर, मैं इसे रोक कर नहीं रखना चाहता
00:25:10जब यह अभी भी अपनी पूरी प्रक्रिया पर विचार कर रहा है।
00:25:12इसमें कुछ समय लग सकता है।
00:25:13तो अगर हमारे पास अंत में समय हुआ, तो हम वापस आकर
00:25:15देख सकते हैं कि LLM हमारे आर्टिसनल पोटैटो कैनन
00:25:19बिजनेस के लिए क्या लेकर आया है।
00:25:20लेकिन हाँ, यह हमारा AI विकास है जो हमने
00:25:25पिछले कुछ महीनों में किया है।
00:25:26शानदार।
00:25:32हाँ, नए युग में यह अत्यंत प्रासंगिक है।
00:25:37मैं वास्तव में यह जानना चाहूँगा कि आगे क्या है।
00:25:40आप लोग किस चीज़ का इंतज़ार कर रहे हैं?
00:25:46अगला रिलीज़ Svelte Kit 3 होने जा रहा है।
00:25:51इस समय हम सक्रिय रूप से उस पर काम कर रहे हैं।
00:25:53लेकिन यह बहुत सारी नई सुविधाओं वाली कोई बहुत बड़ी चीज़ नहीं होने वाली है।
00:25:56जिसमें ढेर सारे नए फीचर्स होंगे।
00:25:57यह मूल रूप से बहुत सारी पुरानी चीजों को
00:25:59हटाने का एक अवसर है, एक तरह से मैदान साफ करना
00:26:02ताकि हम सभी रोमांचक नई चीजें बना सकें।
00:26:06सबसे बड़ा बदलाव यह है कि यह अब एनवायरनमेंट
00:26:09API का उपयोग करेगा क्योंकि V8 अभी ठीक दो घंटे पहले रिलीज हुआ है।
00:26:15और इसके लिए नवीनतम वर्जन के रूप में Svelte 5 की आवश्यकता होगी।
00:26:21तो आप Svelte 4 का उपयोग करने में पूरी तरह सक्षम हैं।
00:26:25और उसके बाद, हम
00:26:29async Svelte और रिमोट फंक्शन को स्टेबल बनाने पर ध्यान केंद्रित करेंगे।
00:26:33सुनने में अच्छा लग रहा है।
00:26:37और मैंने कहीं से सुना है कि मैं
00:26:41एलियट को कमान सौंपने जा रहा हूँ क्योंकि LLM
00:26:44कुछ तैयार कर रहा था।
00:26:46क्या आप हमें दिखाना चाहते हैं कि आपके पास क्या है?
00:26:47जैसा कि इन चीजों के साथ होता है, इसने ठीक उसी पल
00:26:49काम खत्म किया जब हम अगले हिस्से की ओर बढ़े।
00:26:55तो चलिए यहाँ चलते हैं।
00:26:59हाँ, तो यह हमारा आर्टिसनल पोटैटो कैनन स्टोरफ्रंट है
00:27:03जो हमें लगभग $1 के टोकन में मिला है।
00:27:07और वास्तव में, कोड पर नज़र डालते हुए,
00:27:13इसने कुछ भी अजीब न करने और Svelte के लिए
00:27:17बेहतरीन तरीकों का उपयोग करने में बहुत अच्छा काम किया है।
00:27:22तो इसे आजमाएं।
00:27:25हमें बताएं कि आपको यह कैसा लगा।
00:27:27मैं पाओलो और अन्य लोगों द्वारा इस सभी AI काम
00:27:29पर किए गए प्रयासों से वास्तव में प्रभावित हुआ हूँ।
00:27:33और हम इसमें सुधार करना जारी रखना चाहेंगे।
00:27:35तो अपना फीडबैक हमें जरूर दें।
00:27:38शुक्रिया।
00:27:40बहुत बढ़िया, डेमो के देवता आज हमारे पक्ष में हैं।
00:27:45क्या हम कुछ सवालों के लिए मंच खोलें?
00:27:47मुझे लगता है कि चैट में हमारे पास पहले से ही कुछ सवाल हैं।
00:27:51मैं शुरुआत करता हूँ, ठीक है?
00:27:53तो हमारे पास रिमोट फंक्शन्स के लिए एक सवाल है।
00:27:57क्या हमें रिमोट फंक्शन्स के लिए स्ट्रीमिंग मिलेगी?
00:28:00रिमोट फंक्शन्स का अनुभव (DX) बहुत शानदार है।
00:28:03उन्हें हर जगह इस्तेमाल करना चाहता हूँ।
00:28:05हाँ, मुझे लगता है कि रिचर्ड इसका जवाब दे सकते हैं
00:28:06क्योंकि आप उसी क्षेत्र में काम कर रहे हैं।
00:28:10जी हाँ, यह अजीब इत्तेफाक है कि आपने इसका जिक्र किया।
00:28:12क्योंकि मैं अभी एक ऐप बना रहा हूँ जिसे
00:28:15वाकई इस फीचर की जरूरत है।
00:28:17और हमने— साइमन ने कुछ समय पहले एक PR पर काम किया था,
00:28:22जिसने इसके कुछ हिस्सों को लागू किया था।
00:28:23तब से डिजाइन को लेकर हमारे
00:28:28विचार थोड़े और विकसित हुए हैं।
00:28:31लेकिन यह कुछ ऐसा है जिसे वापस शुरू करने के लिए हम बहुत उत्सुक हैं।
00:28:35तो हाँ, अगर हम यह एक हफ्ते बाद कर रहे होते,
00:28:40तो शायद हम कह पाते, "यह रहा पुल रिक्वेस्ट।"
00:28:43हम अभी वहां तक नहीं पहुंचे हैं।
00:28:44लेकिन निश्चिंत रहें, यह एक बहुत ही उच्च प्राथमिकता है।
00:28:47और हम इस फीचर के लिए बहुत उत्साहित हैं।
00:28:49जो लोग परिचित नहीं हैं, उनके लिए बता दूँ कि
00:28:51हम क्वेरी फंक्शन के रियल-टाइम वर्जन के
00:28:55बारे में बात कर रहे हैं, जहाँ जब आप सर्वर से
00:28:59डेटा का अनुरोध करेंगे, तो यह एक async iterable लौटाएगा,
00:29:04जो हर बार नया डेटा आने पर,
00:29:09उस डेटा को क्लाइंट को वापस भेज देगा।
00:29:12तो आप बिना किसी पोलिंग के रियल-टाइम डेटा प्राप्त कर सकते हैं।
00:29:15और जैसे ही वह पेज
00:29:16उस डेटा को दिखाना बंद कर देगा,
00:29:21अनुरोध अपने आप बंद हो जाएगा।
00:29:23और async iterable खुद को साफ (clean up) कर लेगा।
00:29:26और इन रियल-टाइम समस्याओं के बारे में सोचने का
00:29:28यह वास्तव में एक बहुत अच्छा तरीका है।
00:29:31हाँ, इसके लिए बहुत उत्साहित हूँ।
00:29:33और पूरी तरह स्पष्ट करने के लिए, मैं
00:29:35आप लोगों को बताना चाहता हूँ कि रिच का "जल्द ही" से क्या मतलब है,
00:29:38फिलहाल एलियट मुझे इस पर काम करने से
00:29:40रोक रहा है।
00:29:41और मैं उसके कुछ खत्म करने का इंतज़ार कर रहा हूँ।
00:29:43तो जैसे ही मैं अपने मौजूदा काम से फ्री हो जाऊंगा,
00:29:45हम इस पर लग जाएंगे।
00:29:46बढ़िया।
00:29:50हमारे पास एक और सवाल है।
00:29:52और वह है, अन्य फ्रेमवर्क्स के बजाय Svelte को क्यों चुनें?
00:29:55जाहिर है, हमें लगता है कि यह सबसे अच्छा और सबसे सक्षम फ्रेमवर्क है।
00:30:07लेकिन आज के दौर में किसी भी फ्रेमवर्क
00:30:11को चुनने का असली कारण यह है
00:30:13कि आपको दूसरों की तुलना में इसमें अधिक मज़ा आता है।
00:30:18इसका बहुत सारा हिस्सा व्यक्तिगत पसंद के बारे में है
00:30:20न कि किसी और चीज के बारे में।
00:30:22और खासकर आजकल, जब
00:30:24फ्रेमवर्क्स के बीच स्विच करना वाकई आसान है,
00:30:28आपके पास एक जादुई विज़ार्ड (AI) उपलब्ध है जो आपको सिखा सकता है—
00:30:32"मैं Vue में इसे इस तरह से करने का आदी हूँ।"
00:30:35"मैं इसे Angular या किसी और चीज़ में कैसे करूँगा?"
00:30:37वे ऐसा कर सकते हैं।
00:30:38सीखने की प्रक्रिया आज के दौर में
00:30:43अनिवार्य रूप से बहुत सरल हो गई है।
00:30:45इसलिए आपको उस टूल का उपयोग करना चाहिए जिसमें आप सबसे अधिक उत्पादक हैं
00:30:49और जिसका उपयोगकर्ता बनकर आप सबसे खुश हैं।
00:30:53और इसका एक हिस्सा प्रोजेक्ट के इर्द-गिर्द के समुदाय के बारे में है।
00:30:57एक हिस्सा प्रोजेक्ट के समग्र दर्शन (philosophy) के बारे में है।
00:31:02लेकिन मुझे नहीं लगता कि आज के दौर में आपको
00:31:05इस आधार पर निर्णय लेने की ज़रूरत है कि कौन सा फ्रेमवर्क काम कर सकता है।
00:31:11क्योंकि वे सभी एक ही काम कर सकते हैं,
00:31:13या किस फ्रेमवर्क का इकोसिस्टम सबसे बड़ा है।
00:31:16क्योंकि अब यह वास्तव में चिंता का विषय नहीं है।
00:31:18तो बस वही फ्रेमवर्क चुनें जो सबसे ज्यादा मजेदार हो।
00:31:21और हमें लगता है कि वह निश्चित रूप से Svelte है।
00:31:26शानदार जवाब।
00:31:27बहुत पसंद आया।
00:31:29अगला, कोई पूछ रहा है, क्या कैश (cache) से संबंधित कुछ नया है?
00:31:35हाँ, मुझे लगता है कि यह शायद रिमोट फंक्शन्स के बारे में है।
00:31:38तो रिमोट फंक्शन्स के संदर्भ में,
00:31:41हमारे पास अभी तक कोई कैश API नहीं है।
00:31:45एक आंतरिक प्रस्ताव (proposal) है।
00:31:48यह अभी सक्रिय कार्य नहीं है।
00:31:51चल रहे अन्य कामों के बीच इसे फिलहाल किनारे रख दिया गया है।
00:31:55लेकिन इसे जल्द ही फिर से शुरू किया जाएगा।
00:31:58और फिर हमारे पास एक बहुत अच्छा कैशिंग API होगा जो
00:32:01रिमोट फंक्शन्स के साथ एकीकृत होगा।
00:32:05अद्भुत।
00:32:06हमारे पास एक हल्का-फुल्का सवाल है।
00:32:08आपका पसंदीदा Svelte Summit लोकेशन कौन सा है?
00:32:10ओह, वाह।
00:32:13क्या आप तुरंत एक राउंड रॉबिन (बारी-बारी से जवाब) करना चाहते हैं?
00:32:16एलियट, आप म्यूट हैं।
00:32:22तो मेरा मतलब है, अगर हम शिखर सम्मेलनों की बात कर रहे हैं,
00:32:24तो हमारे पास एवरेस्ट है, K2 है।
00:32:28नहीं, लेकिन मेरे लिए, स्थान उतना मायने नहीं रखता।
00:32:34क्योंकि मैं ज़्यादातर समय अन्य Svelte डेवलपर्स
00:32:36के साथ ही बिताता हूँ।
00:32:38तो चाहे यह सुनने में कितना भी अजीब लगे, कहीं भी जाना शानदार है।
00:32:43लेकिन यूरोप वाकई बहुत अच्छा है।
00:32:46तो वहां कहीं भी
00:32:48ऐसी जगह है जहां मैं अभी तक नहीं गया हूं और जाना चाहूंगा।
00:32:51तो मुझे विदेश कहीं भी जाने का बहाना मिले तो मुझे खुशी होती है।
00:32:56Svelte की दुनिया में एक प्रवृत्ति है
00:33:01कि हर चीज़ के साथ SV प्रीफिक्स लगाया जाता है।
00:33:04तो आप जो भी शब्द
00:33:06या लाइब्रेरी या कॉन्सेप्ट बनाने की कोशिश कर रहे हैं,
00:33:08आप उसके आगे बस SV लगा देते हैं।
00:33:11और मुझे लगता है कि अगर हम वाकई उस पर ध्यान दें,
00:33:12तो हमारा सम्मेलन स्वालबार्ड (Svalbard) में होगा।
00:33:15बढ़िया।
00:33:20जो कि एक— नार्वेजियन द्वीप समूह है।
00:33:23क्या आपने अभी-अभी इसे गूगल किया?
00:33:27वास्तव में पिछले दिनों बातचीत में इसका ज़िक्र आया था।
00:33:31हाँ, अचानक ही।
00:33:35हाँ।
00:33:38तो अगर मैं पूरी तरह से सपना देख सकूँ, तो मुझे लगता है कि मेरा पसंदीदा स्थान
00:33:41वास्तव में एक नाव पर होगा।
00:33:45बस समुद्र के बीच में।
00:33:47अच्छा मौसम हो।
00:33:49और बस, पता नहीं, एक नाव पर तीन दिन बिताएं।
00:33:52वह बहुत अच्छा होगा।
00:33:55ऊपर बताए गए सभी विकल्प प्यारे लग रहे हैं।
00:33:57और अगला Svelte Summit जब भी होगा, मैं उसके लिए बहुत उत्साहित हूँ।
00:34:00और समुदाय और कार्यक्रमों की बात करें तो,
00:34:03हमारे पास एक सवाल है कि लोग
00:34:05Svelte के साथ कैसे जुड़ सकते हैं, कोई कार्यक्रम या सामुदायिक
00:34:07अवसर हैं?
00:34:11हर समय कार्यक्रम होते रहते हैं।
00:34:13यदि आप sveltesociety.dev पर जाते हैं, तो आप
00:34:15कार्यक्रमों का कैलेंडर देख सकते हैं।
00:34:16और जुड़ने के बेहतरीन तरीकों पर बहुत सारे संसाधन भी हैं,
00:34:19खासकर यदि आपके क्षेत्र में
00:34:22कुछ नहीं हो रहा है और आप Svelte Society का
00:34:25एक चैप्टर शुरू करने में रुचि रखते हैं, तो sveltesociety.dev
00:34:28जानकारी प्राप्त करने की सही जगह है।
00:34:33हाँ, और इसके अलावा, अगर आप बिल्कुल नए हैं, तो डिस्कॉर्ड (Discord) में आएं
00:34:36और बस अलग-अलग चैनलों में नमस्ते कहें।
00:34:41विभिन्न चैप्टर्स या स्थानीय समूहों के लिए
00:34:47समर्पित चैनल भी हैं।
00:34:49तो ज्यादातर, वे संबंधित भाषाओं में
00:34:55अन्य डिस्कॉर्ड चैनलों के संदर्भ हैं।
00:34:57उदाहरण के लिए, एक जर्मन Svelte Society डिस्कॉर्ड
00:35:00चैनल भी है।
00:35:01तो हाँ, बस डिस्कॉर्ड चैनल में आएं,
00:35:06और आप वहां से आगे बढ़ सकते हैं।
00:35:08और वैसे, Svelte से संबंधित चैनल
00:35:12भी समय बिताने के लिए एक अच्छी जगह है।
00:35:16हाँ, Svelte के लोग बहुत प्यारे हैं।
00:35:18तो हाँ, उन्हें ज़रूर देखें।
00:35:22हमारे पास AI से संबंधित एक और सवाल है।
00:35:24मुझे पता है, एलियट, आपने इस पर बात की थी।
00:35:26तो किसी ने पूछा है, फ्रेमवर्क्स को एजेंट/AI दुनिया के
00:35:29अनुकूल होते देखना बहुत अच्छा है।
00:35:31मैं उत्सुक हूँ कि क्या आपके पास एजेंटों द्वारा Svelte को डिफॉल्ट के रूप में चुनने के कोई आंकड़े हैं।
00:35:36नहीं, वास्तव में नहीं।
00:35:37हम शायद v0 जैसी किसी चीज़ के माध्यम से
00:35:44इसका कुछ संकेत प्राप्त करने
00:35:46में सक्षम हो सकते हैं, जहाँ हम इस तरह की टेलीमेट्री देखते हैं।
00:35:49लेकिन सामान्य तौर पर Svelte के—
00:35:53मेरा मतलब है Svelte के— जो लोग Svelte पर काम करते हैं,
00:35:57उन्होंने चीजों पर टेलीमेट्री डेटा इकट्ठा करने के प्रति
00:36:01काफी नकारात्मक दृष्टिकोण अपनाया है।
00:36:06तो हमारे पास जो भी डेटा है,
00:36:08वह वही है जो सार्वजनिक रूप से उपलब्ध है।
00:36:10इसलिए हम NPM डाउनलोड ट्रेंड्स को देख सकते हैं, जो
00:36:14मुझे लगता है कि अभी किसी अजीब कारण से बहुत तेजी से ऊपर जा रहे हैं।
00:36:18तो शायद उन्हें बिल्कुल सच न मानें।
00:36:20हाँ, चिंता मत करो।
00:36:22लेकिन हाँ, हम निजता के कारणों से अपने उपयोगकर्ताओं
00:36:25का कोई डेटा इकट्ठा नहीं करते हैं।
00:36:27हम आपकी मशीनों पर उस तरह की घुसपैठ नहीं करना चाहते।
00:36:30तो हमें जो डेटा मिलता है वह सार्वजनिक रूप से उपलब्ध है
00:36:35और शायद Vercel के कुछ चैनलों के ज़रिए कुछ उपयोगी जानकारी मिल जाए।
00:36:43अनुभव के आधार पर कहें तो, अगर आप LLMs से पूछें कि क्या चुनना चाहिए,
00:36:46सबसे अच्छा क्या है, तो Svelte का ज़िक्र अक्सर आता है।
00:36:51तो यह कम से कम अच्छी बात है।
00:36:53लेकिन क्या इसका मतलब वाकई Svelte चुनना है,
00:36:56अगर आप अपने प्रॉम्प्ट में इसे स्पष्ट नहीं करते, तो यह एक अलग सवाल है।
00:37:01हाँ, यह बहुत दिलचस्प है।
00:37:03एक बार जब आप उन्हें यह सोचने के लिए प्रेरित करते हैं कि आदर्श टूल क्या है,
00:37:06तो वे अक्सर Svelte कहेंगे।
00:37:08लेकिन अगर आप यह नहीं कहते कि "मैं चाहता हूँ कि आप इस फ्रेमवर्क का उपयोग करें"
00:37:11या "मैं चाहता हूँ कि आप सबसे अच्छे फ्रेमवर्क का उपयोग करें,"
00:37:12सिर्फ "मेरे लिए एक ऐप बनाओ" कहें, तो वे आमतौर पर React को ही चुनेंगे।
00:37:17और इसे बदलने के लिए हम बहुत कुछ नहीं कर सकते।
00:37:21इसलिए हमारा ध्यान इस बात पर रहा है कि
00:37:23जो टीमें Svelte चुनती हैं,
00:37:27उन्हें बेहतरीन अनुभव मिले।
00:37:29और एजेंट्स (AI) के पास डॉक्यूमेंटेशन समझने और
00:37:31गलतियों को पकड़ने की सबसे अच्छी क्षमता हो।
00:37:36हाँ, और जैसा कि पोर्टल-थीम वाले ब्लॉग और Potato Cannon
00:37:42वेबसाइट से पता चलता है, वे कॉन्टेक्स्ट और
00:37:46MCP वगैरह को संभालने में काफी माहिर हो रहे हैं।
00:37:50तो हाँ, अब आप इसके साथ बहुत तेज़ी से काफी आगे बढ़ सकते हैं।
00:37:56बढ़िया।
00:37:57हाँ, आप जो काम कर रहे हैं उसे देखना सुखद है
00:37:58और साथ ही इंसानों और एजेंट्स दोनों तरह के
00:38:01दर्शकों की ज़रूरतों का ख्याल रखना भी बेहतरीन है।
00:38:04और हमारे पास Svelte फीचर्स पर
00:38:06कुछ और विशिष्ट प्रश्न हैं।
00:38:08तो एक सवाल है, क्या मार्कअप में एक ही रिमोट फंक्शन को
00:38:11बार-बार कॉल करना सही है,
00:38:14या हमें स्क्रिप्ट टैग में सिर्फ एक रेफरेंस रखना चाहिए?
00:38:17हाँ, यह बिल्कुल सही है।
00:38:20आप अभी इसी पर काम कर रहे हैं, तो आप ही बताइए।
00:38:24रिच को अभी लाइव क्वेरीज़ पर काम करने से जो चीज़ रोक रही है,
00:38:26उसका संबंध असल में इसी सवाल से है।
00:38:29जी हाँ, एक ही रिमोट फंक्शन को कई बार कॉल करना
00:38:35और अलग-अलग जगहों पर उसे बार-बार रेफरेंस देना
00:38:39पूरी तरह से ठीक है।
00:38:41जब आप रिमोट फंक्शन्स का उपयोग कर रहे हों,
00:38:44तो क्वेरीज़ के लिए आपका मानसिक मॉडल यह होना चाहिए कि
00:38:46जब मैं किसी आर्ग्यूमेंट के साथ क्वेरी कॉल करता हूँ,
00:38:50तो मुझे उस क्वेरी का एक रेफरेंस मिल रहा है,
00:38:54और क्वेरी खुद डेटा से अलग होती है।
00:38:57इसलिए अगर मैं ऐप में कहीं भी ID 1 के साथ 'getUser' कॉल करता हूँ,
00:39:04तो मुझे हर जगह उस क्वेरी का
00:39:07एक ही इंस्टेंस मिलेगा।
00:39:08तो आपके क्वेरी कॉल्स पूरे ऐप में डुप्लिकेट नहीं होते,
00:39:11ताकि आर्ग्यूमेंट्स के हर सेट के लिए अधिकतम एक ही कॉल हो।
00:39:16अलग आर्ग्यूमेंट्स अलग परिणाम देते हैं।
00:39:19समान आर्ग्यूमेंट्स समान क्वेरी उत्पन्न करते हैं।
00:39:21वे पूरे ऐप में डिडुप्लिकेटेड (अद्वितीय) होते हैं।
00:39:24अभी इसमें कुछ अजीब दिक्कतें हैं,
00:39:28और पिछले कुछ हफ़्तों से मैं उन्हीं को ठीक करने,
00:39:33नियमबद्ध करने और उन्हें थोड़ा
00:39:37ज़्यादा स्पष्ट बनाने पर काम कर रहा हूँ।
00:39:39और उम्मीद है कि वह जल्द ही आ जाएगा।
00:39:41लेकिन हाँ, बहुत छोटा जवाब है - हाँ।
00:39:44बस उन्हें कॉल करें और जहाँ चाहें इस्तेमाल करें।
00:39:47हाँ, और इसे थोड़ा विस्तार देते हुए,
00:39:48हम 'await' कीवर्ड वगैरह के साथ यह सारा काम
00:39:51सिर्फ इसलिए कर रहे हैं क्योंकि
00:39:54हम चाहते हैं कि जहाँ तक संभव हो, आप अपने कंपोनेंट की
00:39:57ज़रूरत की हर चीज़ को
00:39:59उसी कंपोनेंट के अंदर व्यक्त कर सकें।
00:40:00तो यहाँ ऊपर डेटा फेच करने और फिर उसे सावधानी से
00:40:04नीचे उन सभी चीज़ों तक पहुँचाने के दिन,
00:40:08अब खत्म होने वाले हैं।
00:40:10लेकिन इसके हिस्से के रूप में, अगर आपको क्वेरी का रेफरेंस रखना पड़े
00:40:14और फिर उसे हर जगह पास करना पड़े, तो फिर
00:40:15हमने वाकई अपना लक्ष्य हासिल नहीं किया।
00:40:17तो विचार यह है कि अगर इस कंपोनेंट को कुछ डेटा चाहिए
00:40:20और इस कंपोनेंट को भी वही डेटा चाहिए,
00:40:22तो उन्हें एक-दूसरे से बात करने की ज़रूरत नहीं है।
00:40:24वे बस क्वेरी इंटरफेस के माध्यम से
00:40:28सिस्टम से डेटा मांग सकते हैं।
00:40:29और सिस्टम यह सुनिश्चित करने की ज़िम्मेदारी लेता है
00:40:32कि इसके लिए केवल एक ही रिक्वेस्ट भेजी जाए
00:40:34और उन दोनों कंपोनेंट्स के बीच डेटा में
00:40:36कोई विसंगति न हो।
00:40:40बहुत बढ़िया, धन्यवाद।
00:40:42और यह सवाल एनिमेशन और ट्रांज़िशन API पर है।
00:40:47क्या इसके लिए किसी बड़े बदलाव की योजना है?
00:40:49वे कहते हैं, मुझे अटैचमेंट के ज़रिए साइज़ के बीच
00:40:54फ्लिप पास करना थोड़ा मुश्किल लगा।
00:40:57मैं इस पर काम करने के लिए बहुत बेताब हूँ।
00:41:02लंबे समय से इसका इंतज़ार कर रहा हूँ।
00:41:04करने के लिए बहुत कुछ है।
00:41:06हाँ, बाकी सब चीज़ें रास्ते में आ रही हैं।
00:41:09अनिवार्य रूप से, जब हमने अटैचमेंट्स API डिज़ाइन किया था,
00:41:12तो बिल्कुल यही बात हमारे ध्यान में थी।
00:41:16ट्रांज़िशन और एनिमेशन, वे अच्छे हैं।
00:41:19और वे फ्रेमवर्क में इस तरह
00:41:21एकीकृत हैं कि कुछ चीज़ें करना बहुत आसान हो जाता है।
00:41:25लेकिन जैसे ही आप एक सीमा पार करते हैं,
00:41:28वे वाकई आपकी और मदद नहीं कर पाते।
00:41:29आपको उन पर ज़्यादा प्रोग्रामेटिक नियंत्रण की ज़रूरत होती है।
00:41:33और वहीं ट्रांज़िशन और एनिमेशन को
00:41:36परिभाषित करने के लिए एक प्रोग्रामेटिक API उपयोगी होगा।
00:41:42और अटैचमेंट्स API—
00:41:46विचार यह है कि भविष्य में अटैचमेंट्स API,
00:41:49एक ऐसे API के साथ मिलकर जो कहे,
00:41:52हे, जब मुझे DOM से हटाया जाए,
00:41:54तो एक मिनट रुकिए जब तक मैं थोड़ा फेड आउट
00:41:58या थोड़ा हलचल (shimmy) जैसा कुछ कर सकूँ।
00:42:00और उसके बाद आप मुझे DOM से हटा सकते हैं।
00:42:02यही वो चीज़ है जो इन अधिक उन्नत ट्रांज़िशन
00:42:06एनिमेशन परिदृश्यों को सक्षम करेगी।
00:42:09लेकिन हम अभी वहाँ नहीं पहुँचे हैं।
00:42:11इसकी योजना है।
00:42:12यह ज़रूर होगा।
00:42:13लेकिन मैं आपको इसकी कोई समय-सीमा नहीं दे सकता।
00:42:16निश्चित रूप से अगले दो या तीन महीनों में तो नहीं।
00:42:22अच्छा है।
00:42:22कम से कम यह हमारी नज़रों में तो है।
00:42:24हमें यह सुनकर खुशी हुई।
00:42:25बढ़िया।
00:42:25मुझे लगता है कि हमारे पास एक और सवाल के लिए समय है।
00:42:27तो, आखिरी सवाल।
00:42:29Svelte एग्नॉस्टिक (तटस्थ) है, लेकिन टीम के सदस्यों का
00:42:32पसंदीदा डेटाबेस कौन सा है?
00:42:34एक और राउंड-रॉबिन करते हैं।
00:42:37SQLite.
00:42:37मैंने अतीत में एक त्वरित प्रयोग के लिए Neon का उपयोग किया था,
00:42:47और वह वाकई बहुत अच्छा था।
00:42:50हाँ, SQLite अच्छा है।
00:42:53मैं असल में इन 'सिंक इंजनों' के
00:42:59बेहतरीन और व्यापक रूप से उपलब्ध होने का इंतज़ार कर रहा हूँ ताकि
00:43:02हम 'लोकल फर्स्ट' चीज़ें कर सकें।
00:43:05और फिर—सच कहूँ तो मुझे फर्क नहीं पड़ता,
00:43:09कि मैं बैकएंड में कौन सा डेटाबेस इस्तेमाल कर रहा हूँ।
00:43:13हाँ, मुझे लगता है—
00:43:15मुझे नहीं पता कि मेरा वाकई कोई एक पसंदीदा है क्योंकि—
00:43:18जब आप सिर्फ पूछते हैं, "आपका पसंदीदा डेटाबेस क्या है,"
00:43:22तो बहुत सारे अलग-अलग विकल्प होते हैं क्योंकि
00:43:24वे अलग-अलग काम बेहतर तरीके से करते हैं।
00:43:26इसलिए आपको वाकई यह पता होना चाहिए कि आप
00:43:28कोई डेटाबेस क्यों चुन रहे हैं, तभी आप किसी को पसंदीदा कह सकते हैं।
00:43:31मुझे 'लोकल फर्स्ट सिंक इंजन' के लिए Convex जैसी चीज़ें
00:43:36बहुत दिलचस्प लगती हैं।
00:43:38मुझे लगता है कि वे बहुत शानदार हैं और उनमें
00:43:41बहुत सारी अच्छी चीज़ें हैं।
00:43:42सामान्य कार्यों के लिए मेरा पसंदीदा डेटाबेस
00:43:45असल में Dynamo है।
00:43:47इसकी आदत डालने में थोड़ी झुंझलाहट हो सकती है,
00:43:49लेकिन यह बहुत तेज़ है।
00:43:51और यह बहुत अच्छी तरह से स्केल करता है।
00:43:55लेकिन मुझे SQL भी बहुत पसंद है।
00:43:58तो अगर मैं किसी प्रोजेक्ट के लिए SQL डेटाबेस का उपयोग कर सकता हूँ,
00:44:04तो मैं शायद उसी के साथ जाऊँगा क्योंकि मेरे करियर की शुरुआत
00:44:07डेटा एनालिटिक्स वगैरह से हुई थी।
00:44:09तो SQL वो चीज़ है जिसके साथ मैं बड़ा हुआ हूँ, मूल रूप से।
00:44:14तो हाँ, मुझे नहीं पता कि मेरा कोई एक पसंदीदा है,
00:44:16लेकिन मैं इसके बारे में इस तरह सोचता हूँ।
00:44:20बढ़िया।
00:44:20और हमारे पास पाओलो की एक टिप्पणी है।
00:44:23मुझे पता है कि आपने पहले उनका नाम लिया था।
00:44:24वे कहते हैं, "मुझे बहुत सारे रंग दिख रहे हैं।"
00:44:27क्या हमें यकीन है कि रिच, साइमन और इलियट Vercel के लिए काम करते हैं?
00:44:32मेरी कुर्सी काली है।
00:44:35हाँ, लेकिन पाओलो मुझ पर Vercel हुडी पहनने का दबाव डाल रहे थे,
00:44:38लेकिन यहाँ बहुत गर्मी है।
00:44:40ठीक है दोस्तों।
00:44:45लेकिन वह मेरी अलमारी में है, और मैं उसे
00:44:48तब निकालता हूँ जब दिन ठंडे होते हैं।
00:44:51यही हम सुनना चाहते थे, ब्रांड का प्रतिनिधित्व करना।
00:44:54अद्भुत।
00:44:55हाँ, मैं Svelte के भविष्य के लिए बहुत उत्साहित हूँ
00:44:58और हमारे साथ जुड़ने के लिए
00:45:01और पर्दे के पीछे आपकी कड़ी मेहनत के लिए वाकई आपकी सराहना करता हूँ।
00:45:03Svelte टीम के बाकी सदस्यों को भी
00:45:05बहुत-बहुत धन्यवाद जो लाइव में नहीं हैं, Svelte मेंटेनर्स।
00:45:09और शानदार Svelte कम्युनिटी को भी बहुत-बहुत सलाम।
00:45:11हाँ, आज हमारे साथ जुड़ने के लिए रिच, साइमन, इलियट का धन्यवाद।
00:45:16धन्यवाद।
00:45:17बाय।
00:45:18यह मेरा सौभाग्य है।
00:45:20ठीक है, और दर्शकों, अभी कहीं मत जाइए
00:45:23क्योंकि समापन से पहले, हमारे पास एक बहुत ही खास मेहमान है।
00:45:26हमारे पास Vercel एजुकेशन टीम से ईव हैं।
00:45:31नमस्ते।
00:45:32कैसा चल रहा है?
00:45:33नमस्ते, ईव।
00:45:33अच्छा है।
00:45:34आप कैसी हैं?
00:45:35मैं बहुत अच्छी हूँ।
00:45:36धन्यवाद।
00:45:36यह हर तरफ दिग्गजों (GOATs) की एक शानदार टीम है।
00:45:40हाँ।
00:45:41क्या शानदार अनुभव है।
00:45:44ठीक है।
00:45:45क्या आप हमें 'अकादमी' के बारे में
00:45:47और आप क्या नया ला रही हैं, उसके बारे में और बताना चाहेंगी?
00:45:49हाँ, मुझे बहुत खुशी होगी।
00:45:50अगर आपने नहीं सुना है, तो Vercel की अब एक अकादमी है।
00:45:55हमारे पास 11 कोर्स हैं जो लाइव हैं।
00:45:57उनमें से सबसे नया कोर्स आज लाइव हुआ है,
00:46:03जो है—तड़-तड़ा—'Svelte on Vercel' कोर्स।
00:46:10तो इसे पूरा करने में
00:46:13पूरी टीम ने बहुत मदद की है।
00:46:15इसमें हम एक 'स्की अलर्ट' ऐप बनाते हैं।
00:46:18तो अगर आप एक स्कीअर—
00:46:23ओह, हाँ।
00:46:25मेरी स्क्रीन शेयर हो रही है, मैं उसे दिखाती हूँ।
00:46:28बहुत बढ़िया।
00:46:29ओह, यह रहा।
00:46:30ये रहा।
00:46:31तो यह करना ज़्यादा रोमांचक है।
00:46:34Svelte on Vercel कोर्स लाइव है।
00:46:36इसमें आप एक स्की अलर्ट्स ऐप बनाने जा रहे हैं।
00:46:40आज की दुनिया में, अगर आप इस साल स्कीइंग कर रहे हैं,
00:46:43तो आप जानते हैं कि यह सीज़न काफी कठिन रहा है।
00:46:47बर्फ बहुत कम है।
00:46:48हर जगह बहुत गर्मी रही है।
00:46:50इसलिए यह बहुत ज़रूरी है कि आपको सूचित किया जाए
00:46:52कि स्कीइंग के लिए अच्छा दिन कब है।
00:46:54और इसलिए यह एक ऐप है जिसे हम पूरे कोर्स के दौरान
00:46:58इसी मकसद के लिए बनाते हैं।
00:46:59तो हमारे पास कई तरह के—आप विभिन्न स्थितियों के लिए
00:47:02अलग-अलग अलर्ट लिख सकते हैं ताकि
00:47:06जब स्कीइंग का दिन हो, तो आप वहाँ मौजूद हों,
00:47:10और आप उस संभावित दिन को बर्बाद न करें।
00:47:13तो हाँ, यह कोर्स Svelte के बारे में है।
00:47:17आप इसे Vercel पर कैसे डिप्लॉय करते हैं?
00:47:19आप AI SDK का उपयोग कैसे करते हैं?
00:47:21आप वर्कफ्लो का उपयोग कैसे करते हैं?
00:47:23और रास्ते में प्रोडक्शन के लिए कुछ टिप्स भी।
00:47:27अद्भुत।
00:47:28बेहतरीन।
00:47:29मैं निश्चित रूप से 'बनाकर सीखने' में गहरा विश्वास रखती हूँ।
00:47:31तो हाँ, यह शानदार है।
00:47:33बहुत-बहुत धन्यवाद।
00:47:34और हम कोर्स का एक लिंक भी
00:47:36लाइव रिसोर्सेज में जोड़ देंगे।
00:47:38तो हाँ, आज हमारे साथ जुड़ने के लिए धन्यवाद, ईव।
00:47:41अद्भुत।
00:47:41बहुत-बहुत धन्यवाद।
00:47:42ठीक है।
00:47:46और इसी के साथ हम अपने लाइव सेशन के अंत में पहुँच गए हैं।
00:47:49हमारे साथ समय बिताने के लिए
00:47:51हमारी कम्युनिटी का बहुत-बहुत धन्यवाद।
00:47:52मैं झूठ नहीं बोलूँगा, आज चैट में बहुत हलचल थी।
00:47:54तो यह देखकर बहुत अच्छा लगा।
00:47:56हाँ, हमें उम्मीद है कि आपने इसका आनंद लिया होगा।
00:47:58और रिच हैरिस के शब्दों में, "Svelte जीने का एक तरीका है।"
00:48:02तो जाइए और इसका अनुभव लीजिए।
00:48:03जाइए और Svelte के साथ नई चीज़ें बनाइए।
00:48:05अगर आप हमारे भविष्य के कम्युनिटी सेशन्स में शामिल होना चाहते हैं,
00:48:08तो आप हमारे कम्युनिटी प्लेटफॉर्म
00:48:11[community.vercel.com/live](https://community.vercel.com/live) पर सारी जानकारी पा सकते हैं।
00:48:13हाँ, आप सभी का धन्यवाद।
00:48:15फिर मिलते हैं।
00:48:16बाय।

Key Takeaway

यह सत्र Svelte और SvelteKit के भविष्य पर केंद्रित है, जिसमें असिंक्रोनस क्षमताओं, रिमोट फंक्शन्स और AI एकीकरण के माध्यम से डेवलपर अनुभव को सरल और शक्तिशाली बनाने पर जोर दिया गया है।

Highlights

Svelte एक 'कंपाइलर-फर्स्ट' डिजाइन वाला फ्रेमवर्क है जो डिक्लेरेटिव कोड को कुशल वैनिला जावास्क्रिप्ट में बदलता है।

असिंक्रोनस Svelte (Async Svelte) का परिचय दिया गया, जो सीधे कंपोनेंट्स के अंदर 'Await' कीवर्ड के उपयोग की अनुमति देता है।

रिमोट फंक्शन्स (Remote Functions) क्लाइंट और सर्वर के बीच की बाधा को खत्म करते हैं, जिससे सर्वर-साइड कोड को सीधे कॉल करना संभव होता है।

Svelte टीम ने AI एजेंटों के लिए विशिष्ट MCP सर्वर और टूल्स विकसित किए हैं ताकि कोडिंग के दौरान बेहतर सहायता मिल सके।

SvelteKit 3 की घोषणा की गई, जिसमें एनवायरनमेंट API और Svelte 5 की आवश्यकता जैसे महत्वपूर्ण बदलाव शामिल होंगे।

Vercel ने 'Svelte on Vercel' नामक एक नया कोर्स लॉन्च किया है, जहाँ छात्र स्की अलर्ट ऐप बनाकर सीख सकते हैं।

Timeline

परिचय और वक्ताओं का स्वागत

सत्र की शुरुआत माया एवेंडानो द्वारा बेसेल (Vercel) कम्युनिटी प्लेटफॉर्म के परिचय के साथ होती है। वह Svelte टीम के मुख्य सदस्यों—रिच हैरिस, साइमन और इलियट का स्वागत करती हैं। रिच बताते हैं कि उन्होंने 2016 में विजुअल जर्नलिज्म के लिए Svelte की शुरुआत की थी। साइमन और इलियट अपने अनुभव साझा करते हैं कि कैसे वे इस फ्रेमवर्क से जुड़े और अब फुल-टाइम मेंटेनर के रूप में काम कर रहे हैं। यह खंड टीम की पृष्ठभूमि और Svelte के विकास की कहानी को समझने के लिए महत्वपूर्ण है।

Svelte और SvelteKit का बुनियादी ढांचा

रिच हैरिस Svelte को एक डिक्लेरेटिव कंपोनेंट फ्रेमवर्क के रूप में समझाते हैं जो अन्य फ्रेमवर्क्स से अलग 'कंपाइलर-फर्स्ट' दृष्टिकोण अपनाता है। वह बताते हैं कि SvelteKit राउटिंग, सर्वर-साइड रेंडरिंग और डेटा लोडिंग जैसी सुविधाएँ प्रदान करता है, जो Next.js के समान है। Svelte का मुख्य लाभ इसकी संक्षिप्तता और प्रदर्शन में है क्योंकि यह रनटाइम के बजाय बिल्ड टाइम पर काम करता है। यह अनुभाग नए डेवलपर्स के लिए फ्रेमवर्क के मुख्य दर्शन को स्पष्ट करता है। इसमें बताया गया है कि कैसे यह डिक्लेरेटिव इरादे को कुशल आउटपुट में बदलता है।

असिंक्रोनस Svelte (Async Svelte) का लाइव डेमो

रिच हैरिस एक लाइव कोडिंग डेमो दिखाते हैं कि कैसे असिंक्रोनस Svelte जटिल स्टेट मैनेजमेंट को आसान बनाता है। वह 'Await' कीवर्ड का उपयोग करके सीधे टेम्पलेट में डेटा फेच करने और उसे रेंडर करने की प्रक्रिया प्रदर्शित करते हैं। डेमो में 'Abort Signal' का उपयोग करके पुराने अनुरोधों को रद्द करने और 'pending' स्टेट के आधार पर लोडिंग एनिमेशन दिखाने के तरीके भी शामिल हैं। यह तकनीक 'useEffect' जैसे पारंपरिक हुक की तुलना में कोड को बहुत सरल और पठनीय बनाती है। अंत में, वह दिखाते हैं कि कैसे इमेज प्रीलोडिंग और सर्वर-साइड रेंडरिंग के साथ यह सुचारू रूप से काम करता है।

रिमोट फंक्शन्स और सर्वर इंटरेक्शन

साइमन रिमोट फंक्शन्स का डेमो देते हैं, जो SvelteKit में एक प्रायोगिक लेकिन शक्तिशाली विशेषता है। वह दिखाते हैं कि कैसे सर्वर-साइड फंक्शन को सीधे क्लाइंट-साइड कोड में इंपोर्ट और कॉल किया जा सकता है। इसमें एक काउंटर का उदाहरण दिया गया है जहाँ गिनती सर्वर पर अपडेट होती है और क्लाइंट को बिना किसी अतिरिक्त API एंडपॉइंट के अपडेट मिलता है। यह 'सिंगल-फ्लाइट म्यूटेशन' की अवधारणा को पेश करता है, जहाँ डेटा अपडेट और रिफ्रेश एक साथ होते हैं। यह तकनीक क्लाइंट-सर्वर की सीमाओं को धुंधला कर देती है और विकास की गति को बढ़ाती है।

Svelte के लिए AI और MCP टूल्स

इलियट AI विकास और 'Model Context Protocol' (MCP) के साथ Svelte के एकीकरण पर चर्चा करते हैं। वह बताते हैं कि कैसे उनके टूल्स AI एजेंटों को Svelte डॉक्यूमेंटेशन को बेहतर ढंग से पढ़ने और सर्वोत्तम प्रथाओं का पालन करने में मदद करते हैं। एक 'आर्टिसनल पोटैटो कैनन' स्टोरफ्रंट का उदाहरण दिया गया है जिसे AI ने रिमोट फंक्शन्स का उपयोग करके बहुत कम समय में बनाया है। टीम का उद्देश्य AI और इंसानों दोनों के लिए Svelte को एक उत्कृष्ट विकल्प बनाना है। यह खंड आधुनिक सॉफ्टवेयर विकास में AI की भूमिका और Svelte की तैयारी को दर्शाता है।

प्रश्न-उत्तर और भविष्य की योजनाएं

इस सत्र में कम्युनिटी के सवालों के जवाब दिए गए, जिसमें रिमोट फंक्शन्स के लिए स्ट्रीमिंग और कैशिंग API पर चर्चा हुई। रिच ने बताया कि SvelteKit 3 जल्द ही आ रहा है जो पुराने फीचर्स को हटाकर भविष्य के नवाचारों के लिए रास्ता साफ करेगा। टीम ने Svelte चुनने के पीछे के दर्शन पर भी बात की, जिसमें उन्होंने 'मज़ा' और 'उत्पादकता' को प्राथमिकता दी। डेटाबेस वरीयताओं पर चर्चा हुई जहाँ SQLite और DynamoDB जैसे विकल्पों का उल्लेख किया गया। यह हिस्सा कम्युनिटी की जिज्ञासाओं और फ्रेमवर्क के रोडमैप को समझने के लिए अत्यंत उपयोगी है।

Vercel अकादमी और Svelte कोर्स लॉन्च

अंतिम खंड में Vercel एजुकेशन टीम से ईव एक नए 'Svelte on Vercel' कोर्स की घोषणा करती हैं। यह कोर्स 11 अन्य कोर्सेज के साथ उपलब्ध है और इसमें व्यावहारिक अनुभव के लिए एक 'स्की अलर्ट' ऐप बनाना सिखाया जाता है। इसमें AI SDK, वर्कफ़्लो और प्रोडक्शन डिप्लॉयमेंट जैसे विषयों को कवर किया गया है। माया और ईव 'बनाकर सीखने' (learning by doing) के महत्व पर जोर देती हैं। सत्र का समापन रिच हैरिस के प्रेरणादायक शब्दों 'Svelte जीने का एक तरीका है' के साथ होता है।

Community Posts

View all posts