- JavaScript अपडेट प्रक्रिया को अधिक तेज़ और सुचारु बनाने के लिए TC39 समिति ने नया स्टेज "2.7" जोड़ा है
- अपडेट की पृष्ठभूमि
- ECMAScript 2015 के बाद से JavaScript को हर साल नए अपडेट मिलते रहे हैं
- TC39 समिति ने भाषा को बेहतर बनाने के लिए मानकीकरण कार्य में बड़ा प्रयास किया है
- नई सुविधाओं के गहन डिज़ाइन, परीक्षण और इम्प्लीमेंटेशन को सुनिश्चित करने के लिए बहु-स्तरीय प्रक्रिया अपनाई गई
गुणवत्ता और संगतता के लिए चरणबद्ध प्रक्रिया
- Stage 0: नई सुविधा के आइडिया की खोज और समस्या की परिभाषा
- Stage 1: स्पष्ट विवरण और संभावित मुद्दों सहित, सुविधा की उपयोगिता समझाने वाली repository और एक "champion" होना चाहिए
- Stage 2: specification के लिए शुरुआती डिज़ाइन draft. समिति को उम्मीद होती है कि यह सुविधा भाषा का हिस्सा बनेगी
- Stage 3: candidate proposal के रूप में सुविधा लगभग पूरी हो चुकी होती है, लेकिन browser या server-side runtime में इम्प्लीमेंटेशन के जरिए वास्तविक अनुभव की ज़रूरत होती है
- Stage 4: specification पर सारा काम पूरा हो चुका है और यह पूरी भाषा specification में शामिल होने के लिए तैयार है. यह अंतिम स्वीकृति चरण है
स्पष्ट माइलस्टोन के रूप में परीक्षण
- मूल प्रक्रिया में Stage 3 तक पहुँचने पर कभी-कभी परीक्षणों को फिर से लिखना पड़ता था
- खासकर बड़े proposals में, जब डिज़ाइन बदलना पड़ता था, तब Stage 3 से वापस Stage 2 पर जाना अधिक कठिन महसूस होता था
- परीक्षण लिखने में काफ़ी काम लगता है, इसलिए अगर यह दो बार करना पड़े तो stages के बीच आगे बढ़ना अपेक्षा से अधिक कठिन हो जाता है
- नया Stage 2.7 परीक्षण चरण को इम्प्लीमेंटेशन से अलग करने के लिए लाया गया है
Stage 2.7 की आवश्यकताएँ
- "सिद्धांततः" स्वीकृत, लेकिन सत्यापन अभी भी आवश्यक है
- परीक्षण लिखना सुविधा के डिज़ाइन के सभी परिणामों पर विचार करने के सबसे अच्छे तरीकों में से एक है. कुछ सुविधाओं के लिए डिज़ाइन पूरा होने से पहले भी परीक्षण लिखना ज़रूरी हो सकता है
- पूरा test suite और prototype विकसित करना होगा, और यह दिखाने के लिए पर्याप्त अनुभव होना चाहिए कि इसे इम्प्लीमेंट किया जा सकता है
- सुविधा specification का टेक्स्ट पूरा हो चुका है, और TC39 समिति परीक्षण, इम्प्लीमेंटेशन और उपयोग के दौरान सामने आने वाले बदलावों के अलावा अन्य बदलाव नहीं चाहती
- Stage 2.7 अनावश्यक दोहराव वाले काम को कम करता है और proposal को सीधे Stage 3 में जाने में मदद करता है
- अब Stage 3 का फोकस इम्प्लीमेंटेशन का अनुभव प्राप्त करना और web compatibility या integration समस्याओं का पता लगाना है
Stage 2.7 का वास्तविक उपयोग
- Stage 2.7 जोड़ते समय TC39 समिति ने मौजूदा सभी Stage 3 proposals की समीक्षा की. कुछ प्रोजेक्ट्स ने सभी परीक्षण check in नहीं किए थे, लेकिन वे लगभग तैयार थे, इसलिए उन्हें Stage 3 में ही रखा गया
- deferred import proposal और Math.sumPrecise method जैसे कुछ proposals पहले ही Stage 2.7 तक पहुँच चुके हैं
- regular expression में string escape को सपोर्ट करने वाला Regexp.escape Stage 2.7 तक पहुँचा और test suite के साथ Stage 3 में चला गया
- दूसरी ओर, "microwaits" proposal (जिसका वर्तमान नाम atomics.pause है) ऐसा मामला था जिसमें उपयोगी परीक्षण लिखना कठिन था. यह हाल ही में Stage 2.7 में गया, और चर्चा का बड़ा हिस्सा इस बात पर था कि इम्प्लीमेंटेशन के लिए specification में किस तरह के नोट्स जोड़े जाएँ
अभी कोई टिप्पणी नहीं है.