विनाशकारी पैटर्न का उपयोग करके एक कोड क्लीनर लिखना
आप शायद जावास्क्रिप्ट में पुनर्गठन से पहले से परिचित हैं। यह ईएस 6 विनिर्देश में 2015 में हमारे पास आया था, लेकिन अगर आपको अपने ज्ञान को ताज़ा करने की आवश्यकता है, तो मोज़िला वेबसाइट पर आप एक विस्तृत विस्तृत लेख पढ़ सकते हैं कि यह कैसे काम करता है ।
लेकिन यह जानना कि यह कैसे काम करता है, यह जानने के लिए समान नहीं है कि इसका उपयोग कैसे किया जाए। यहां आपके कोड क्लीनर को अधिक विश्वसनीय, और पढ़ने में आसान बनाने में मदद करने के लिए तीन पैटर्न हैं!
1. नामित फ़ंक्शन तर्क
नामांकित तर्क फ़ंक्शन मापदंडों को स्थितिगत तर्कों को संभालने का एक वैकल्पिक तरीका है। एक अच्छी तरह से परिभाषित क्रम में तर्कों को निर्दिष्ट करने के बजाय, बस अपना नाम प्रदान करें। उदाहरण के लिए, पायथन में, यह इस तरह दिखता है:
def sum(a=1,b=2,c=3): return a+b+c sum(b=5,a=10)
आप देखते हैं? यदि आप स्पष्ट रूप से पैरामीटर नाम निर्दिष्ट करते हैं तो आदेश महत्वपूर्ण नहीं है। स्थैतिक तर्कों पर लाभ यह है कि:
- किसी फ़ंक्शन को कॉल करते समय आप एक या अधिक मापदंडों को छोड़ सकते हैं
- तर्कों को पारित करने का आदेश अब महत्वपूर्ण नहीं है
- कोड अधिक पठनीय हो गया है
यद्यपि मूल नाम के तर्क जावास्क्रिप्ट में समर्थित नहीं हैं, हम उपरोक्त तीनों लाभों को प्राप्त करने के लिए विनाशकारी पैटर्न का उपयोग कर सकते हैं। यह जावास्क्रिप्ट में पहले से ही अंतिम उदाहरण होगा:
function sum({a = 1, b = 2, c = 3}) { return a + b + c } sum({b: 10, a: 5})
सभी लक्ष्यों को प्राप्त कर लिया गया है: आप सी को छोड़ सकते हैं, अब आदेश महत्वपूर्ण नहीं है, और उनके स्वयं के नामों के बाद तर्क दिए गए हैं। यह सब विनाश के कारण ठीक संभव है।
2. क्लीनर सर्वर प्रतिक्रिया पार्सिंग
अक्सर, सर्वर की प्रतिक्रिया में, हम केवल एक डेटा ब्लॉक या इस ब्लॉक से केवल एक विशिष्ट मूल्य में रुचि रखते हैं। यदि यह आपका मामला है, तो सर्वर द्वारा आमतौर पर भेजे जाने वाले अन्य सभी चीज़ों को अनदेखा करने के लिए विनाशकारी का उपयोग करें। एक उदाहरण:
function mockServerCall () { return new Promise((resolve, reject) => { setTimeout(() => { resolve({ 'status': 200, 'content-type': 'application/json', 'data' : { dataOfInterest: 42 } }) }, 250) }) } mockServerCall() .then(({data: { dataOfInterest = 100 }}) => { console.log(dataOfInterest)
यह पैटर्न आपको हमारी रुचियों के डेटा को बाहर निकालने की अनुमति देता है क्योंकि तर्कों को पार्स किया जाता है। और आपको एक बोनस के रूप में डिफ़ॉल्ट मानों को समायोजित करने का अवसर मिलता है। जो आसानी से हमें अगले पैटर्न में लाता है ...
असाइनमेंट के दौरान डिफ़ॉल्ट मान सेट करना
यदि नाम स्थान में कोई चर मौजूद नहीं है, तो हमें अक्सर इसके डिफ़ॉल्ट मान पर सेट करने की आवश्यकता होती है।
विनाशकारी आने से पहले आप कुछ ऐसा कर सकते हैं:
लेकिन इस दृष्टिकोण को प्रत्येक असाइनमेंट के लिए कोड की एक पंक्ति की आवश्यकता होगी। विनाशकारी आप एक झपट्टा में सब कुछ करने की अनुमति देगा:
const userSettings = {nightMode: true, fontSize: 'large'} const { nightMode = false, language = 'en', fontSize = 'normal' } = userSettings console.log(nightMode)
इस पैटर्न का उपयोग अभिक्रिया की स्थिति को सेट करने के लिए किया जा सकता है !
मुझे उम्मीद है कि ये पैटर्न काम आएंगे! विनाशकारी के बारे में अधिक पढ़ने के लिए, नीचे दिए गए लिंक का पालन करें (अंग्रेजी में जानकारी - लगभग अनुवाद।)।
ES6 गहराई में: विनाशकारी
प्रतिक्रिया में विनाशकारी सहारा की मूल बातें जानें