ऐप इन्वेंटर में अपना कोड डीबग करना

अपने कोड को डीबग करने और MIT ऐप आविष्कारक में त्रुटियों को ठीक करने के लिए युक्तियाँ जानें

डिबगिंग क्या है?

डिबगिंग वह प्रक्रिया है जिसका उपयोग कोडर्स यह पता लगाने के लिए करते हैं कि उनका कोड क्यों काम नहीं कर रहा है, और फिर इसे ठीक करें ताकि यह काम करे।

डिबगिंग शब्द कंप्यूटिंग में अग्रणी एडमिरल ग्रेस हॉपर से आया है। वह 1940 के दशक में हार्वर्ड विश्वविद्यालय में मार्क II कंप्यूटर पर काम कर रही थीं और एक पतंगा कंप्यूटर में फंस गया और उसे काम करने से रोक दिया।

पतंगे से छुटकारा पाकर, उसने कहा कि वे सिस्टम को "डिबगिंग" कर रहे थे। प्रोग्रामर अब इस शब्द का उपयोग "मेरे कोड में त्रुटियों को ठीक करने" के लिए करते हैं।

Grace Hopper

कोडिंग टिप्स

dog looking at computer

डिबगिंग अक्सर कोडिंग का सबसे निराशाजनक और समय लेने वाला हिस्सा हो सकता है, इसलिए इसके लिए पर्याप्त समय छोड़ना वास्तव में महत्वपूर्ण है!

और धैर्य रखने के लिए भी!

छोटे टुकड़े

कभी-कभी प्रोग्रामर अपने पूरे ऐप को एक बार में कोड करने के लिए ललचाते हैं, फिर उसका परीक्षण करते हैं।

उस प्रलोभन के झांसे में मत आओ!!

यदि कुछ सही ढंग से काम नहीं करता है, जिसकी संभावना है, तो यह पता लगाना मुश्किल है कि त्रुटि को ठीक करने का प्रयास करने के लिए कहां से शुरू करें। 

chunks of chocolate

अपने ऐप के लिए कोडिंग को छोटे-छोटे टुकड़ों में तोड़ें। 

अगली चीज़ पर शुरू करने से पहले एक चीज़ पर काम करें। 

थोड़ा सा कोड करें, थोड़ा परीक्षण करें, पुष्टि करें कि यह काम करता है, फिर थोड़ा और कोड करें, थोड़ा और परीक्षण करें, आदि। 

उदाहरण के लिए, यदि आपके ऐप में 5 बटन हैं जो सभी अलग-अलग काम करते हैं,

  1. पहले बटन के लिए कार्रवाई कोड करें
  2. फिर यह सुनिश्चित करने के लिए परीक्षण करें कि यह काम करता है।
  3. दूसरे बटन पर ले जाएँ
  4. दोहराना।

यदि आपके कोड में कोई त्रुटि है तो वापस जाने और इसे 5 स्थानों पर ठीक करने की तुलना में एक स्थान पर कोड को ठीक करना बेहतर है।

app with 5 buttons

संस्करण नियंत्रण

it began as a mistake

मान लें कि आप "छोटे हिस्से" नियम का पालन करते हैं और आपके ऐप का एक हिस्सा बनाया और काम कर रहा है।

आप कुछ नया कोड जोड़ते हैं और अचानक सब कुछ काम करना बंद कर देता है। 

अरे नहीं!

आप नया कोड हटाने की कोशिश करते हैं लेकिन आपका ऐप अभी भी काम नहीं कर रहा है। आप सुनिश्चित नहीं हैं कि क्या गलत हुआ और काश आपके पास "पूर्ववत करें" बटन होता।

इस तरह के परिदृश्यों से बचने के लिए, आप अपने ऐप के संस्करणों को सहेज सकते हैं क्योंकि आपको भागों पर काम करना पड़ता है। 

इस तरह यदि आप कोई गलती करते हैं और यह नहीं जानते कि इसे कैसे ठीक किया जाए, तो आप अपने द्वारा सहेजे गए अंतिम कार्यशील संस्करण पर वापस जा सकते हैं।

आप अपने कार्यशील ऐप को तोड़ने की चिंता किए बिना नई सुविधाओं के साथ प्रयोग करने के लिए संस्करण नियंत्रण का भी उपयोग कर सकते हैं।

ऐप आविष्कारक में विभिन्न संस्करणों को सहेजने के दो तरीके हैं, "इस रूप में सहेजें" और "चेकपॉइंट" का उपयोग करके।

"चेकपॉइंट" विकल्प आप इसे जो भी नाम देते हैं, उसके साथ एक प्रति सहेज लेगा, लेकिन आप मूल में काम करना जारी रखते हैं। विचार उस संस्करण को "चेकपॉइंट" करना है जो काम करता है और परियोजना के मुख्य संस्करण में आपके विकास को जारी रखता है।

Project menu, checkpoint selected

"प्रोजेक्ट को इस रूप में सहेजें" विकल्प उस कोड की एक प्रति बनाएगा जिस पर आप काम कर रहे हैं और इसे एक नए नाम के तहत सहेजें। आपके द्वारा किया गया कोई भी संपादन नई कॉपी में होगा।

project menu, save as selected

ब्लॉक संक्षिप्त करें

ब्लॉक को ढहना आपके कोड को व्यवस्थित रखने का एक तरीका है, क्योंकि आपका कोड कार्यक्षेत्र ब्लॉकों के साथ भीड़ प्राप्त करना शुरू कर देता है।

यदि आप किसी ब्लॉक पर राइट-क्लिक करते हैं, तो आपको इसे संक्षिप्त करने का विकल्प दिखाई देगा।

अपने ब्लॉक को फिर से विस्तृत करने के लिए, उन पर राइट-क्लिक करें और ब्लॉक का विस्तार करें चुनें।

app inventor expanding a block

ढह गए ब्लॉक इसे आपकी स्क्रीन पर एक बार तक संपीड़ित कर देंगे।

वे अभी भी नियमित ब्लॉक के समान काम करते हैं, वे बस कम जगह लेते हैं। यह मददगार हो सकता है यदि आपके पास ऐसे ब्लॉक हैं जिन्हें अब आपको संपादित करने की आवश्यकता नहीं है और आप अपनी स्क्रीन को साफ करना चाहते हैं

collapsed block

ब्लॉक अक्षम करें

आप ब्लॉक को अक्षम भी कर सकते हैं।

वे आपकी स्क्रीन पर बने रहते हैं लेकिन ऐप में नहीं चलते हैं।

अक्षम ब्लॉक के साथ, आप कुछ कोड ब्लॉक के बिना अपने ऐप का परीक्षण कर सकते हैं। आप उन्हें बाद में सक्षम कर सकते हैं और वे चलेंगे।

आप उन ब्लॉक को भी अक्षम कर सकते हैं जिनका उपयोग आपने केवल परीक्षण के लिए किया है, जैसे नोटिफ़ायर।

ऐप आविष्कारक में ब्लॉक को अक्षम करने के दो तरीके हैं

बस ब्लॉक को ईवेंट हैंडलर ब्लॉक से बाहर खींचने से उन्हें अक्षम कर दिया जाएगा और उन्हें चलने से रोका जा सकेगा। क्योंकि वे किसी भी घटना का हिस्सा नहीं हैं, ऐसा कोई तरीका नहीं है कि वे कभी भी निष्पादित करेंगे। आप उनका उपयोग करने के लिए उन्हें हमेशा वापस स्नैप कर सकते हैं।

disabled block by dragging out of event block

आप ब्लॉक या ब्लॉक के समूह पर राइट-क्लिक भी कर सकते हैं और "ब्लॉक अक्षम करें" चुन सकते हैं। ब्लॉक यह दिखाने के लिए धूसर दिखाई देंगे कि वे निष्पादित नहीं होंगे। इस तरह आप ब्लॉक के पूरे सेट को अक्षम कर सकते हैं।

अपने ब्लॉक को फिर से सक्षम करने के लिए, बस राइट-क्लिक करें और "ब्लॉक सक्षम करें" चुनें।

टिप्पणियाँ

प्रोग्रामर अक्सर अपने कोड में टिप्पणी छोड़ते हैं कि यह क्या करता है। 

टिप्पणियाँ तब सहायक हो सकती हैं जब अन्य लोग आपके कोड को देख रहे हों, जैसे कि टीम के साथी, संरक्षक और न्यायाधीश

टिप्पणियाँ भी मदद कर सकती हैं यदि आप बाद में अपने कोड पर लौटते हैं और भूल जाते हैं कि इसके कौन से हिस्से हैं।

टिप्पणी जोड़ने के लिए, ब्लॉक पर राइट-क्लिक करें और "टिप्पणी जोड़ें" चुनें।

उसके बाद, ब्लॉक के कोने में एक प्रश्न चिह्न दिखाई देगा और आप टेक्स्ट जोड़ सकते हैं। आप प्रश्न चिह्न पर क्लिक करके टिप्पणी देख सकते हैं।

सबसे सही तरीके: प्रोग्रामिंग में टिप्पणियाँ सबसे उपयोगी चीज हैं।

कई बार ऐसा हुआ है जब एक कोडर ने कुछ कोड किया है और फिर सो गया है और अगली सुबह वापस आ गया है और इस बारे में कोई सुराग नहीं है कि वे रात पहले क्या कर रहे थे। हमेशा टिप्पणी लिखें!

It’s also a great way to check your knowledge, because if your coding blocks are easy to comment on then you must understand them really well! Another thing to be aware of is that <, >, =, ≤, ≥ are hard for students for the first time (and for programmers who are years into their careers). When we set a math statement to < when it should be ≤ this is called an “off by one” error and this is a problem that happens to developers with 20 years of experience 😛 It is a very popular problem so be on the lookout for that. 

डिबगिंग का सबसे अच्छा प्रकार रबर बतख डिबगिंग है! यह वह जगह है जहां आप वास्तव में अपने कोड में फंस गए हैं और इसका कोई मतलब नहीं है। आप किसी और के साथ बात करने के लिए कुछ समय लेना चाहते हैं, यह देखने के लिए कि क्या वे समस्या को देख सकते हैं लेकिन दुर्भाग्य से कोई भी आसपास नहीं है! तो आपके डेस्क पर एक भरोसेमंद रबर बतख है और आप अपने बतख मित्र को समस्या को जोर से समझाते हैं। हालांकि उन्हें समझने के लिए आपको इसे बहुत सरल शब्दों में करना होगा और फिर उसके बाद आपको समस्या स्वयं मिल जाएगी! मेरे सभी सहकर्मियों के पास हमारे डेस्क पर रबर बतख हैं और अक्सर ऐसा करते हैं!

छात्रों से पूछने के लिए मार्गदर्शक प्रश्न: आपको क्या लगता है कि बग को डीबग करने में अनुभवी कोडर्स को कितना समय लगता है? आपको लगता है कि वे वास्तव में इस पर तेजी से प्राप्त कर सकते हैं, लेकिन प्रत्येक बड़ी साइट में यह देखने के लिए समर्पित पृष्ठ हैं कि बग कितने समय तक अस्तित्व में हैं (उदाहरण के लिए फेसबुक) और वे यह भी दिखाएंगे कि क्या उनका कोई पृष्ठ नीचे / टूटा हुआ है और वे वर्तमान में डिबगिंग कर रहे हैं (फेसबुक उदाहरण)।

आप बग कैसे ढूंढते हैं? (बहुत सारे और बहुत सारे परीक्षण!) आपको क्या लगता है कि आपको कितना परीक्षण करना चाहिए? आपको अन्य लोगों को कितना परीक्षण करना चाहिए?

आपको कैसे पता चलेगा कि आपको बग कब मिला है? कभी-कभी आप केवल यह महसूस करने के लिए एक छवि पर क्लिक करने में हमेशा के लिए खर्च कर सकते हैं कि जिस बटन पर आप क्लिक करने वाले हैं वह छवि के नीचे है। क्या यह एक बग है? यह एक डिज़ाइन विकल्प है जिसे ऐप निर्माता ने बनाया है और उन्हें नहीं लगता कि यह एक बग है लेकिन आप कर सकते हैं।

AmeriCorps के समर्थन से मेंटर टिप्स प्रदान किए जाते हैं।

stylized A, AmeriCorps logo in navy

डिबगिंग टिप्स

नोटिफ़ायर और लेबल

नोटिफ़ायर घटक आपको यह पता लगाने में मदद कर सकता है कि आपका कोड क्यों टूटा हुआ है। 

अपने ऐप आविष्कारक ऐप में नोटिफ़ायर लगाने के लिए, इसे उपयोगकर्ता इंटरफ़ेस पैलेट से खींचें।

ShowAlert example

नोटिफ़ायर का उपयोग करने का सबसे आसान तरीका यह है कि आप यह देखने के लिए जानकारी के साथ ShowAlert ब्लॉक जोड़ें कि कुछ ब्लॉक चले गए हैं (या नहीं)।

संदेशों के अलावा, आप एक चर के मूल्य या एक ImageSprite की स्थिति जैसी जानकारी प्रदर्शित कर सकते हैं।

आप अपने ऐप्लिकेशन में वर्तमान जानकारी प्रदर्शित करने के लिए लेबल भी जोड़ सकते हैं. 

उदाहरण के लिए, हो सकता है कि आप किसी चर का मान जानना चाहें क्योंकि ऐप के चलने के दौरान कुछ ईवेंट होते हैं। 

आप Label.Text को जो कुछ भी जानना चाहते हैं उसे सेट कर सकते हैं और यह आपके ऐप पर प्रदर्शित होगा। 

एक बार जब आप अपनी त्रुटि डीबग कर लेते हैं, तो आप लेबल को अदृश्य बना सकते हैं, या इसे अपने ऐप से पूरी तरह से हटा सकते हैं।

कर दो

  डू इट फीचर डिबगिंग के लिए एक और बेहतरीन टूल है।

जब आप अपने ऐप का लाइव परीक्षण कर रहे हों, या तो फोन और एआई कंपेनियन ऐप के साथ, या एमुलेटर के साथ, आपके पास एक नए कमांड "डू इट" तक पहुंच होती है।

कमांड तब तक धूसर रहता है जब तक आप कनेक्ट मेनू के माध्यम से फोन या एमुलेटर से कनेक्ट नहीं हो जाते।

डू इट आपको ऐप के साथ इंटरैक्ट किए बिना एक ब्लॉक चलाने देता है, ताकि आप किसी चर या तत्व का वर्तमान मान देख सकें। 

 

बस एक "वैश्विक प्राप्त करें" चर ब्लॉक खींचें और राइट-क्लिक करें। ड्रॉपडाउन मेनू से "डू इट" चुनें और कोड का वह ब्लॉक निष्पादित होगा।

Do it on pulldown menu

परिणाम के साथ बॉक्स के ऊपर एक पीला डू इट बॉक्स दिखाई देगा। यह किसी भी घटक संपत्ति के लिए भी काम कर सकता है!

Do it block result

आप अपने ऐप में कुछ बदलने के लिए डू इट का भी उपयोग कर सकते हैं। उदाहरण के लिए, हो सकता है कि आप किसी सूची में कोई आइटम परिवर्तित करना चाहें. ऐसा करने के लिए ब्लॉक को ड्रैग आउट करें और डू इट चुनें। आपको परिणाम दिखाई नहीं देगा, लेकिन सूची आपके ऐप में अपडेट की जाएगी।

 

setting a list value with do it

आप अपने ऐप्लिकेशन में मौजूदा कोड ब्लॉक भी चला सकते हैं. 

उदाहरण के लिए, यहां ListView एलिमेंट्स को Do It का उपयोग करके अपडेट किया जाएगा। यह ऐप में दिखाई देगा। ListView Do It कमांड के साथ सेट किए गए नए तत्वों को प्रदर्शित करेगा।

updating a listview with do it

परीक्षण डेटा का उपयोग करें

अगर आपके पास अपने ऐप्लिकेशन में उपयोग करने के लिए बहुत सारी जानकारी है, तो परीक्षण डेटा का उपयोग करना मददगार हो सकता है. परीक्षण डेटा डेटा का एक सरल, छोटा सेट होता है जिसका उपयोग आप यह सुनिश्चित करने के लिए कर सकते हैं कि आपका ऐप्लिकेशन ठीक से काम कर रहा है.

मान लें कि आप एक ऐप बना रहे हैं जो आस-पास के रेस्तरां प्रदर्शित करता है। आप रेस्तरां की जानकारी संग्रहीत करने के लिए Google पत्रक का उपयोग कर रहे हैं।

आप केवल एक या दो परीक्षण रेस्तरां से शुरू कर सकते हैं और यह सुनिश्चित करने के लिए अपने ऐप का परीक्षण कर सकते हैं कि यह काम करता है।

एक बार जब यह परीक्षण और काम कर जाता है, तो आप अपनी Google शीट में रेस्तरां डेटा का पूरा सेट जोड़ सकते हैं।

गुण बदलें

यदि आप अपने अनुप्रयोग का लाइव परीक्षण कर रहे हैं, तो आप अनुप्रयोग चलाने के दौरान डिज़ाइनर में गुण मान परिवर्तित कर सकते हैं और उसके प्रभाव देख सकते हैं.

कभी-कभी यह किसी समस्या को उजागर करने में मदद कर सकता है।

उदाहरण के लिए, हो सकता है कि आप किसी गेम को कोड कर रहे हों। एक स्प्राइट की स्थिति आपके फोन पर आपको सही नहीं लगती है जब यह चल रहा होता है।

लाइव परीक्षण करते समय, आप कर सकते हैं

  1. डिजाइनर के पास जाओ
  2. स्प्राइट के X और Y मान बदलें
  3. रनिंग ऐप में स्क्रीन पर स्प्राइट की स्थिति बदल जाएगी। 

अपनी स्क्रीन पर निर्देशांक का परीक्षण करने और समझने के लिए इसका उपयोग करें।

game with sprites

डिबगिंग में सहायता के लिए AI का उपयोग

एमआईटी ऐप इन्वेंटर में डिबगिंग करते समय, चैटजीपीटी, जेमिनी और क्लाउड जैसे एआई उपकरण आपको उन समस्याओं को शीघ्रता से पहचानने में मदद कर सकते हैं, जिन्हें ब्लॉक-आधारित वातावरण में आसानी से अनदेखा किया जा सकता है।

उदाहरण के लिए, अगर आपका ऐप बटन क्लिक का जवाब नहीं दे रहा है, तो आप AI को अपने इवेंट ब्लॉक्स के बारे में बता सकते हैं और पूछ सकते हैं कि क्या आपका लॉजिक सही है। आप अक्सर पाएंगे कि यह गलत कंडीशन या मिसिंग इनिशियलाइज़ेशन जैसी चीज़ों को पकड़ लेगा।

कुछ AI टूल्स के लिए, आप अपने ब्लॉक्स का स्क्रीनशॉट भी अपलोड कर सकते हैं और AI से पूछ सकते हैं कि लॉजिक क्या करता है। नए नज़रिए से आपको अपने कोड को बेहतर तरीके से ऑप्टिमाइज़ करने के तरीके के बारे में वाकई जानकारी मिल सकती है।

एआई को एक डिबगिंग पार्टनर के रूप में उपयोग करें जो न केवल समस्याओं को हल करता है बल्कि आपको यह समझने में भी मदद करता है कि वे क्यों हुईं!

girls looking at laptop during demo

गतिविधि 1: बग को ठीक करें

अनुमानित समय: 20 मिनट

टाइमर ऐप में बग ठीक करें

यहन टाइमर ऐप इसमें कुछ बग हैं।

  1. ऐप को ऐप आविष्कारक में लोड करें।
  2. ऐप का परीक्षण करने के लिए एमुलेटर या डिवाइस से कनेक्ट करें।
  3. टेक्स्टबॉक्स में कुछ भी टाइप किए बिना स्टार्ट दबाने का प्रयास करें। क्या होता है?
  4. सेकंड की संख्या के लिए 0 या ऋणात्मक संख्या दर्ज करने का प्रयास करें. क्या होता है?
  5. सशर्त ब्लॉकों का उपयोग करके बग को ठीक करें!

यह एक सम्भावित समाधान है।

block solution to timer app

गतिविधि 2: एक टिप्पणी जोड़ें

अनुमानित समय: 10 मिनट

अपने ऐप आविष्कारक प्रोजेक्ट में एक टिप्पणी जोड़ें

यदि आपने टेक्नोवेशन के लिए अपना अंतिम ऐप शुरू किया है, तो इस गतिविधि के लिए उस ऐप का उपयोग करें। अन्यथा, गतिविधि 1 से टाइमर ऐप का उपयोग करें।

अपने ऐप में कम से कम एक टिप्पणी जोड़ें जिसमें बताया गया है कि ब्लॉक का समूह क्या करता है। ब्लॉक का एक समूह चुनें जो आपको लगता है कि यह समझना सबसे कठिन है क्योंकि उन ब्लॉकों को समझना शायद किसी और के लिए सबसे कठिन होगा, जैसे टीम के सदस्य, समझने के लिए।

परावर्तन

ये टिप्स आपकी मदद कर सकते हैं क्योंकि आप अपने टेक्नोवेशन प्रोजेक्ट के लिए अपने मोबाइल ऐप को कोड करना शुरू करते हैं।

लेकिन याद रखें...

फोटो सौजन्य डीकेजेएस फ्रांज़िस्का श्मिट
कोडिंग आसान नहीं है।
संभावना अच्छी है कि आपका ऐप शुरू करने के लिए पूरी तरह से काम नहीं करेगा!
छोटे टुकड़ों में कोड।
जब आपको काम करने के लिए अपने ऐप का एक छोटा सा हिस्सा मिलता है तो जश्न मनाएं।
ब्रेक ले लो! कभी-कभी बस कुछ मिनटों के लिए अपने कंप्यूटर से दूर चलना आपको वह नया दृष्टिकोण दे सकता है जिसकी आपको आवश्यकता है।

प्रमुख शब्दों की समीक्षा

  • डिबगिंग - प्रक्रिया कोडर्स यह पता लगाने के लिए उपयोग करते हैं कि उनका कोड क्यों काम नहीं कर रहा है और इसे ठीक करें
  • संस्करण नियंत्रण - प्रगति करते समय अपने ऐप के कार्यशील संस्करणों को सहेजना
  • डेटा का परीक्षण करें – डेटा का एक सरल सेट जिसका उपयोग आप यह सुनिश्चित करने के लिए कर सकते हैं कि आपका ऐप ठीक से काम कर रहा है
  • टिप्पणियाँ - पाठ जो कोड में शामिल है यह समझाने के लिए कि यह क्या करता है

अतिरिक्त संसाधन