मैं अक्सर "स्टब", "स्टब समथिंग आउट", "स्टब्स", और इसके आगे का शब्द सुनता हूं।
प्रोग्रामिंग में स्टबिंग का क्या अर्थ है, और शब्द कहां से आता है? इसे किन संदर्भों में इस्तेमाल किया जा सकता है?
मैं अक्सर "स्टब", "स्टब समथिंग आउट", "स्टब्स", और इसके आगे का शब्द सुनता हूं।
प्रोग्रामिंग में स्टबिंग का क्या अर्थ है, और शब्द कहां से आता है? इसे किन संदर्भों में इस्तेमाल किया जा सकता है?
जवाबों:
स्टब विधि एक ऐसी विधि है जो सिर्फ एक साधारण लेकिन वैध (हालांकि जरूरी नहीं कि सही) परिणाम लौटाए।
वे आमतौर पर बुनियादी ढांचे का निर्माण करते समय बनाए जाते हैं और आप अभी आवश्यक हर विधि पर समय नहीं बिताना चाहते हैं। इसके बजाय आप स्टब्स बनाते हैं, इसलिए सब कुछ संकलित करता है और आपके आईडीई का ऑटो-पूरा उन तरीकों के बारे में जानता है जिन्हें आप उपयोग करने की योजना बना रहे हैं।
एक और जगह जहां स्टब्स का उपयोग किया जाता है, परीक्षण करते समय मॉकिंग में होता है, आप निर्भरता इंजेक्शन के माध्यम से सामान्य निर्भरता के बजाय स्टब तरीकों की आपूर्ति करते हैं जो निश्चित परिणाम लौटाते हैं और फिर यह सुनिश्चित करते हैं कि कोड उनके साथ सही काम करता है। यह उस कोड के परीक्षण को अलग करता है जिसे आप परीक्षण करने का प्रयास कर रहे हैं और इसका मतलब है कि आपको उन परीक्षणों को चलाने के लिए डेटाबेस को स्पिन करने की आवश्यकता नहीं है।
शायद यह एक ठोस उदाहरण के साथ सबसे अच्छा उत्तर दिया गया है। आइए उस मामले पर विचार करें जहां आप एक डेस्कटॉप एप्लिकेशन बना रहे हैं। आपने एक फ़ंक्शन का नाम तय किया है createMenubar
, createToolbar
और createMain
ताकि आपका एप्लिकेशन निर्माता साफ-सुथरा हो।
आपका मुख्य कोड कुछ इस तरह दिखाई देगा (यह उदाहरण अजगर में है):
class ExampleApp():
def __init__(self):
self.createMenubar()
self.createToolbar()
self.createMain()
जब तक आपके पास सब कुछ काम नहीं करता, तब तक आपका मुख्य कार्य विफल हो जाएगा, इसलिए आप विकास के दौरान अपने ऐप का परीक्षण कैसे कर सकते हैं? उदाहरण के लिए, यदि आपने काम करना शुरू कर दिया है createMenubar
, तो मेन्यूबार बनाने के बाद आरंभीकरण विफल हो जाएगा क्योंकि आपने जीयूआई के टूलबार या मुख्य क्षेत्र को लागू नहीं किया है।
यह वह जगह है जहाँ स्टब्स आते हैं। आप नाम से एक फंक्शन बना सकते हैं createToolbar
और createMain
यह ऐप कंस्ट्रक्टर की आवश्यकता को पूरा करता है (अर्थात, ये फ़ंक्शन मौजूद हैं), वास्तव में उन्हें लागू किए बिना। ये कार्य स्टब्स हैं:
def createToolbar():
pass
def createMain():
pass
जगह में उन स्टब्स के साथ आप टूलबार या कार्यक्रम के मुख्य भाग के विवरण के बारे में चिंता किए बिना, मुख्य कार्यक्रम और मेनूबार को लागू करना शुरू कर सकते हैं। आखिरकार आप टूलबार पर जाएंगे, और स्टब को वास्तविक फ़ंक्शन से बदल देंगे। और अंत में, आप के लिए स्टब को हटा createMain
देंगे और इसे एक वास्तविक कार्यान्वयन देंगे।
ध्यान दें कि स्टब्स को जरूरी कुछ नहीं करना है। उदाहरण के लिए, ये स्टब एक खाली कंटेनर विजेट बना सकता है जिसे ऐप कंस्ट्रक्टर बाहर रख सकता है। मुद्दा यह है कि आप ऐसे डमी फ़ंक्शंस या ऑब्जेक्ट बनाते हैं जो आपके विकास करते समय आपके अन्य कोड को चलने देने के लिए पर्याप्त हैं। समय के साथ आप स्टब्स को एक-एक करके बदल देते हैं जब तक कि आपका आवेदन पूरा न हो जाए।
"टॉप डाउन" प्रोग्रामिंग में "स्टब" का उपयोग किया जाता है। जब आप अपने एप्लिकेशन को सामान्य से विशिष्ट में बना रहे हैं। ऐसा करने में, आप उन विशिष्ट अनुप्रयोगों के लिए "स्टब्स" का उपयोग "प्लेसहोल्डर" के रूप में करेंगे जिनके पास आपके पास निर्माण करने का समय नहीं है। वे अक्सर कार्यक्रम के अधिक सामान्य हिस्से में डमी या यादृच्छिक मूल्यों जैसी चीजें वापस करते हैं। यह सब ठीक है, स्टब कार्यक्रम के काम का अधिक "वरिष्ठ" हिस्सा बनाने के लिए पर्याप्त मूल्य का भोजन करता है। जब तक यह ठूंठ को प्रतिस्थापित करने या इसकी सही गणना या मूल्य के साथ फिट होने का समय नहीं है।