वेगवान प्रतिसाद: डेटाबेस डीबगिंग आणि बचावासाठी प्रोफाइलिंग

लेखक: Roger Morrison
निर्मितीची तारीख: 22 सप्टेंबर 2021
अद्यतन तारीख: 21 जून 2024
Anonim
वेगवान प्रतिसाद: डेटाबेस डीबगिंग आणि बचावासाठी प्रोफाइलिंग - तंत्रज्ञान
वेगवान प्रतिसाद: डेटाबेस डीबगिंग आणि बचावासाठी प्रोफाइलिंग - तंत्रज्ञान

टेकवे: होस्ट एरिक कवानाघ यांनी डॉ. रॉबिन ब्लॉर, डेझ ब्लांचफिल्ड आणि आयडीईआरएएस बर्ट स्काल्झो सह डेटाबेस डीबगिंग आणि प्रोफाइलिंगबद्दल चर्चा केली.



आपण सध्या लॉग इन केलेले नाही. कृपया व्हिडिओ पाहण्यासाठी लॉग-इन किंवा साइन-अप करा.

एरिक कवानाग: ठीक आहे, स्त्रिया आणि सज्जनांनो, बुधवारी पहाटे 4:00 वाजताची वेळ आहे आणि अर्थातच याचा अर्थ असा आहे.

रॉबिन ब्लॉर: एरिक, ऐकू येत नाही.

एरिक कवानाग: मी तेथे काही दिवसांपूर्वी होतो, म्हणून तू एकटाच नाहीस. पण म्हणून आज विषय खरोखर मनोरंजक सामग्री आहे. आपण ज्या व्यक्तीने हे करत आहात तोपर्यंत आपण याची खात्री करुन घेऊ इच्छित आहात की आपल्या कंपनीच्या पार्श्वभूमीवर हे घडत आहे, अशा परिस्थितीत आपण हे योग्यरित्या करत असल्याची खात्री करा. कारण डिबगिंगबद्दल बोलत होते. कोणालाही बग आवडत नाहीत, जेव्हा सॉफ्टवेअर कार्य करणे थांबवते तेव्हा कोणालाही आवडत नाही - लोक अस्वस्थ होतात, वापरकर्ते अनियंत्रित होतात. हे चांगले नाही. तर, "रॅपिड रिस्पॉन्सः डेटाबेस डिबगिंग आणि प्रोसेसिंग टू रेस्क्यु" विषयी बोलणार आहोत.


आपल्याबद्दल खरोखरच एक स्पेशल आहे, मला नक्कीच @eric_kavanagh वर टेकू द्या.

हे वर्ष गरम आहे. आणि डीबगिंग गरम असणार आहे, काहीही असो. ही खरोखरच या समस्यांपैकी एक आहे जी कधीच निघणार नाही, जरी आपण या सामग्रीवर कितीही चांगले मिळाले तरी नेहमीच समस्या बनतात, मग आपण जिथे त्या समस्यांचे त्वरित निराकरण करू शकता तिथे कसे जाल? तद्वतच, आपल्याकडे उत्कृष्ट प्रोग्रामर आहेत, उत्तम वातावरण आहे, जेथे खूपच चूक होत नाही, परंतु जुनी म्हण आहे, “अपघात कुटुंबात घडतात.” आणि संस्थांमध्येही हेच खरे आहे. तर, ही सामग्री घडते, ती होणारच आहे, हा प्रश्न आहे की त्यास सामोरे जाण्यासाठी आणि त्या समस्यांचे निराकरण करण्यासाठी आपले काय समाधान आहे?

डॉ. रॉबिन ब्लॉर कडून ऐका, मग आमचे स्वतःचे डेझ ब्लांचफील्ड खाली वरून, आणि अर्थातच आमचा चांगला मित्र, बर्ट स्कॅल्झो, आयडीआरए वरुन. आणि खरं तर, मी रॉबिन ब्लॉरच्या चाव्या सोडवणार आहे, ते घेऊन जा. मजला आपला आहे.

रॉबिन ब्लॉर: ठीक आहे. हा एक मनोरंजक विषय आहे. मला वाटले कारण डेज कदाचित डीबगिंगबद्दलच्या वास्तविक तंत्रे आणि युद्धाच्या गोष्टींबद्दल पुढे जात आहे, मला वाटले की आयडी फक्त एक पार्श्वभूमी चर्चा करेल जेणेकरून आम्हाला काय चालले आहे याचा संपूर्णपणे गोल चित्र मिळावा. मी हे बर्‍याच काळापासून केले आणि मी एक कोडर असायचो, तसाच हा प्रकार, आणि मला या सादरीकरणाने ओपन सोर्सच्या कल्पनेबद्दल बोलणा .्या गीतात्मक वाचनाची सुरूवात करण्याचा मोह झाला पण मला वाटलं की मी ते दुसर्‍याकडे सोडा.


येथे प्रसिद्ध बगची यादी आहे आणि यापैकी बर्‍याचजण कोठेही बबडीजच्या शीर्षस्थानी आहेत, मुळात, शेवटच्या दोन व्यतिरिक्त किमान 100 दशलक्ष डॉलर्स. पहिला एक मार्स क्लायमेट ऑर्बिटर होता, तो जागेत हरवला आणि ते कोडींगच्या समस्येमुळे होते, जेथे लोक (हसणारे) पाय आणि इंच असलेल्या मेट्रिक युनिट्सचा गोंधळ करतात. एरियान फाइव्ह फ्लाइट 501 तेथे लावलेली इंजिन आणि रॉकेट चालविताना ज्या संगणकांना लॉन्च केले जायचे होते त्या संगणकांमध्ये एक जुळत नाही. एकाधिक संगणक अयशस्वी होणे, रॉकेट फुटणे, मथळा बातम्या. १ in in२ मधील सोव्हिएत गॅस पाइपलाइन, या ग्रहाच्या इतिहासातील सर्वात मोठा स्फोट असल्याचे म्हटले आहे; ते आहे की नाही याची मला खात्री नाही. रशियन लोकांनी काही स्वयंचलित नियंत्रण सॉफ्टवेअर चोरले आणि सीआयएच्या लक्षात आले की ते असे करणार आहेत आणि त्यामध्ये बग्स ठेवल्या गेल्या आणि सोव्हिएत लोकांनी त्याची चाचणी न करता अंमलात आणली. तर, एक पाइपलाइन उडविली, असा विचार केला की ते मनोरंजक आहे.

मॉरिस अळी एक कोडिंग प्रयोग होता, जो अचानक प्रत्येकाच्या शरीरात फिरणारा एक किडा बनला - यामुळे त्याने १०० दशलक्ष डॉलर्सचे नुकसान केले. नक्कीच अंदाज बांधतो. १ 199 Inte in मध्ये पेंटियम चिपवरील गणिताच्या सूचना - इंटेलने मॅथ्स चिपसह एक प्रसिद्ध त्रुटी केली ज्याची किंमत १० दशलक्ष डॉलर्सपेक्षा जास्त होती. Lesपल नकाशे प्रोग्राम Appleपलने केलेल्या कोणत्याही गोष्टीची संभाव्यत: सर्वात वाईट आणि सर्वात भयंकर लाँचिंग आहे. ज्या लोकांनी याचा वापर करण्याचा प्रयत्न केला, ते म्हणजे, कोणीतरी 101 च्या बाजूने वाहन चालवित होते, आणि Appleपल नकाशाने ते सॅन फ्रान्सिस्को खाडीच्या मध्यभागी असल्याचे सांगितले. तर, लोक Appleपल नकाशे अॅपचा उल्लेख आयलॉस्ट म्हणून करू लागले. १ 1990 1990 ० मधील आमचे प्रदीर्घ आउटेज - अशा प्रकारच्या किंमतीच्या दृष्टिकोनातून हे केवळ मनोरंजक आहे - एटी अँड टी जवळपास नऊ तास बाहेर होते आणि त्यासाठी लांब पल्ल्याच्या कॉलमध्ये $ 60 दशलक्ष खर्च आला.

आणि मी एक यू.के. विमा कंपनी आणि डेटाबेसमध्ये होतो, त्यांनी डेटाबेसची नवीन आवृत्ती लागू केली आणि डेटा पुसून टाकण्यास सुरवात केली. आणि मला ते अगदी चांगले आठवते, कारण त्या नंतर मला डेटाबेसच्या निवडीत भाग घेण्यास भाग पाडले गेले होते. आणि हे खूप मनोरंजक होते की त्यांनी डेटाबेसची नवीन आवृत्ती घेतली होती आणि त्यांच्याकडे चाचण्यांची बॅटरी होती ज्याने सर्व चाचण्या उत्तीर्ण केलेल्या डेटाबेसच्या नवीन आवृत्त्यांसाठी केली. डेटा पुसण्याचा खरोखर अस्पष्ट मार्ग सापडला.

तर, असं असलं तरी. मला वाटले आयडी प्रतिबाधा न जुळण्याबद्दल आणि एसक्यूएल जारी केल्याबद्दल बोलते. हे महत्वाचे आहे की रिलेशनल डेटाबेस सारण्यांमध्ये डेटा संचयित करतात आणि कोडर्स ऑब्जेक्ट स्ट्रक्चर्समध्ये डेटा हाताळण्यास प्रवृत्त करतात जे खरोखरच टेबलावर नकाशा नकाशा करतात. आणि त्या कारणास्तव, आपण ज्याला प्रतिबाधास न जुळत आहात असे म्हणतात, आणि कुणाला तरी तरी त्याचा सामना करावा लागतो. परंतु प्रत्यक्षात काय होते, कारण एक मॉडेल, कोडर मॉडेल आणि डेटाबेस दुसरे मॉडेल विशेषतः संरेखित नाहीत. उद्योगात एकत्र काम करणार्‍या गोष्टी तयार केल्या गेल्या असत्या तर बग्स आपल्याला मिळतात ज्या मला आनंद देतात. मूलभूतपणे, कोडर्सच्या बाजूने, जेव्हा आपल्याला श्रेणीबद्धता येते तेव्हा ते प्रकार असू शकतात, यामुळे सेट्स येऊ शकतात, ही एपीआयची कमकुवत क्षमता असू शकते, डेटाबेसच्या परस्परसंवादाच्या बाबतीत गोष्टी बर्‍याच गोष्टी असू शकतात. पण ही गोष्ट माझ्यासाठी सर्वात महत्त्वाची आहे, खरोखर मनोरंजक; कोडर आणि डेटाबेस एकमेकांशी कार्य करतात अशा प्रकारे आपण या एस क्यू एल अडथळाचा देखील एक प्रकारचा प्रतिबाधा असल्याचे मला नेहमीच चकित केले. तर एसक्यूएलकडे डेटा मान्यता आहे, जी ठीक आहे आणि त्यात निवड, प्रकल्प आणि सामील होण्यासाठी डीएमएल आहे, जे ठीक आहे. त्यासह डेटाबेसमधून डेटा मिळविण्याच्या दृष्टीने आपण बर्‍याच क्षमता टाकू शकता. पण गोष्टी करण्यासाठी गणिताची भाषा फारच कमी आहे. यात थोडासा आणि हे आहे आणि त्यात वेळ-आधारित सामग्री खूपच कमी आहे. आणि त्या कारणास्तव, एस क्यू एल एक अपूर्ण आहे, जर आपल्याला आवडत असेल तर डेटा मिळवण्याचे साधन आहे. तर, डेटाबेसमध्ये डेटाबेसमध्ये राहण्यासाठी संग्रहित कार्यपद्धती तयार केली गेली आणि तेथे राहणा the्या संचयित प्रक्रियेचे कारण असे होते की आपल्याला खरोखर प्रोग्रामकडे डेटा परत पाठवणे आवडत नाही.

कार्यक्षमतेपैकी काही अत्यंत डेटा विशिष्ट होते, म्हणून ते फक्त संदर्भित अखंडता आणि कॅसकेडिंग डिलीट्स आणि त्यासारख्या गोष्टींचा विचार करत नव्हता, डेटाबेस एकाएकी कार्यक्षमता ठेवत असताना अचानक कार्यक्षमतेची काळजी घेत होते. अनुप्रयोग कोडर आणि डेटाबेसमध्येच विभाजित केला जाऊ शकतो. आणि यामुळे काही प्रकारची कार्ये अंमलात आणण्याचे कार्य खरोखरच अवघड आहे आणि म्हणूनच त्रुटी अधिक प्रवण. डेटाबेस खेळाच्या एका बाजूला आहे, कारण याचा अर्थ असा की तुमच्याकडे बरीच अंमलबजावणी झाली आहे, म्हणजेच रिलेशनल डेटाबेसमध्ये सामील आहे की खरोखरच एक भयानक कोड आहे जो संचयित प्रक्रियेत बसलेला असतो जो कोडपासून विभक्त हाताळला जातो. अनुप्रयोग मध्ये बसतो. आणि ही अगदी विचित्र गोष्ट आहे असे वाटते की ती विविध गोष्टी करण्यात बर्‍यापैकी स्मार्ट असेल.

मला असे वाटले की आयडी डेटाबेसच्या कामगिरीबद्दल देखील बोलतो कारण कामगिरीतील त्रुटी बर्‍याचदा बग म्हणून समजल्या जातात, परंतु मुळात आपल्याकडे सीपीयूमध्ये, मेमरीवर, डिस्कवर, नेटवर्कवर एक अडचण असू शकते आणि लॉक केल्यामुळे आपल्याकडे परफॉर्मन्स अडचणी येऊ शकतात. अशी कल्पना असावी की कोडरला खरोखरच कामगिरीबद्दल चिंता करण्याची आवश्यकता नव्हती आणि डेटाबेस प्रत्यक्षात योग्यप्रकारे चांगले कामगिरी करेल. हे डिझाइन केलेले असावे जेणेकरुन कोडरला माहित असणे आवश्यक नाही. तथापि, आपल्याला खराब डेटाबेस डिझाइन मिळते, आपल्याला प्रोग्रामचे खराब डिझाइन मिळते, आपल्याला वर्कलोड मिक्सिंगमध्ये सहमती मिळते, ज्यामुळे परफॉर्मन्स मुद्द्यांमुळे देखील समस्या उद्भवू शकतात. आपणास लोड बॅलेंसिंग मिळते, आपणास क्षमता नियोजन, डेटा गती मिळते - यामुळे डेटाबेस फक्त थांबू शकतो किंवा धीमे होऊ शकतो. ही एक मजेशीर गोष्ट आहे जेव्हा डेटाबेस जवळजवळ पूर्ण होतात तेव्हा ते धीमे होतात. आणि आपल्याकडे प्रतिकृती आणि प्रतिकृती तयार करण्याची आवश्यकता आणि बॅकअप आणि पुनर्प्राप्ती करण्याची आवश्यकता या संदर्भात डेटा स्तर जारी केला जाऊ शकतो. असं असलं तरी, सर्वसाधारण विहंगावलोकन आहे.

मला फक्त इतकेच सांगायचे आहे की डेटाबेस डीबग करणे केवळ कठोर आणि अ-क्षुल्लक असू शकते - आणि मी असे म्हणतो की कारण मी त्यात बरेच काम केले आहे - आणि मी नेहमीच्या डीबगिंगच्या सर्व परिस्थिती शोधून काढीन ज्याचा मी कधी अनुभव घेतला आहे. म्हणजे, आपण पहात असलेली पहिली गोष्ट म्हणजे गोंधळ. आणि आपण प्रयत्न करणे आणि गडबड कशी झाली याबद्दल कार्य करण्याकडे जाणे आवश्यक आहे. आणि बर्‍याचदा जेव्हा आपण डेटाबेसच्या समस्येकडे पहात असता तेव्हा आपण पहात असलेला सर्व भ्रष्ट डेटा असतो आणि आपण विचार करता, "हे कसे घडले?"

असं असलं तरी मी देझकडे जाईन, जे कदाचित मी बाहेर येण्यापेक्षा शहाणपणाचे शब्द अधिक बोलतील. तुला चेंडू कसा द्यावा हे मला माहित नाही, डेझ.

एरिक कवानाग: मी ते पास करतो, उभे रहा, धरून रहा.

स्वयंचलित आवाज: सहभागी ओळी नि: शब्द केल्या.

एरिक कवानाग: ठीक आहे, एका सेकंदावर टांगून घ्या, मला देझ बॉल दे.

डेझ ब्लांचफिल्ड: धन्यवाद, एरिक. होय, डॉ. रॉबिन ब्लॉर, तुम्ही खरोखरच अगदी बरोबर आहातः हा एक विषय आहे, जर तुम्हाला दंड माफ करायचा असेल तर क्षमा करा, क्षमस्व मी त्या व्यक्तीसाठी स्वत: ला मदत करू शकला नाही. आशा आहे की आपण माझी माझी पहिली स्क्रीन येथे पाहू शकाल, शीर्षस्थानी असलेल्या फॉन्ट आकाराच्या समस्येबद्दल दिलगीर आहोत. माझ्या अनुभवाच्या बर्‍याच बाबतीत बगचा विषय हा दीर्घकाळ व्याख्यान आहे. हा इतका विस्तृत आणि विस्तृत विषय आहे, म्हणून मी दोन प्रमुख बाबींवर लक्ष केंद्रित करणार आहे, विशेषत: आम्ही जे काही बग मानतो त्या संकल्पनेची, परंतु प्रोग्रामिंगची समस्या आहे. मला वाटते की या दिवसात प्रति बग सादर करणे सामान्यत: समाकलित केलेल्या विकास वातावरणाद्वारे उचलले जाते, जरी ते दीर्घकालीन बग असतील. परंतु बर्‍याचदा हे प्रोफाइलिंग कोडचे प्रकरण असते आणि कार्य करते की कोड लिहिणे शक्य होते, ते एक बग असावे. तर, येथे माझे शीर्षक स्लाइड, माझ्याकडे खरोखर उच्च रेझोल्यूशन ए 3 मध्ये याची एक प्रत होती, परंतु दुर्दैवाने घराच्या एका हालचालीत ती नष्ट झाली. सर्का १ 45.. मधील प्रोग्रामिंग शीटवर ही हस्तलिखित नोट आहे, जिथे अमेरिकेतील हार्वर्ड विद्यापीठातील काही लोक मार्क II नावाच्या मशीनची दुसरी इमारत आहेत. ते सामान्य भाषेत काही अडचण डीबग करीत होते, परंतु ते दोष शोधण्याचा प्रयत्न करीत होते आणि हे निष्पन्न झाले की हार्डवेअर आणि बहुदा सॉफ्टवेअरच्या समस्येपेक्षा काहीतरी वेगळे आहे.

तर, शहरी मान्यता ही सप्टेंबर 9 च्या आसपास आहेव्या, १ 45 4545 हार्वर्ड युनिव्हर्सिटीमधील एक टीम मशीन काढत होती, त्यांना काहीतरी “रिले सत्तर” म्हणतात. त्या दिवसात प्रोग्रामिंग शारीरिक दृष्टीने केले गेले होते, तुम्ही एका मंडळाच्या भोवतालचा कोड घातला होता, आणि अशाच प्रकारे आपण प्रभावीपणे प्रोग्राम केला मशीन - आणि त्यांना या रिले क्रमांकाच्या सत्तरमध्ये काहीतरी गडबड असल्याचे आढळले आणि वास्तविक "बग" हा शब्द आला की ते खरोखर अक्षरशः एक पतंग होते - बहुधा तांबेच्या वायरच्या तुकड्यात जाण्यासाठी एक पतंग अडकलेला होता. एका ठिकाणाहून दुसर्‍या ठिकाणी आणि कथा अशी आहे की माझ्या शीर्षक स्लाइडसाठी, "शीर्षकातील एक बग सापडला आहे त्यास प्रथम कोट अवतरण" या शीर्षकानुसार महान ग्रेस हॉपर आहे.

परंतु रॉबिनने त्याच्या पहिल्या स्लाइडमध्ये हायलाइट केल्याप्रमाणे, बगची संकल्पना जितके मागे मागे गेली आहे तितकीच आपण मानवांना पॅच सारख्या संकल्पना, संकल्पना करीत असल्याची कल्पना करू शकतो. “पॅच” हा शब्द पंचकार्डच्या छिद्रातून टेपच्या प्रत्यक्ष तुकड्यावरुन आला आहे. परंतु याचा संपूर्ण मुद्दा असा आहे की “डिबगिंग” हा शब्द भौतिक मशीनमध्ये बग शोधण्याच्या या संकल्पनेतून आला आहे.आणि तेव्हापासून आम्ही त्या शब्दाचा वापर समस्यांशी सामना करण्याचा प्रयत्न केला आहे जे संकलित करत नाही अशा प्रोग्राममध्ये समस्यांचे कोडिंग करणे इतकेच नाही, परंतु एक प्रोग्राम आहे जे चांगले चालत नाही. आणि विशेषत: असे नाही फक्त कधीच न जाणार्‍या अशा शेवटच्या पळवाट अशा गोष्टी शोधायच्या नाहीत.

परंतु आमच्याकडे देखील एक परिस्थिती आहे आणि मी विचार केला की मी थोडा अधिक तपशील घेण्यापूर्वी आयडीने काही मजेदार स्लाइड्स घातल्या. वेबवर एक्सकेसीडी नावाचे क्लासिक व्यंगचित्र हेरेस आणि व्यंगचित्रकाराने जगावर काही मजेदार दृश्ये दिली आहेत. आणि "लहान बॉबी टेबल्स" नावाच्या मुलाबद्दल आणि त्याच्या पालकांनी या लहान मुलाचे नाव रॉबर्ट ठेवले आहे); टेबल विद्यार्थ्यांना ड्रॉप करा - आणि ते म्हणतात, आणि "हाय, ही तुमच्या मुलाची शाळा आहे ज्यात संगणकाचा त्रास आहे." आणि पालक उत्तर देतात, "अरे प्रिय, त्याने काहीतरी फोडले का?" आणि शिक्षक म्हणतात, "ठीक आहे, एक प्रकारे, "आणि शिक्षक विचारतात," आपण खरोखर आपल्या मुलाचे रॉबर्ट नाव ठेवले होते); टेबल विद्यार्थ्यांना ड्रॉप करा; -? "आणि पालक म्हणतात," अरे हो, लहान बॉबी टेबल्स आम्ही त्याला कॉल करतो. "असं असलं तरी, ते असे म्हणत पुढे गेले आहेत की त्यांनी आता वर्षांची विद्यार्थ्यांची नोंद गमावली आहे, मला आशा आहे की आपण आनंदी आहात. आणि प्रतिसाद आहे, "बरं, आपण आपला डेटाबेस इनपुट स्वच्छ आणि स्वच्छ केला पाहिजे." आणि मी कोडमध्ये गोष्टी शोधण्यात आपल्यास असलेल्या काही समस्यांविषयी बोलण्यासाठी बर्‍याच वेळा वापरतो, बहुतेकदा कोड डेटाकडे देखील पाहत नाही. .

आणखी एक मजेदार म्हणजे, हे वास्तविक आहे की नाही हे मला ठाऊक नाही - मला याच्या फसव्याचा संशय आहे - परंतु पुन्हा, ते माझ्या मजेदार हाडांना देखील स्पर्श करते. कोणीतरी त्यांच्या कारच्या पुढील भागावर परवाना प्लेट बदलत आहे, अशाच विधानामुळे डेटाबेस स्पीड कॅमेर्‍यामध्ये घसरतात आणि त्यामुळे कारच्या परवाना प्लेट्स हस्तगत करतात. आणि मी नेहमी त्याचा संदर्भ घेतो की मला शंका आहे की कोणत्याही प्रोग्रामरने त्यांच्या मोटारीची वास्तविक मोटर वाहनाद्वारे हिट अँड रन चालविण्याची अपेक्षा केली होती, परंतु त्यास कधीही कमी लेखू नका - राग असलेल्या गीकची शक्ती.

(हशा)

परंतु यामुळे मला माझा मुख्य बिंदू मिळतो, असा माझा अंदाज आहे आणि हे असे आहे की एकदा आम्ही नश्वर म्हणून डीबग आणि प्रोफाइल कोड बनवू शकतो. पण तो काळ निघून गेलेला मी फार विचार करतो आणि माझ्या अनुभवातून, माझा पहिला अनुभव - आणि हे माझे वय खूपच भयंकर आहे, मला खात्री आहे; रॉबिन तुमचे याबद्दल विनोद करतात, पण ऐतिहासिकदृष्ट्या मी वयाच्या 14 व्या वर्षी पार्श्वभूमीवरून आलो आहे. शहराच्या शेवटी भटकत होतो आणि न्यूझीलंडमधील “डेटा कॉम” नावाच्या डेटा सेंटरचा दरवाजा ठोठावतो आणि विचारतो की उशीरा बस घरी, दररोज सुमारे 25 कि.मी. प्रवासात, ई.आर. मध्ये कागद टाकून, टेप ड्राइव्हमध्ये टेप देऊन आणि फक्त एक सामान्य प्रशासक मिळवून मी शाळेतून पैसे कमवू शकलो. आणि उत्सुकतेने त्यांनी मला नोकरी दिली. परंतु कालांतराने, मी स्वत: ला स्टाफिंगमध्ये उतरू शकलो आणि प्रोग्रामर शोधू शकलो आणि मला समजले की मला कोडिंग आवडते आणि स्क्रिप्ट आणि बॅच जॉब चालवण्याच्या प्रक्रियेत गेलो, जे दिवसाच्या शेवटी अजूनही कोड आहे. आपल्याला स्क्रिप्ट्स आणि बॅच जॉब लिहाव्या लागतील जे मिनी प्रोग्रामसारखे दिसतील आणि नंतर 3270 टर्मिनल राइटिंग कोड हाताने बसण्याची संपूर्ण प्रक्रिया पार करा.

खरं तर, माझा पहिला अनुभव टेलिटाइप टर्मिनलवर होता, जो प्रत्यक्षात 132-स्तंभातील भौतिक एर होता. मूलभूतपणे, पेपर असलेल्या जुन्या टाइपराइटरसारखा विचार करा ज्याद्वारे त्यामध्ये स्क्रोल केले गेले, कारण त्यांच्याकडे सीआरटी ट्यूब नव्हती. आणि त्यावरील डिबगिंग कोड हा एक अत्यंत क्षुल्लक मुद्दा होता, म्हणून आपण आपला सर्व कोड हातांनी लिहायचा आणि मग एखाद्या टाइपलेखकासारखा वागा, डोकावण्याकरिता चुका न येण्याचा प्रयत्न करत रहा, कारण हे सांगायला अत्यंत निराशा होती एक ओळ संपादक एका विशिष्ट ओळीवर जाण्यासाठी आणि नंतर लाइन पुन्हा टाइप करा. परंतु एकदा असे होते की आम्ही कोड कसे लिहितो आणि ते कसे डीबग केले ते आम्ही शिकलो आणि त्यात आम्हाला बरेच चांगले मिळाले. आणि खरं तर, आम्हाला प्रोग्रामिंगची चांगली तंत्रं भाग पाडण्यास भाग पाडलं, कारण निराकरण करणं ही खरोखरच अडचणी होती. परंतु नंतर हा प्रवास झाला - आणि यास सर्व परिचित होते - ते माझ्या जगातील 3270 टर्मिनल अनुभवातून डिजिटल उपकरणे व्हीटी 220 वर गेले जिथे आपल्याला पडद्यावर गोष्टी दिसू शकतील, परंतु पुन्हा, आपण फक्त त्याच गोष्टी करत होता कागदाच्या टेप क्रमवारीनुसार एड फॉरमॅट फक्त एका सीआरटी वर, परंतु आपण अधिक सहजपणे हटविण्यात सक्षम आहात आणि आपल्याकडे तो “डीट डिट डिट डिट डिट” आवाज नाही.

आणि मग तुम्हाला माहिती असेल, वायझ टर्मिनल्स - जसे वायस १ ,०, बहुदा संगणकासाठी माझा सर्वात आवडता इंटरफेस - आणि नंतर पीसी आणि नंतर मॅक आणि नंतर वेब आधारीत आधुनिक जीयूआय आणि आयडी. आणि त्याद्वारे प्रोग्राम्सची एक श्रेणी, एक आणि प्रोग्रामिंग आणि पायलट आणि लोगो आणि लिस्प आणि फोर्ट्रान आणि पास्कल आणि भाषा ज्या लोकांना विचित्र बनवू शकतात. परंतु या अशा भाषा आहेत ज्या आपल्याला चांगले कोड लिहिण्यास भाग पाडतात; त्यांनी आपल्याला वाईट पद्धतींपासून दूर जाऊ दिले नाही. सी, सी ++, जावा, रुबी, पायथन - आणि आम्ही त्या प्रोग्रामिंग टप्प्यातून पुढे जात आहोत, आपल्याला अधिक स्क्रिप्ट-सारखी मिळते, आपण स्ट्रक्चर्ड क्वेरी लॅंग्वेज आणि पीएचपी सारख्या भाषा जवळ घेतल्या ज्या एसक्यूएलचा उपयोग करण्यासाठी वापरल्या जातात. तुम्हाला सांगण्याचा मुद्दा म्हणजे, माझ्या पार्श्वभूमीवरुन येताना, मी बर्‍याच प्रकारे स्वत: शिकवले होते आणि जे मला शिकण्यास मदत करतात त्यांनी मला बगडीची ओळख पटविली नाही हे सुनिश्चित करण्यासाठी मला खूप चांगले प्रोग्रामिंग पद्धती आणि डिझाइन आणि प्रक्रियेच्या आसपासच्या चांगल्या पद्धती शिकवल्या. कोड

आजकाल प्रोग्रामिंग पद्धती, उदाहरणार्थ, स्ट्रक्चर्ड क्वेरी लँग्वेज, एस क्यू एल, ही एक अतिशय शक्तिशाली, सोपी क्वेरी भाषा. परंतु आम्ही त्यास प्रोग्रामिंग भाषेत रुपांतर केले आणि मला असा विश्वास नाही की एसक्यूएल ही आधुनिक प्रोग्रॅमिंग भाषा म्हणून डिझाइन केली गेली होती, परंतु ती बनण्यासाठी आपण त्याकडे वळलो. आणि हे संपूर्ण प्रकरणांचा परिचय देते, कारण जेव्हा आपण दोन दृष्टिकोनातून विचार करतो तेव्हा कारणः कोडिंग दृश्यापासून आणि डीबीए दृश्यापासून. अगदी कमकुवत प्रोग्रामिंग तंत्र, लेखन कोडमध्ये आळशी प्रयत्न, अनुभवाचा अभाव, माझ्याकडे असलेले एसक्यूएल लोक गूगलवर उडी मारून काहीतरी शोधत आहेत आणि वेबसाइट शोधत आहेत यासारख्या गोष्टींसाठी बगचा परिचय करून देणे अगदी सोपे आहे. एक उदाहरण मिळाले आणि विद्यमान कोडची एक प्रत आणि पेस्ट करत आहे. आणि नंतर खराब कोडिंग, गैरवर्तन आणि त्यास उत्पादनात टाकण्याची प्रतिकृती बनवित आहे कारण त्यांना त्यांना हवे असलेले निकाल देणे हेच घडते. आपल्यासमोर इतर आव्हाने आली, उदाहरणार्थ, आजकाल सर्व जण याकडे वेगाने धावत होते, ज्याला आपण शर्यत म्हणतो शून्य: सर्व काही इतके स्वस्त आणि वेगवान करण्याचा प्रयत्न करीत आहोत, जेथे आमच्याकडे अशी परिस्थिती आहे की जेथे कमी पगाराचे कर्मचारी काम करत नव्हते. आणि मला असे म्हणायचे नाही की ते विचित्र मार्गाने आहेत, परंतु प्रत्येक संभाव्य नोकरीसाठी तज्ञांना घेत नाहीत. एकेकाळी कम्प्युटरशी काहीही करणे म्हणजे रॉकेट सायन्स; हे अशा गोष्टींमध्ये सामील होते जे दणका मारतात आणि खूपच जोरात असतात, किंवा अंतराळात गेले होते किंवा अभियंते खूप पात्र पुरुष आणि स्त्रिया होते ज्यांनी डिग्री केली आहे आणि कठोर शिक्षण दिले ज्यामुळे त्यांना वेड्या गोष्टी करण्यापासून रोखले गेले.

आजकाल, बरेच लोक विकास आणि डिझाइन आणि डेटाबेसमध्ये येत आहेत ज्यांना अनेक वर्षांचा अनुभव नसलेले, हेच प्रशिक्षण किंवा समर्थन आवश्यक नसते. आणि म्हणूनच आपण केवळ पारंपारिक हौशी विरूद्ध तज्ञाच्या दृश्यासह समाप्त व्हाल. आणि तेथे एक प्रसिद्ध ओळ आहे, मला हे आठवत नाही की हा कोट कोणी तयार केला आहे, ती ओळ आहे, “जर तुम्हाला असे वाटत असेल की एखाद्या नोकरीसाठी एखाद्या तज्ञाला नोकरीसाठी पैसे द्यावे लागतील, तर तुम्ही समस्या निर्माण करणा a्या काही शौकीन लोकांना भाड्याने देईपर्यंत थांबा ते साफ करा. ”आणि म्हणून एसक्यूएलकडे ही समस्या आहे आणि ती अगदी, शिकण्यास अगदी सोपे आहे, वापरण्यास सुलभ आहे. पण माझ्या दृष्टीने ती एक परिपूर्ण प्रोग्रामिंग भाषा नाही. कुठल्याही ठिकाणाहून निवडलेले स्टार करणे आणि त्या सर्व गोष्टी एखाद्या पीएचपी आणि रुबी किंवा पायथॉन सारख्या आपल्याला अधिक सोयीस्कर असलेल्या प्रोग्रामिंग भाषेमध्ये खेचणे आणि डेटा कुशलतेने हाताळण्यासाठी प्रोग्रामिंग भाषा वापरणे अगदी सोपे आहे. एस क्यू एल मध्ये अधिक जटिल क्वेरी करण्याऐवजी. आणि आम्ही हे बरेच पाहतो आणि मग डेटाबेस हळू का चालू आहे हे लोकांना आश्चर्य वाटते; कारण की दहा लाख लोक तिकीट खरेदी करण्याचा प्रयत्न करीत आहेत ऑनलाईन तिकीट प्रणाली, जिथून तिथून निवडलेला तारा आहे.

आता हे खरोखरच एक अत्यंत उदाहरण आहे परंतु त्या सर्वांचा अर्थ तुम्हाला मिळतो. म्हणूनच, त्या पॉईंट होमवर खरोखर ठोसा मारण्यासाठी, मी बरेच काही वाहून घेतलेले एक उदाहरण येथे दिले. मी गणितांचा एक मोठा चाहता आहे, मला अनागोंदी सिद्धांत आवडतो, मला मॅन्डेलब्रोट सेट आवडतात. उजवीकडील बाजूने मॅन्डेलब्रोट सेट सादर आहे, ज्याची मला खात्री आहे की सर्व परिचित आहेत. आणि डाव्या बाजूला एसक्यूएलचा एक तुकडा आहे जो प्रत्यक्षात त्यास प्रस्तुत करतो. आता, प्रत्येक वेळी जेव्हा मी हे कुठेतरी स्क्रीनवर ठेवतो, तेव्हा हे ऐकतो “हे देवा, कोणीतरी एसकेएल बरोबर मॅन्डेलब्रोट मालिका सादर केली, आपण गंभीर आहात? हे वेडे आहे! ”बरं, याचा संपूर्ण मुद्दा म्हणजे मी तिथे फक्त बाह्यरेखा काय आहे हे स्पष्ट करणे आणि होय, खरं तर आपण आता एस क्यू एल मध्ये जवळजवळ काहीही प्रोग्राम करू शकता; ही एक अतिशय विकसित, शक्तिशाली, आधुनिक प्रोग्रामिंग भाषा आहे. मुळात ही एक क्वेरी भाषा होती तेव्हा ती फक्त डेटा मिळविण्यासाठी डिझाइन केली होती. तर, आता आपल्याकडे खूप जटिल रचना आणि आमच्याकडे संग्रहित कार्यपद्धती आहेत, आम्हाला प्रोग्रामिंगची कार्यपद्धती एका भाषेवर लागू केली गेली आहे आणि म्हणूनच प्रोग्रामिंगची सराव, अनुभवाचा अभाव, कट-पेस्ट कोड, कमी पगाराचे कर्मचारी प्रयत्न करीत आहेत. उच्च पगाराचे कर्मचारी व्हा, लोक ओळखत असल्याचे भासवत लोक आहेत, परंतु त्यांना नोकरीवर शिकले पाहिजे.

कोड प्रोफाईलिंग आणि आम्ही डीबगिंग म्हणून संदर्भित असलेल्या गोष्टींची संपूर्ण श्रेणी, जे प्रोग्राम कार्य करणे थांबविणारे बग शोधत नाहीत, परंतु सिस्टम आणि खराब संरचित कोडमध्ये नुकतीच हानी पोहोचविणारे दोष. जेव्हा आपण आता या स्क्रीनकडे पहात आहात आणि आपण विचार करता, हे फक्त त्याचे प्रकारचे गोंडस आहे आणि आपण असे म्हणता, "व्वा, काय छान ग्राफिक आहे, आयडी ते चालविणे आवडते." परंतु कल्पना करा की व्यवसायाच्या तर्कशास्त्रानुसार काही चालले आहे. ते खूप व्यवस्थित दिसत आहे, परंतु हे गणितीय ग्राफिकरित्या प्रस्तुत अराजक सिद्धांत बोलते, परंतु जेव्हा आपण काही व्यवसायिक तर्कात याचा संभाव्यपणे काय उपयोग करता येईल याबद्दल विचार करता तेव्हा आपण चित्र फार लवकर प्राप्त करता. आणि खरोखर हे स्पष्ट करण्यासाठी - आणि मला दिलगीर आहे की रंग उलटे आहेत, ही एक काळी पार्श्वभूमी आहे आणि हिरव्या रंगाचा हिरवा हिरवा रंग असावा, परंतु तरीही आपण ते वाचू शकता.

मी गेलो आणि जेव्हा आपण खरोखर वेडा असाल आणि आपल्याला काही अनुभव नसेल आणि प्रोग्रामिंगच्या वेगळ्या पार्श्वभूमीतून आला असेल आणि एस क्यू एल वर सी ++ च्या पसंती लागू केल्या असतील तर माझा दृष्टिकोन स्पष्ट करण्यासाठी आपण संभाव्यत: काय करू शकता याचे एक उदाहरण पहा. मी IDERA कडील आमच्या शिकलेल्या अतिथीस देतो. ही सी ++ सारखीच रचना केलेली क्वेरी आहे, परंतु ती एसक्यूएलमध्ये कोडित आहे. आणि हे प्रत्यक्षात अंमलात आणते, परंतु हे सुमारे तीन ते पाच मिनिटांच्या कालावधीत अंमलात आणते. आणि बहुविध डेटाबेसमधून बहुधा सामील होणार्‍या डेटाची एक ओळ मागे ओढते.

पुन्हा, याचा संपूर्ण मुद्दा असा आहे की जर आपल्याकडे योग्य साधने नसतील, जर आपल्याकडे या वस्तू पकडण्यासाठी सक्षम प्लॅटफॉर्म आणि वातावरण नसेल तर आणि ते तयार होतील आणि मग आपल्याकडे प्रत्येक सिस्टमला १०,००,००० लोक मारतील. दिवस, तास, किंवा मिनिट, फार लवकरच आपण चेर्नोबिलच्या अनुभवाचा शेवट घ्याल जिथे मोठा लोह खाली वितळतो आणि त्या ग्रहाच्या गाभावर स्वतःला दफन करतो, कारण कोडचा तुकडा कधीही तयार होऊ नये. तुमची प्रणाली आणि आपली साधने, मला माफ करा, हे चाचणी प्रक्रियेद्वारे, अगदी यूएटी आणि सिस्टम एकत्रीकरणाद्वारे, कोठेही जाण्यापूर्वी ते निवडायला हवे, कोडचा तो तुकडा उचलला आणि ठळक केला गेला पाहिजे आणि एखाद्यास बाजूला आणले पाहिजे आणि म्हणत, "हे पहा, खरोखरच सुंदर कोड आहे, परंतु आपल्याला त्या संरचित क्वेरीची योग्य प्रकारे रचना करण्यात मदत करण्यासाठी डीबीए मिळवू देते, कारण अगदी स्पष्टपणे, फक्त ओंगळ आहे." आणि तेथील यूआरएल, आपण जाऊ शकता आणि एक नजर देऊ शकता - आपण कधीही लिहिलेली सर्वात जटिल एस क्यू एल क्वेरी. माझ्यावर विश्वास ठेवा, प्रत्यक्षात ते संकलित करते, ते चालते. आणि जर आपण ते कापून पेस्ट केले आणि डेटाबेसची केवळ चेष्टा केली तर हे पाहण्यासारखे काहीतरी आहे; जर आपल्याकडे डेटाबेस पाहण्याची साधने असतील तर एका ओळीत काय आहे ते परत कॉल करण्यासाठी, तीन ते पाच मिनिटांच्या कालावधीत फक्त प्रयत्न करा आणि वितळवा.

तर, थोडक्यात सांगायचे म्हणजे, कोडिंगमधील माझ्या संपूर्ण पार्श्वभूमीने मला शिकवले आहे की आपण लोकांना बंदूक देऊ शकता आणि जर काळजी घेतली नाही तर ते स्वतःला पायात मारतील; युक्ती म्हणजे सुरक्षा यंत्रणा कोठे आहे ते दर्शविणे. आपल्या बोटांच्या टोकावर योग्य साधने आणि योग्य सॉफ्टवेअरसह, आपण कोडिंग पूर्ण केल्यानंतर, आपण आपल्या कोडचे पुनरावलोकन करू शकता, कोडचे प्रोफाइल देऊन आपल्याला अडचणी आढळू शकतात, आपण कार्यक्षमतेच्या समस्या असलेले प्रभावीपणे अज्ञात बग शोधू शकता आणि जसे मी आधी म्हटल्याप्रमाणे एकदा, आपण हिरव्या पडद्याकडे पहात असे करू शकता. आपण आता बोलू शकत नाही; कोडच्या लाखो ओळी आहेत, तेथे हजारो अॅप्स तैनात आहेत, काही घटनांमध्ये लाखो डेटाबेस आहेत आणि अगदी सुपर मानवांकडून प्रत्यक्षात हे सर्व आता हाताने करणे शक्य नाही. आपल्या बोटांच्या टोकावर आपल्याला अचूक शब्दशः आणि योग्य साधनांची आवश्यकता आहे आणि ती साधने वापरत असण्यासाठी आपल्यास कार्यसंघाची आवश्यकता आहे जेणेकरून आपण या मुद्द्यावर पोचण्यापूर्वी या समस्या शोधू शकाल आणि त्या सोडवू शकाल, तर डॉ. रॉबिन ब्लॉर हायलाइट करतात, एकतर गोष्टी विनाशकारी बनतात आणि गोष्टी उडतात किंवा सामान्यत :, ते आपल्यासाठी बरेच डॉलर्स आणि खूप वेळ आणि प्रयत्न खर्च करतात आणि मनोबल आणि सामग्री नष्ट करतात, जेव्हा गोष्टी का घेत नाहीत हे कार्य करू शकत नाहीत. धावण्यासाठी बराच वेळ.

आणि हे लक्षात घेऊन, मी आमच्या पाहुण्याकडे सुपूर्द करणार आहे आणि त्यांनी हा प्रश्न कसा सोडवला हे ऐकण्याची मी उत्सुक आहे. आणि विशेषत: मला वाटते की तो प्राप्त होणार होता. एरिक, आजारी परत.

एरिक कवानाग: ठीक आहे, बर्ट, ते घेऊन जा.

बर्ट स्केलझो: ठिक आहे धन्यवाद. बर्ट स्केलझो येथे आयडीईआरए, आमच्या डेटाबेस साधनांसाठी उत्पादन व्यवस्थापक आहे. आणि मी डीबगिंगबद्दल बोलणार आहे. मला वाटते रॉबिनने पूर्वी म्हटलेल्या सर्वात महत्वाच्या गोष्टींपैकी एक - आणि हे अगदी सत्य आहे की डीबगिंग ही कडक आणि क्षुल्लक आहे आणि जेव्हा आपण डेटाबेसवर जाण्याचा प्रयत्न करता तेव्हा त्यापेक्षा जास्त कठोर आणि क्षुल्लक नसतात - तर, एक महत्त्वाचा कोट होता.

ठीक आहे. मला प्रोग्रामिंगच्या इतिहासापासून सुरुवात करायची होती, कारण बर्‍याच वेळा मी असे लोक पाहतो जे डीबग करत नाहीत, ते डीबगर वापरत नाहीत, ते जे काही भाषा वापरतात त्या प्रोग्राम करतात, आणि बर्‍याच वेळा ते मला म्हणतील, "ठीक आहे, त्या डीबगर गोष्टी नवीन आहेत, आणि आम्ही अद्याप त्या वापरण्यास सुरवात केली नाही. ”आणि म्हणून मी काय करतो ते हा टाइमलाइन चार्ट, पूर्व-इतिहासाचा क्रमवारी, जुना काळ, मध्यम वयोगटातील प्रकार, आम्ही जिथे होतो तिथे प्रकार दर्शवितो प्रोग्रामिंग भाषेच्या अटी. आणि आमच्याकडे बर्‍याच जुन्या भाषा १ 195 1१ मध्ये असेंब्ली कोड, आणि लिस्प आणि फॅक्ट आणि कोबलसह सुरू झाल्या. मग आपण पुढच्या गटामध्ये पासकल्स आणि सीएस आणि त्यानंतर पुढचा गट सी ++ एस मध्ये पाहू आणि मग ते प्रश्न चिन्ह कुठे आहे ते पहा - ते प्रश्न चिन्ह जवळपास १ 197 88 ते १ 1980 1980० च्या आसपास आहे. आमच्यात त्या कोठेतरी डीबगर आमच्यासाठी उपलब्ध आहेत आणि म्हणूनच म्हणायचे, “अहो, मी डीबगर वापरत नाही, त्यापैकी एक नवीन गोष्ट घडवतो,” तर मग तुम्ही प्रोग्रामिंगला सुरुवात केली असेल, तुम्हाला हे माहित असेलच की १ 50 s० च्या दशकात तुम्हाला हेच एकमेव मार्ग मिळेल त्या हक्कापासून दूर

या चार्टबद्दल मजेदार गोष्ट म्हणजे देझने ग्रेस हॉपरबद्दल नुकतीच एक टिप्पणी केली आहे, मला खरंच ग्रेस माहित आहे, म्हणून त्याचा प्रकार हास्यास्पद आहे. आणि मग मी हसलो ती दुसरी गोष्ट म्हणजे तो टेलिटाइपविषयी बोलत होता आणि मी तिथे बसलो होतो, “यार, आम्ही आतापर्यंतच्या उत्पादनात सर्वात मोठी उडी घेतली होती, जेव्हा आम्ही कार्डमधून टेलिटाइपवर गेलो होतो, ही आतापर्यंतची सर्वात मोठी उडी आहे.” , आणि इव्हने एस.एन.ओ.बी.ओ.एल. च्या समावेशासह येथील सर्व भाषांमध्ये प्रोग्राम केले, जे यापूर्वी कधीही ऐकले नव्हते, ते सीडीसी, कंट्रोल डेटा कॉर्पोरेशन होते, म्हणून मला वाटते की या उद्योगासाठी मी थोडी खूप जुनी झाली आहे.

डेझ ब्लांचफिल्ड: मी सांगत होतो, आपण तेथे बुजलेले आहात.

बर्ट स्केलझो: होय, मी सांगत आहे, मला दादा सिम्पसनसारखे वाटते. म्हणून मी डीबगिंगकडे पाहत आहे आणि डीबगिंग करण्याचे वेगवेगळे मार्ग आहेत. आपण सर्व जण डीबगरमध्ये प्रवेश करणे आणि कोडमध्ये प्रवेश करणे म्हणून पारंपारिक कसे विचार करता याबद्दल आपण बोलत असू शकता. परंतु, लोक त्यांचे कोड इन्स्ट्रुमेंट करतील; आपण आपल्या कोडमध्ये स्टेटमेंट्स जिथे चिकटवता आणि कदाचित आपण आउटपुट फाइल, ट्रेस फाइल किंवा काहीतरी तयार करता आणि म्हणून आपण आपला कोड इन्स्ट्रुमेंट करता. मी हे डीबगिंग म्हणून मोजतो, हे थोडे कठीण, करण्याचा एक मार्ग, परंतु ते मोजले जाते. परंतु, आम्हाला प्रसिद्ध विधान देखील मिळाले: आपण पहात आहात आणि लोकांनी प्रत्यक्षात विधान दिले आहे आणि आयव्हीला प्रत्यक्षात एक साधन आढळले आहे - आणि त्याचे डेटाबेस साधन - जेथे डीबगर कसे वापरायचे हे आपल्याला माहित नसल्यास आपण बटण दाबा आणि ते चिकटून राहील आपल्यासाठी आपल्या कोडमधील स्टेटमेन्ट आणि नंतर आपण पूर्ण केल्यावर आपण दुसरे बटण दाबा आणि ते बाहेर पडते. कारण बरेच लोक कसे डिबग करतात.

आणि आम्ही डीबग करण्याचे कारण दोनदा आहेत: सर्व प्रथम, आम्हाला अशा कोड सापडले ज्यामुळे आपला कोड अकार्यक्षम होतो. दुस words्या शब्दांत, सामान्यत: याचा अर्थ असा होतो की तर्कशास्त्र चूक आहे किंवा आम्ही व्यवसायाची आवश्यकता गमावली, परंतु ती म्हणजे कोड प्रभावी नाही; आमच्याकडून अपेक्षेनुसार ते करत नाही. दुसर्‍या वेळी आम्ही डीबगिंग करतो आणि कार्यक्षमतेसाठी आणि ती तर्कशास्त्र चूक देखील असू शकते, परंतु ते काय आहे, मी योग्य ते केले आहे, इतके लवकर परत येत नाही. आता मी हा मुद्दा सांगत आहे कारण कदाचित प्रोफाइलर कदाचित दुस second्या दृश्यासाठी चांगले असतील आणि डीबगर आणि प्रोफाइलर दोघांबद्दल बोलणार आहेत. याव्यतिरिक्त, दूरस्थ डीबगिंगची ही संकल्पना आहे; हे महत्वाचे आहे कारण बर्‍याच वेळा आपण आपल्या वैयक्तिक संगणकावर बसून असाल आणि आपण डीबगर वापरत असाल तर डेटाबेसवर कोड आढळतो जेथे डेटा प्रत्यक्षात कार्यान्वित केला जातो, आपण प्रत्यक्षात रिमोट डीबगिंग म्हणतात. आपल्याला कदाचित याची जाणीव नसेल परंतु काय घडत आहे हे सांगू शकेल. आणि मग, या डीबगर्समध्ये ब्रेक पॉइंट्स, वॉच पॉइंट्स, स्टेप इन स्टेप अप आणि काही सामान्य गोष्टी असणे अगदी सामान्य आहे, जे मी क्षणात स्क्रीन स्नॅपशॉटवर दाखवणार आहे.

आता, प्रोफाइलिंगः आपण वेगवेगळ्या मार्गांनी प्रोफाइलिंग करू शकता. काही लोक असे म्हणतील की वर्कलोड कॅप्चर आणि पुन्हा प्ले करा जिथे ते सर्वकाही मिळविते, त्या प्रोफाइलची गणना केली जाते. नमुना घेतल्यास माझा अनुभव अधिक चांगला झाला आहे. प्रत्येक विधान पकडण्याचे कारण नाही, कारण काही विधाने इतकी पटकन धावतात की आपणास काळजी वाटत नाही, आपण जे पाहण्याचा प्रयत्न करीत आहात ते चांगले आहे, जे वारंवार दर्शवित राहतात, कारण ते बरेच दिवस चालतात. . तर, कधीकधी प्रोफाइलिंग म्हणजे संपूर्ण गोष्ट चालवण्याऐवजी नमुना घेणे होय. आणि सामान्यत:, आपण वापरू शकता असे एक प्रकारचे आउटपुट मिळेल, जे आता आयडीई विकास वातावरणामध्ये दृश्यास्पद असू शकते, जिथे हे आपल्याला कोडच्या विविध ओळींच्या कार्यप्रदर्शनाचा हिस्टोग्राम देईल, परंतु तरीही ते ट्रेस फाईल तयार करते.

प्रोफाइलर प्रथम १ 1979 1979 in मध्ये दिसू लागले. तर, बर्‍याच दिवसांपासून हे देखील होते. संसाधनांचा वापर किंवा कार्यप्रदर्शनाचे प्रश्न शोधण्यासाठी उत्कृष्ट, कार्यक्षमतेच्या शब्दात. साधारणपणे सांगायचे तर, हे डीबगरपेक्षा वेगळे आणि वेगळे आहे, जरी मी एकाच वेळी दोन्ही करत असलेल्या डीबगरसह कार्य केले आहे. आणि प्रोफाइलर मला असे वाटते की दोन साधनांपेक्षा अधिक मनोरंजक आहेत, जर मला असे वाटते की पुरेसे लोक डीबग करत नाहीत, तर नक्कीच लोक पुरेसे नाहीत, कारण दहापैकी एक डीबगर प्रोफाइल करेल, असे दिसते. आणि लाजिरवाणे कारण, प्रोफाइलिंग खरोखरच खूप फरक करू शकते. आता, डेटाबेस भाषा, जसे आपण आधी बोललो आहोत, तुम्हाला एसक्यूएल मिळाला आहे - आणि वेव्ह प्रकारामुळे येथे गोल खूंटीला स्क्वेअर होलमध्ये भाग पाडले गेले आणि त्यास प्रोग्रामिंग भाषा बनविण्यासाठी भाग पाडले - आणि ओरॅकल.ते पीएल / एसक्यूएल - प्रक्रियात्मक भाषा एस क्यू एल - आणि एस क्यू एल सर्व्हर, त्याचे व्यवहार-एसक्यूएल, त्याचे एस क्यू एल -QL., त्याचे एस क्यू एल / पीएसएम - यासाठी आहेत, मला वाटते की तिचे कार्यपद्धती संग्रहित मॉड्यूल. पोस्टग्रेसने त्याला दुसरे नाव दिले, डीबी 2 तर आणखी एक नाव, इनफॉर्मिक्स, परंतु मुख्य म्हणजे प्रत्येकाने 3 जीएल-प्रकारची बांधकामे करण्यास भाग पाडले आहे; दुसर्‍या शब्दात सांगायचे तर व्हेरिएबल डिक्लरेशन्सवर आणि एसक्यूएलला परदेशी असलेल्या इतर सर्व गोष्टी आता त्या भाषांमध्ये एसक्यूएलचा भाग आहेत. आणि म्हणूनच, आपण व्हिज्युअल बेसिक प्रोग्राम प्रमाणेच आपल्याला पीएल / एसक्यूएल किंवा ट्रान्झॅक्ट-एसक्यूएल डीबग करण्यास सक्षम असणे आवश्यक आहे.

आता डेटाबेस ऑब्जेक्ट्स, हे महत्वाचे आहे कारण लोक म्हणतील की, "बरं, डेटाबेसमध्ये मला कोणत्या गोष्टी डीबग करायच्या आहेत?" आणि उत्तर आहे, डेटाबेसमधे तुम्ही जे काही संग्रहित करू शकता कोड म्हणून, - जर मी टी करत असेल तर एसक्यूएल, किंवा पीएल / एसक्यूएल - आणि मी डेटाबेसमध्ये वस्तू साठवतो, ही कदाचित एक संग्रहित प्रक्रिया किंवा संग्रहित कार्य आहे. परंतु तेथे ट्रिगर देखील होते: ट्रिगर हा एक संग्रहित प्रक्रियेसारखा असतो, परंतु तो कोणत्या ना कोणत्या घटनेवर आग लागतो. आता, त्यांच्या ट्रिगरमधील काही कोड कोडची एक ओळ लावतील आणि संग्रहित प्रक्रियेस कॉल करतील जेणेकरून ते त्यांचा सर्व संग्रहित कोड आणि कार्यपद्धती ठेवतील, परंतु ती समान संकल्पनाः अद्याप ती ट्रिगर असू शकते जी संपूर्ण गोष्ट सुरू करते. आणि मग ओरॅकल म्हणून, त्यांच्याकडे पॅकेज नावाचे काहीतरी आहे, जे आपण इच्छित असल्यास लायब्ररीसारखे आहे. आपण एका गटात 50 किंवा 100 संग्रहित कार्यपद्धती ठेवल्या, ज्याला पॅकेज म्हणतात, जेणेकरुन या प्रकारच्या ग्रंथालयासारखे असेल. तर, हेस डीबगर जुन्या मार्गाने; हे खरं तर एक साधन आहे जे आपल्यासाठी आपल्या कोडमध्ये ही सर्व डीबग स्टेटमेन्ट्स प्रत्यक्षात जाईल आणि चिकटवून ठेवेल. तर, जिथेही आपण डीबग ब्लॉक पाहता, हटवू नका, स्वयं डीबगर प्रारंभ करा आणि ट्रेस करा, हे सर्व काही साधनांनी अडकले होते. आणि त्या बाहेरील रेषां, जी कोडचा अल्पसंख्याक आहे, तसेच, मॅन्युअल मॅन्युअल डीबगिंग पद्धतीवर अवलंबून आहे.

आणि हे मी समोर आणण्याचे कारण म्हणजे, जर आपण हे हाताने करण्याचा प्रयत्न करीत असाल तर, आपण कोडसहित नसलेले या स्टेटमेन्टमध्ये टाकण्यासाठी अधिक डीबगिंग कोड टाईप कराल. तर, हे कार्य करीत असताना आणि हे काहीही करण्यापेक्षा चांगले आहे, डीबग करणे हा एक अतिशय कठीण मार्ग आहे, विशेषत: जेव्हा, या गोष्टी चालण्यास 10 तास लागतील आणि जेथे समस्या येत आहे तिथल्या लाइनमध्ये असेल तर? जर मी एक संवादात्मक डिबगिंग सत्र करत होतो तर मला त्यामध्ये तीन - पाच मिनिटांच्या ओळीवर माहित असावे - अहो, येथे एक समस्या आहे, मी सोडू शकते. परंतु यासह, इव्हने हे पूर्ण होण्याच्या संपूर्ण मार्गाची प्रतीक्षा करावी लागली आणि मग मी काही ट्रेस फाइल पाहिली ज्यामध्ये कदाचित या सर्व विधाने आहेत, आणि प्रयत्न करा आणि गवत मध्ये सुई शोधा. पुन्हा, हे काहीही न करण्यापेक्षा चांगले आहे, परंतु कार्य करण्याचा हा सर्वोत्तम मार्ग नाही. आता ही फाईल आधीच्या स्लाईडवरून दिसते आहे. दुस words्या शब्दांत, मी प्रोग्राम चालविला, आणि मला या ट्रेस फाइलमधील स्टेटमेन्टचा नुकताच एक समूह मिळाला आणि मी त्यातून सायफॉन करू शकणार नाही किंवा मला जे पाहिजे आहे ते शोधू शकेल. तर, पुन्हा, मला खात्री नाही की आपण काम करू इच्छिता अशीच आहे.

आता, परस्परसंवादी डीबगर - आणि जर आपण प्रोग्राम लिहिण्यासाठी व्हिज्युअल स्टुडियो सारखे काहीतरी वापरलेले असल्यास किंवा ग्रहण असल्यास, आपल्याकडे डीबगर होते आणि आपण आपल्या इतर भाषांसह त्या वापरल्या आहेत - आपल्या डेटाबेससह येथे त्यांचा वापर करण्याचा विचार केला नाही. आणि तेथे आपली साधने आहेत, आमची डीबी आर्टिझन आणि आमच्या रॅपिड एसक्यूएल सारखीच ही येथे रॅपिड एसक्यूएल आहे, ज्यात डिबगर आहे आणि आपण डाव्या बाजूला पाहू शकता, माझ्याकडे "डुप्लिकेटची तपासणी करा" नावाची एक संग्रहित प्रक्रिया आहे. मूलभूतपणे, हे फक्त जाऊन असे पहायला मिळेल की माझ्याकडे सारख्याच चित्रपटाच्या शीर्षकासह एकाधिक पंक्ती आहेत. डेटाबेस चित्रपटांसाठी आहे. आणि तुम्ही उजव्या बाजूने पाहू शकाल, वरच्या तिसर्‍या बाजूस, Ive ला मध्यभागी माझा स्त्रोत कोड मिळाला, Ive ला माझ्या घड्याळाचे व्हेरिएबल्स आणि कॉल कॉल स्टॅक ट्रे असे म्हटले गेले, आणि मग तळाशी Ive ला काही आउटपुट मिळाले. आणि सर्वात महत्त्वाचे म्हणजे, जर तुम्ही त्या पहिल्या लाल बाणावर नजर टाकली, जर मी व्हेरिएबलवर माउस लावला तर मी त्या कोडमध्ये पाऊल टाकत त्या क्षणी त्या व्हेरिएबलचे मूल्य काय आहे ते मला प्रत्यक्षात दिसेल. आणि ते खरोखर उपयुक्त आहे, आणि नंतर मी कोडच्या माध्यमातून एका वेळी एक ओळ चरणात जाऊ शकते, मला एक्झीक्यूट म्हणायचे नाही, मी एक पाऊल टाकून असे म्हणू शकतो, काय झाले ते मला पाहू द्या, दुसरी ओळ द्या, काय झाले ते मला पाहू द्या. मी हे डेटाबेसमध्ये करत आहे. आणि जरी मी माझ्या पीसी वर रॅपिड एस क्यू एल वर बसलो आहे आणि माझा डेटाबेस क्लाऊडमध्ये आहे, तरीही मी अद्याप हे रिमोट डीबगिंग करू शकतो आणि ते इथून नियंत्रित करू शकतो आणि इतर कोणत्याही भाषेप्रमाणेच डीबगिंग करू शकतो.

आता तेथे पुढचा बाण - आपण त्या DBMS आउटपुटच्या दिशेने उजवीकडे इशारा दाखवणा little्या लहान बाणासारखे पाहू शकता, जेथे माझा कर्सर सध्या आहे तिथेच आहे - तर दुसर्‍या शब्दात सांगायचे झाले तर मी इव्ह स्टेप केला आणि त्या क्षणी मी जिथे आहे तिथे आहे. म्हणून, जर मी असे म्हटले तर “पुन्हा पाऊल टाका,” मी पुढच्या ओळीवर जात आहे. आता त्या खाली तुम्हाला लाल बिंदू दिसेल. ठीक आहे, एक ब्रेकपॉईंट म्हणतो, “अहो, मला या ओळींवरुन जायचे नाही.” जर मला फक्त सर्व गोष्टींवर जायचे असेल आणि त्या लाल बिंदूच्या ठिकाणी जायचे असेल तर मी रन बटण दाबा आणि इथून येथून पळू शकतो. शेवट असल्यास किंवा ब्रेकपॉईंटवर काही ब्रेकपॉइंट्स सेट केले असल्यास, आणि नंतर ते थांबेल आणि मला पुन्हा चरणबद्ध करू द्या. हे सर्व महत्त्वाचे आणि सामर्थ्यवान कारण आहे, कारण जेव्हा मी हे सर्व करत असतो तेव्हा मध्यभागी आणि अगदी तळाशी काय घडत आहे - परंतु सर्वात महत्वाचे म्हणजे मध्यभागी बदलली जाईल आणि मी माझ्या व्हेरिएबल्समधील मूल्ये पाहू शकेन. माझा कॉल स्टॅक ट्रेस पहा, आपल्याला माहिती आहे आणि म्हणूनच ती सर्व माहिती मी कोडमधून बाहेर पडत असताना दर्शविली गेली आहे, जेणेकरून प्रत्यक्षात काय चालले आहे आणि कोड प्रत्यक्षात अंमलबजावणीच्या वेळी कसे कार्य करीत आहे याबद्दल मी पाहू शकतो आणि जाणवू शकतो. . आणि सामान्यत: मला एखादी समस्या असल्यास किंवा मी ते पकडण्यासाठी पुरेसे चांगले असल्यास एक समस्या शोधू शकते.

ठीक आहे, आता मी एक प्रोफाईलर बद्दल बोलणार आहे आणि या प्रकरणात, हा एक प्रोफाईलर आहे जो मी डीबगरद्वारे पाहू शकतो. लक्षात ठेवा मी म्हणालो कधीकधी ते वेगळे असतात आणि कधीकधी ते एकत्र असू शकतात? या प्रकरणात आणि पुन्हा, आयएम इन रॅपिड एसक्यूएल, आणि मी डाव्या बाजूस, रेखा क्रमांकांशेजारी, मार्जिन शोधू शकतो. आणि ते म्हणजे प्रत्येक कोडची अंमलबजावणी करण्यासाठी लागणार्‍या सेकंदांची संख्या किंवा मायक्रोसेकंड्स, आणि मी हे स्पष्टपणे पाहु शकतो की माझा सर्व वेळ या एका लूपसाठी खर्च झाला आहे जेथे मी टेबलमधून सर्व काही निवडत आहे. आणि म्हणूनच, फॉर लूपच्या आत घडणारे व्हेटवर्स बहुदा मला पाहण्याची गरज आहे आणि मी त्यास अधिक चांगले बनवू शकल्यास ते लाभांश देईल. ०.० 90 किंवा ०.86; सारख्या ओळींवर काम करून मी कोणतीही सुधारणा करणार नाही; तेथे जास्त वेळ घालवला नाही. आता या प्रकरणात आणि पुन्हा, आयएम इन रॅपिड एसक्यूएल, आपण माझ्या डीबगिंगसह इंटरमिक्स केलेले प्रोफाइल कसे कार्य करू शकता हे पाहत आहात. आता रॅपिड एसक्यूएल काय छान आहे ते आपल्याला दुसर्‍या मार्गाने करण्याची परवानगी देखील देते. रॅपिड एसक्यूएल आपल्याला असे म्हणण्याची परवानगी देतो, “तुला काय माहित आहे? मला डीबगरमध्ये रहायचे नाही, मला फक्त हे चालवायचे आहे आणि त्यानंतर मी त्याच प्रकारच्या माहितीचा ग्राफिक किंवा दृष्यदृष्ट्या पाहू इच्छितो. "

आणि तुम्ही पाहु शकता की मी यापुढे डीबगरमध्ये नाही आणि तो प्रोग्राम चालवितो आणि अंमलबजावणी झाल्यावर, मला गोष्टी सांगण्यासाठी चार्ट्स देते जेणेकरून माझ्या लक्षात येईल की माझ्याकडे असे एक विधान मिळाले आहे जे बहुतेक पाई घेण्यासारखे दिसते. चार्ट आणि जर मी पाहिले तर मला त्या ग्रीडवर तळाशी, ओळ 23 दिसेल, त्याकरिता पुन्हा लूप आहे: बहुतेक वेळेस हिसकावून घ्या, खरं म्हणजे तो गडद लाल सर्व पाई चार्ट चघळत आहे. प्रोफाइलिंग करण्याचा हा आणखी एक मार्ग आहे. आमच्या साधनामध्ये आम्ही त्यास “कोड विश्लेषक” म्हणतो. परंतु हे मूलतः फक्त प्रोफाइलर डीबगरपासून विभक्त झाले आहे. काही लोकांना हे प्रथम मार्गाने करणे आवडते, काही लोकांना ते दुसर्‍या मार्गाने करणे आवडते.

आम्ही डीबगिंग आणि प्रोफाइलिंग का करतो? हे असे नाही की आम्ही जगातील सर्वात मोठा कोड लिहायचा आहे आणि पगाराची भरपाई मिळवू इच्छितो - ते आपले कारण असू शकते परंतु आपण हे करण्याचे कारण देत नाही - आपण आपला व्यवसाय प्रभावी होईल असे आपण व्यवसायाचे वचन दिले होते की आपण काहीतरी योग्यरित्या कराल. आपण ज्यासाठी डीबगर वापराल तेच. याव्यतिरिक्त, व्यवसाय शेवटचे वापरकर्ते; ते फार धैर्यवान नाहीत: की दाबण्यापूर्वीच त्यांना निकाल हवा असतो. त्यांचे मन वाचले पाहिजे आणि सर्वकाही त्वरित करावे. दुस .्या शब्दांत, ते कार्यक्षम झाले. आणि म्हणूनच आम्ही प्रोफाइलर काय वापरायचे ते सांगतो. आता या साधनांशिवाय, धनुष्यबाण आणि धनुष्याने आपल्या व्यवसायाच्या दालनात हा माणूस आहे यावर माझा खरोखर विश्वास आहे आणि आपण लक्ष्यवर शूट करीत आहात आणि आपण डोळे बांधलेले आहात. कारण एखादा प्रोग्रॅम फक्त स्थिर कोड बघून कसा अंमलात जातो हे कसे शोधून काढणार आहोत आणि ती स्टॅक्टिक कोड बघून पुन्हा कोणती रेषा आहे जिथे ती खरोखर अंमलात जाण्यासाठी सर्वात जास्त वेळ घालवेल? कोड पुनरावलोकनात यापैकी काही गोष्टी होऊ शकतात किंवा नसू शकतात परंतु कोड पुनरावलोकन केल्यास या सर्व गोष्टी सापडतील याची शाश्वती नसते. डीबगर आणि प्रोफाइलर वापरुन आपण त्यातील सर्व दोष शोधण्यास सक्षम असावे.

ठीक आहे, मी येथे खरोखर द्रुत डेमो करणार आहे. उत्पादनावर ढकलण्याचा माझा हेतू नाही, डीबगर काय दिसते हे मी आपल्याला दर्शवू इच्छितो कारण बर्‍याच वेळा लोक म्हणतील, "मी यापूर्वी कधीही पाहिले नाही." आणि स्क्रीन स्नॅप स्लाइडमध्ये ते सुंदर दिसते पण काय जेव्हा ते चालू असेल तेव्हा असे दिसते काय? तर, माझ्या स्क्रीनवर मी आमचे डीबी आर्टिझन उत्पादन चालवित आहे; आमचे तिथेही एक डिबगर आहे. डीबी आर्टिझन म्हणजे डीबीएसाठी अधिक, रॅपिड एसक्यूएल विकसकांसाठी अधिक आहे, परंतु मी डीबी आर्टिझन वापरणारे विकसक पाहिले आहेत आणि रेव्हिडचा वापर करणारे डीबीए पाहिले आहेत. तर, उत्पादनावर अडकून राहू नका. आणि येथे, मला डीबग करण्याची निवड आहे, परंतु मी डीबग सुरू करण्यापूर्वी, मी हा कोड काढत आहे जेणेकरून मी कोड चालविण्यापूर्वी कोड कसा दिसतो हे आपण पाहू शकता. तर, स्क्रीन स्नॅपशॉटमध्ये असलेला नेमका हाच कोड येथे आहे, डुप्लिकेटसाठी हा माझा चेक आहे. आणि मला हे डीबग करायचे आहे, म्हणून मी डीबग दाबा. आणि आता, यास एक क्षण लागतो आणि आपण म्हणता, “ठीक आहे, एक क्षण का घेत आहे?” रिमोट डीबगिंग लक्षात ठेवाः डीबगिंग माझ्या PC वर नाही, तर माझ्या डेटाबेस सर्व्हरवर घडत आहे. तर, तेथे जाऊन एक सत्र तयार करावे लागेल, एक रिमोट डीबगिंग सामग्री तयार करावी लागेल, माझे सत्र त्या दूरस्थ डिबगिंग सत्राकडे वळवावे लागेल आणि एक संप्रेषण चॅनेल स्थापित करावे लागेल.

तर, आता, माझा बाण येथे वरच्या बाजूस वर आहे, एका ओळीने, कोडमध्ये मी जिथे आहे तिथे आहे. आणि मी तिथे तिसरे प्रतीक दाबले, जे एक पाऊल आहे, आपणास ती बाण आता सरकलेला दिसेल, आणि मी तो दाबत राहिल्यास, आपण ते हलवत असल्याचे दिसेल. आता मला या फॉर लूपपर्यंत जायचे असेल, कारण समस्या कोठे आहे हे मला ठाऊक आहे, मी ब्रेकपॉईंट सेट करू शकतो. मला वाटले की मी ते सेट केले आहे. अगं शूट, मी माझ्या स्क्रीन कॅप्चर की एक डीबगर सारख्या की वर मॅप केली होती, यामुळे गोंधळ होतो. ठीक आहे, म्हणून मी तेथे व्यक्तिचलितपणे तेथे ब्रेकपॉईंट सेट करतो, म्हणून आता मी तेथे येईपर्यंत एक पाऊल, पाऊल, पाऊल, पाऊल टाकण्याऐवजी मी फक्त असे म्हणू शकतो की, “पुढे जा आणि ही गोष्ट चालवा,” आणि ते थांबेल. लक्षात घ्या की ब्रेक पॉइंट ज्या ठिकाणी गेला त्या दिशेने तो मला खाली गेला, म्हणून मी आता हे पळवाट चालवित आहे, माझे सर्व व्हेरिएबल्स काय सेट आहेत ते मी पाहू शकतो, जे आश्चर्यचकित नाही, कारण मी त्या सर्वांना आरंभ केला. शून्य आणि आता मी या लूपमध्ये जाऊ शकते आणि या लूपमध्ये काय चालले आहे ते पाहणे सुरू करू शकतो.

तर, आता ती माझ्या भाड्याने घेण्यापासून निवडलेली मोजणी करेल आणि मी त्या व्यक्तीवर माउस टाकू आणि पहा, दोन, दोन एकापेक्षा मोठे आहे, तर कदाचित हा कोडचा पुढील भाग करेल. दुसर्‍या शब्दांत, त्यात काहीतरी आढळले. मी फक्त पुढे जाईन आणि ते पळु दे. मला इथल्या प्रत्येक गोष्टीमधून जाण्याची इच्छा नाही; डीबगर पूर्ण झाल्यावर मला जे दाखवायचे आहे ते सामान्य प्रोग्राम प्रमाणेच पूर्ण होते. Ive ला ब्रेकपॉईंट सेट आला आहे, म्हणून जेव्हा मी धाव म्हणालो तेव्हा ते फक्त पुढच्या ब्रेकपॉईंटवर गेले. मी हे शेवटपर्यंत पळवून लावतो, कारण मी तुम्हाला हे पाहू इच्छित आहे की डीबगर प्रोग्रामची वागणूक बदलत नाही: हे पूर्ण झाल्यावर, मी डीबगरच्या आत न चालवल्यास मला सारखेच परिणाम मिळाले पाहिजेत.

आणि त्यासह मी डेमो निलंबित करून परत जात आहे कारण आम्हाला प्रश्न आणि उत्तरासाठी वेळ असल्याचे सुनिश्चित करायचे आहे. आणि म्हणूनच मी हे प्रश्न आणि उत्तरांसाठी उघडेल.

एरिक कवानाग: ठीक आहे, रॉबिन, कदाचित तुमच्याकडून एखादा प्रश्न असेल आणि मग डेझचा एक जोडपे?

रॉबिन ब्लॉर: होय, नक्कीच, मला हे नक्कीच मोहक वाटते. इव्हने यासारख्या सामग्रीसह कार्य केले, परंतु मी डेटाबेसमध्ये यासारखे कधीही काम केले नाही. लोक मला प्रोफाइलर कशासाठी वापरतात याबद्दल आपण मला थोडी कल्पना देऊ शकता? कारण जसे की ते पहात आहेत - कारण मी असे मानतो की ते आहेत - ते कामगिरीच्या मुद्द्यांकडे पहात आहेत, डेटाबेसला वेळ लागतो आणि कोडला वेळ लागतो तेव्हा फरक करण्यास मदत होते काय?

बर्ट स्केलझो: तुम्हाला माहिती आहे, हा एक विलक्षण प्रश्न आहे. चला व्हिज्युअल बेसिकमध्ये काम करत आहे असे म्हणू द्या आणि मी, माझ्या व्हिज्युअल बेसिक इमच्या आत ट्रान्झॅक्ट-एसक्यूएल किंवा पीएल / एसक्यूएल कॉल करणार आहे. मला पीएल / एसक्यूएल करू द्या, कारण ओरॅकल मायक्रोसॉफ्ट टूल्ससह नेहमीच खेळत नाही. मी कदाचित माझा व्हिज्युअल बेसिक कोड प्रोफाइल करीत आहे, आणि तेथील प्रोफाइल म्हणू शकेल, "अहो, मी ही संचयित प्रक्रिया कॉल केली आहे आणि यास बराच वेळ लागला आहे." परंतु नंतर मी संग्रहित प्रक्रियेत जाऊ शकते आणि मी संग्रहित डेटाबेस प्रोफाइल करू शकतो प्रक्रिया करा आणि म्हणा, “ठीक आहे, येथे असलेल्या 100 विधानांपैकी, ही समस्या उद्भवणा .्या पाच पैकी एक आहे.” आणि म्हणूनच, आपल्याला टॅग टीम करावी लागेल, जिथे आपल्याला एकाधिक प्रोफाइलर वापरावे लागतील.

कल्पना आहे की आपल्या कार्यक्षमतेची समस्या आपल्या डेटाबेसमध्ये असल्याचे आपल्याला कधीच सांगण्यात आले तर डेटाबेस प्रोफाइल आपल्याला गवताच्या खोड्यात सुई शोधण्यात मदत करू शकते ज्यावर आपण ज्या ठिकाणी समस्या उद्भवत आहे त्या स्टेटमेंट्स वास्तविक असतात. मी तुम्हाला आणखी एक गोष्ट सांगत आहे जी प्रोफाइलिंगसह बदलली आहे: जर आपल्याकडे कोडचा एक तुकडा असेल जो दहा लाख वेळा कॉल केला जाईल, परंतु त्यास प्रत्येक दशलक्ष वेळा मायक्रोसेकँड घेतला जाईल, परंतु त्याला दहा लाख वेळा कॉल केले जाईल, प्रोफाइलर काय दर्शवेल , ही गोष्ट बर्‍याच वेळेसाठी चालली. आणि म्हणून ही कोड अत्यंत कार्यक्षम असू शकेल परंतु आपण कदाचित पहा आणि म्हणू शकाल की “ओहो, कोडच्या तुकड्यावर बर्‍याचदा हा कॉल करत होता. कदाचित आम्ही प्रत्येक वेळी रेकॉर्डवर प्रक्रिया करण्याऐवजी प्रत्येक वेळी फक्त त्याला कॉल केला पाहिजे, ”किंवा काहीतरी. आणि म्हणूनच आपल्याला तेथे कार्यक्षम कोड आहे जिथे खूप वेळा म्हणतात, आणि प्रत्यक्षात कामगिरीची समस्या शोधू शकता.

रॉबिन ब्लॉर: होय, आश्चर्यकारक आहे. Ive हे कधीही केले नाही. आपण पहा, अर्थातच, जेव्हा मला डेटाबेस समस्या आल्या तेव्हा असे वाटले की मी एक मार्गात किंवा डेटाबेससह व्यवहार करीत आहे किंवा कोडशी व्यवहार करीत आहे; मी एकाच वेळी या दोघांशी कधीही व्यवहार करू शकलो नाही. पण तिथे पुन्हा मी असे केले नाही - आम्ही आमच्याकडे कार्यपद्धती संग्रहित केलेल्या अनुप्रयोग तयार करण्यामध्ये खरोखरच गुंतलेला नव्हता, म्हणून माझा असा अंदाज आहे की मला कधीच जंगली चालवण्यास त्रास देणार्‍या समस्यांकडे कधीच धावणार नाही, ही कल्पना आहे की आपण कोड दरम्यान विभाजित कराल डेटाबेस आणि प्रोग्राम. परंतु, सर्व करा, मी उत्तरे होय असे मानत आहे, परंतु हे विकास कार्यसंघाच्या क्रियांचा भाग आहे, जेव्हा आपण एखाद्या मार्गाने किंवा दुसर्या मार्गाने काहीतरी निराकरण करण्याचा प्रयत्न करीत असाल किंवा कदाचित नवीन अनुप्रयोग एकत्र आणण्याचा प्रयत्न करीत असाल. परंतु वातावरणात ज्या इतर घटकांची मी अपेक्षा करतो त्या सर्वांसह हे सर्व अनुरूप आहे? मी अशी अपेक्षा करू शकतो की मी हे सर्व माझ्या सर्व चाचणी पॅक आणि मी करत असलेल्या सर्व गोष्टी आणि माझ्या प्रकल्प व्यवस्थापन सामग्रीसह एकत्र क्लिप करू शकतो, हे सर्व क्लिप एकत्र कसे आहेत?

बर्ट स्केलझो: होय, तो आपला प्रोग्रामिंग किंवा विकास प्रयत्न करण्यासाठी कोणत्याही संरचित प्रक्रियेचा भाग होऊ शकतो. आणि हे गमतीशीर म्हणजे गेल्या आठवड्यात माझ्याकडे एक ग्राहक होता जो वेब अनुप्रयोग बनवित होता आणि त्यांचे डेटाबेस लहान होते, ऐतिहासिकदृष्ट्या आणि त्यामुळे बरेच चांगले प्रोग्रामर नव्हते हे त्यांना कधीच इजा झाले नाही. बरं, त्यांचा डेटाबेस बर्‍याच वर्षांत वाढत गेला आहे, आणि आता वेबपृष्ठामध्ये २० सेकंद लागतात, जेव्हा आपण म्हणता तेव्हा “लॉग इन करा आणि मला काही डेटा द्या’ आणि स्क्रीन प्रत्यक्षात येईल तेव्हा, आणि म्हणून आता कामगिरी समस्या. आणि त्यांना त्यांच्या जावा किंवा त्या इतर कोणत्याही ठिकाणी समस्या नाही हे माहित आहे. परंतु त्यांच्याकडे हजारो संग्रहित प्रक्रिया आहेत आणि म्हणूनच त्यांना हे वेबपृष्ठ 20 सेकंद का घेत आहे हे शोधण्यासाठी संचयित कार्यपद्धतींचे प्रोफाइलिंग करावे लागले. आणि आम्हाला प्रत्यक्षात त्यांच्या एका निवडक विधानात कार्टेशियन सामील झाल्याचे आढळले आणि त्यांना ते माहित नव्हते.

रॉबिन ब्लॉर: व्वा.

बर्ट स्केलझो: पण कोणीतरी मला एकदा विचारले, "बरं, ते एक कार्टेशियन सामील होऊ शकतात आणि हे त्यांना कसे माहित नाही?" आणि हे खरोखर भयानक वाटतं; कधीकधी एखादा प्रोग्रामर ज्यास एसक्यूएलचा फारच सोयीस्कर नसतो तो मला कार्टेशियन जॉइन देण्यासारखे काहीतरी करेल, परंतु नंतर मला फक्त पहिला रेकॉर्ड परत देईल, तर मला माहित आहे की मला काहीतरी मिळाले आहे, आणि मला फक्त प्रथम आवश्यक आहे. आणि म्हणूनच त्यांना हे समजत नाही की त्यांनी नुकतीच एक अब्ज रेकॉर्ड परत आणला आहे किंवा ते अब्ज नोंदी पाहतात, कारण त्यांना त्यांच्यात रस होता.

रॉबिन ब्लॉर: व्वा, मला माहिती आहे, काय म्हणतात ते चांगले आहे, ते म्हणजे डेझ काय चालले आहे, लोकांच्या दृष्टीने जेवढे कुशल असले पाहिजे तितके कुशल नाही. आपण प्रोग्रामर असल्यास, आपल्याला कमांड जारी करण्याच्या परिणामाचे काय माहित असावे. म्हणजे खरोखर, मूर्खपणाच्या पातळीवर कोणतेही निमित्त नाही. मी असेही गृहीत धरत आहे की आपण या मार्गाने अज्ञेयवादी एक प्रकारे किंवा दुसर्‍या मार्गाने आहात, कारण हे सर्व डेटाबेसच्या बाजूला केंद्रित आहे. मी त्यात बरोबर आहे का? हे फक्त समान आहे, कोडींग बाजूला आपण जे काही वापरत आहात ते?

बर्ट स्केलझो: पूर्णपणे, आपण हे फोर्ट्रान किंवा सी किंवा सी ++ मध्ये करू शकता. खरं तर, काही युनिक्सवर आपण त्यांच्या स्क्रिप्टिंग भाषांसाठी देखील हे करू शकता; ते प्रत्यक्षात समान साधने प्रदान करतात. आणि मग आपण ज्या निमित्तात म्हटले त्याबद्दल मला एक सेकंद मागे जायचे आहे. मी प्रोग्रामरला एक ब्रेक देणार आहे, कारण बसच्या खाली प्रोग्रामर टाकणे मला आवडत नाही. परंतु समस्या खरोखर शैक्षणिक वातावरण आहे कारण जेव्हा आपण प्रोग्रामर कसा व्हायचा हे शिकता तेव्हा आपण रेकॉर्ड-अ-ए-टाइम विचार शिकवले जाते. आपल्याला सेट थिंकिंग शिकवले जात नाही आणि स्ट्रक्चर्ड क्वेरी लँग्वेज किंवा एसक्यूएल हे सेट्ससह कार्य करते; आपल्याकडे युनियन, छेदनबिंदू आणि वजा ऑपरेटर का आहे ते होय. आणि सेट्सच्या बाबतीत कधीही विचार न केलेल्या एखाद्या व्यक्तीसाठी, सोडणे, रेकॉर्ड-ए-ए-टाइम प्रक्रिया करणे आणि सेट्ससह कार्य करणे हे कधी कधी कठीण असते.

रॉबिन ब्लॉर: हो, मी तुमच्याबरोबर आहे. म्हणजे, आता मी मिळतो, हे शिक्षणाचा मुद्दा आहे; मला असे वाटते की हे पूर्णपणे शिक्षणविषयक प्रश्न आहे, मला असे वाटते की प्रोग्रामर प्रक्रियात्मकरित्या विचार करतात हे स्वाभाविक आहे. आणि एस क्यू एल प्रक्रियात्मक नाही, हे घोषणात्मक आहे. आपण खरोखर असे म्हणत आहात की "मला हेच पाहिजे आहे आणि आपण हे कसे करता याची मला काळजी नाही," तुम्हाला माहिती आहे? प्रोग्रामिंग भाषेसह आपण अनेकदा आपल्या आस्तीन गुंडाळतात आणि आपण मोजणी करत असताना देखील मोजणीच्या मोजमापांमध्ये खाली येतात. आजारी हात वर

बर्ट स्केलझो: नाही, ठीक आहे.

होय, मी म्हणालो होतो की आपण एक आणखी एक उदाहरण समोर आणले आहे की एक प्रोफाईलर उत्तम प्रकारे चांगले पकडेल, या प्रकारच्या रेकॉर्ड-ए-ए-टाइम प्रक्रियेसह प्रकारची आहे. कधीकधी, प्रोग्रामर जो रेकॉर्ड-ए-ए-टाइम लॉजिकमध्ये चांगला असतो, तो एसक्यूएल प्रोग्राम कसे करावे हे शोधू शकत नाही. बरं, समजा, तो दोन फॉर लूप बनवितो आणि मुळातच जॉईन करतो, पण तो क्लायंटच्या बाजूने करतो. म्हणून, सामील होण्यासारखेच कार्य करत रहा, परंतु स्वतःच ते करण्यास संकोच करा, आणि एक प्रोफाईल त्यास पकडेल, कारण डेटाबेस सर्व्हरने आपल्यासाठी त्याऐवजी सामील होण्यासाठी तुम्ही जास्त वेळ घालवाल.

रॉबिन ब्लॉर: होय, ती आपत्ती होईल. म्हणजे, आपण फक्त आजूबाजूस मारहाण कराल. मारहाण नेहमी वाईट.

असं असलं तरी, मी डेझवर जाऊ; नक्कीच मला काही मनोरंजक प्रश्न मिळाले.

डेझ ब्लांचफिल्ड: धन्यवाद, होय, मी करतो. मी तुमच्याबरोबर बसच्या खाली फेकणार्‍या प्रोग्रामरमध्ये सामील होणार आहे. म्हणजे, मी आयुष्यात बरीच वर्षे स्वतः एक कोडर म्हणून घालविली, प्रत्येक स्तरावर, तुम्हाला माहिती आहे, की आपण सांगितले त्याप्रमाणे, युनिक्स मशीनच्या कमांड लाइनवर बसून, आणि काही प्रकरणांमध्ये, मी अगदी त्यात सामील होतो एका हार्डवेअर प्लॅटफॉर्मपासून दुसर्‍या हार्डवेअर प्लॅटफॉर्मवर युनिक्सची विविध पोर्ट्स. आणि आपण तेथे असलेल्या आव्हानांची आपण कल्पना करू शकता. परंतु वास्तविकता ही आहे की जगातील प्रत्येक कोडर आणि स्क्रिप्टरसाठी जेल-आउट-जेल कार्ड हे अगदी रॉकेट विज्ञान आहे, अगदी अक्षरशः, दरवेळी खरोखर घट्ट लिहिणे, हे एक रॉकेट विज्ञान आहे. आणि डेनिस रिची आणि ब्रायन केरहान सारख्या लोकांच्या कथित कथा स्वतंत्रपणे कोडच्या काही तुकड्यावर काम करत होती आणि नंतर एका कॉफीवर कोड पुनरावलोकनाच्या गप्पांकडे वळत असतात आणि त्याच प्रोग्राममध्ये अगदी त्याच कोडमध्ये कोड लिहिल्या जातात हे शोधून काढतात. त्याप्रमाणे. आणि त्यांनी ते सी मध्ये केले. परंतु प्रोग्रामिंगची ते शुद्ध पातळी फारच क्वचितच अस्तित्वात आहे.

वस्तुस्थिती अशी आहे की दररोज, दिवसामध्ये फक्त 24 तास असतात, आठवड्यातून सात दिवस आणि आपल्याला फक्त काम पूर्ण करावे लागते. आणि म्हणूनच, जेव्हा केवळ पारंपारिक प्रोग्रामर, डीबीए, आणि कोडर, आणि स्क्रिप्टर्स, आणि सिसॅडमीन, आणि नेटवर्क प्रशासक, आणि सुरक्षा कर्मचारी आणि सर्व काही आजकाल नागरिकांच्या डेटा बाजूस येत नाहीत; आम्ही ऐकतो, प्रत्येकजण त्यांचे कार्य करण्याचा प्रयत्न करीत आहे. आणि म्हणून मला वाटते की या सर्व गोष्टींमधून घेतलेले मोठे आकर्षण म्हणजे मला तुमचा डेमो आवडला आणि आपण आम्हाला ज्या ठिकाणी सोडले त्या मला खूपच आवडले, अगदी काही क्षणापूर्वी, रॉबिनशी याबद्दल बोलले होते की हे एक विशिष्ट आहे - कदाचित इतके जास्त नाही एक कोनाडा - परंतु लागू होणारी विस्तृत जागा, जेथे कोडिंग कोड आणि एसक्यूएल आणि डेटाबेस आहेत. परंतु आपण ते शेल स्क्रिप्टवर रोखू शकता आणि काही समस्या शोधू शकाल असे ऐकून मला खरोखर आनंद झाला होता, कारण आपल्याला माहिती आहे की आजकाल आणि वय नेहमीच प्रत्येक गोष्टीवर सर्वात कमी किंमतीसाठी काम करत होते.

आपण कोठेतरी $ 6 शर्ट विकत घेऊ शकता, कारण एखाद्याने खरोखर स्वस्त उत्पादन आणि जहाज आणि तर्कशास्त्रदृष्ट्या वितरित आणि विक्री आणि किरकोळ विक्री करण्यासाठी एक स्वस्त प्रणाली तयार केली आहे आणि ती $ 6 शर्ट मिळविण्यासाठी ऑनलाइन पैसे भरले आहेत. आणि असे घडत नाही जर आपण लोकांना अचूक मार्गाने कोड लिहिण्यासाठी वर्षाकाठी 400,000 डॉलर्स दिले जातात; त्याचा फक्त संपूर्ण विकास. तर, मला वाटते की या प्रश्नांपैकी एक आहे की आयडी तुम्हाला फक्त अधिक अंतर्दृष्टी देण्यासाठी आपल्याला आवडते, एखाद्या कोडची प्रोफाइल बनवण्यासाठी आणि या प्रकारची साधने या प्रकारच्या उपकरणे तैनात करत असलेल्या लोकांची रुंदी व पोहोच किती आहे? कामगिरी समस्यांसाठी? सुरुवातीला, ऐतिहासिकदृष्ट्या, ते कोठून आले आहेत? ते मोठे अभियांत्रिकी घरे आहेत का? आणि मग, पुढे जाऊन असे म्हणायचे आहे का की मी जास्तीत जास्त कंपन्या या टूलची अंमलबजावणी करीत आहेत किंवा हे टूल्स, कोडेर्सना प्रयत्न व मदत करण्यासाठी, ज्यांना माहित आहे की काम पूर्ण करण्यासाठी कोण काय करत आहे? आणि ते दारातून बाहेर काढायला? आणि कधीकधी आम्हाला जेल-आउट-जेल कार्डची आवश्यकता असते? मी ऐतिहासिकदृष्ट्या आमच्याकडे अधिक अभियांत्रिकी लक्ष केंद्रित आणि विकास होता याचा विचार करण्यास मी बरोबर आहे काय? रॉबिनने म्हटल्याप्रमाणे, आता शैक्षणिक दृष्टिकोन, आणि आता त्याचा स्वत: ची शिकवण, किंवा कट-पेस्ट कोड, किंवा फक्त गोष्टी बनवण्याइतपत, हे कमी होत चालले होते? आणि आत्ता उत्पादन घेत असलेल्या लोकांच्या क्रमवारीत ते जुळते?

बर्ट स्केलझो: होय, नक्की आणि मी आपल्याला एक विशिष्ट उदाहरण देतो, आम्ही फक्त नोकरी मिळवू इच्छितो, कारण व्यवसायातील लोकांना परिपूर्णतेची इच्छा नाही. संगणकीकृत बुद्धीबळ खेळासारख्या प्रकार: बुद्धीबळ गेम परिपूर्ण उत्तरासाठी शोधत नाही; हे वाजवी वेळेत चांगले दिलेले उत्तर शोधते, म्हणूनच आम्ही कसे प्रोग्राम करतो ते ठरते. पण आता मी जे शोधत आहे ते बहुतेक लोक त्यांच्या युनिट टेस्टिंगचा एक भाग म्हणून प्रोफाईल हवे आहेत असे म्हणण्याऐवजी - मी हे कसे करतो, कारण मी त्यास वेळेचा अपव्यय म्हणून पाहत नाही - काय घडत आहे ते आता चालू आहे नंतर, कधीकधी, एकत्रिकरण चाचणी किंवा तणाव चाचणी दरम्यान, भाग्यवान होते. परंतु बर्‍याच वेळा वाढीचा तो भाग, जिथे काहीवेळेचे उत्पादन तयार झाले, ते काही काळ चालले, कदाचित बर्‍याच वर्षे चालले असेल, आणि आता ते चांगले चालत नाही, आणि आता त्याचे चांगले प्रदर्शनही होते. आणि हे आता सामान्य परिस्थिती असल्याचे दिसते.

डेझ ब्लांचफिल्ड: होय, आणि मला वाटते की “तांत्रिक debtण” हा शब्द कदाचित तुम्ही परिचित होण्यापेक्षा जास्त असावा; मला रॉबिन माहित आहे आणि मी नक्कीच आहे. मला वाटते की आजचे दिवस, विशेषत: विकसनशील आणि यंत्रणा निर्माण करण्याच्या चपळ दृष्टिकोनातून माझ्या दृष्टीने तांत्रिक कर्जाची संकल्पना ही खरोखर खरी गोष्ट आहे आणि प्रकल्पांमध्ये आपण त्याबद्दल खरोखरच जबाबदार आहोत. मला माहित आहे, आमच्याकडे मीडिया लेन्स आणि इतर सारखे आपले स्वतःचे प्रकल्प आहेत, जिथे दररोज आमच्याकडे कोडिंग होत आहे आणि ब्लॉर ग्रुपच्या विविध गोष्टी. आणि जेव्हाही आपण एखादी वस्तू तयार करीत होतो, तेव्हा आम्ही त्याकडे पाहतो, मी त्याकडे पहातो आणि या गोष्टीचे निराकरण करण्यासाठी मला आता काय द्यावे लागणार आहे या दृष्टिकोनातून पहा, मला फक्त ते शक्य आहे आणि मी हे करू शकत नाही आणि ते तेथून बाहेर काढा आणि मग या गोष्टी खंडित होत आहेत की नाही ते पहा. आणि हे तांत्रिक inheritण मला मिळालेले आहे की नंतर मला परत चक्कर काढावी लागेल आणि त्याचे निराकरण करावे.

आणि याचा अर्थ असा आहे की शेवटच्या सात दिवसात मी हे केले आहे: मी दोन साधने आणि लिपी लिहिली आहेत, Ive ने पायथन भाषेचे काही तुकडे लिहिले आहेत आणि Ive ने ते मोंगोच्या मागील भागावर तैनात केले आहे, याची खात्री करुन की ते छान आणि स्वच्छ आणि सुरक्षित आहे. पण मला फक्त आवश्यक असलेली क्वेरी मिळते, हे जाणून मला काम करणे आवश्यक आहे, मोठे कोडे जाण्यासाठी मला ते कार्य करण्याची आवश्यकता आहे; माझे खरे दुखणे कोठे आहे. आणि म्हणूनच आपणास हे तांत्रिक कर्ज घ्यावे लागेल, आणि मला वाटते की हे आता फक्त कधीकधी घडलेले नाही, मला वाटते की हे आता विकसित होण्याच्या डीएनएचा एक भाग आहे. लोक फक्त - विचित्रपणाने नाही - ते फक्त तांत्रिक debtण स्वीकारतात ही एक सामान्य प्रकारची समस्या आहे आणि त्यांना ते द्यावे लागेल. जिथे आपण तांत्रिक कर्ज घ्या. आणि मला वाटते की आपण आम्हाला डेमोमध्ये काय दाखविले याबद्दल मोठी गोष्ट म्हणजे आपण अक्षरशः प्रोफाइल बनवू शकता आणि काहीतरी चालण्यास किती वेळ लागतो हे पाहू शकता. आणि कदाचित माझ्या आवडीच्या गोष्टींपैकी एक. म्हणजे, मी प्रत्यक्षात प्रोफाइलिंग टूल्स बांधली आहेत - आम्ही आपला कोड चालविण्यासाठी सेड आणि लेक्स आणि ऑर्क मध्ये टूल्स तयार करायचो आणि लूप्स कोठे आहेत ते पाहा, यासारखे टूल्स उपलब्ध होण्यापूर्वी - आणि जेव्हा आपण जाण्यासाठी कोड तयार केला असेल आणि आपल्या स्वतःच्या कोडचे पुनरावलोकन केले असेल , आपण आपल्या स्वतःच्या कोडचे पुनरावलोकन न करणे चांगले आहे. पण आता तसे झाले नाही. हे लक्षात घेऊन, एखादा विशिष्ट बाजार विभाग आहे जो इतर कोणत्याहीपेक्षा हे जास्त घेते? मास सारखे पहात आहे

बर्ट स्केलझो: अरे हो, Ive मिळाले- मी तुमच्यासाठी एक साधर्मिती काढत आहे, आणि दर्शवितो की प्रोग्रामर नसलेले हे सर्व करत असतात. जर मी कधीही डीबगर आणि प्रोफाइलिंग वर्ग किंवा सत्र शिकवत असेल तर, मी लोकांना विचारेल, “ठीक आहे, इथले किती लोक मायक्रोसॉफ्ट वर्डमध्ये जातात आणि हेतुपुरस्सर शब्दलेखन तपासक वापरत नाहीत?” आणि कोणीही हात वर करत नाही कारण कागदपत्र लिहिण्यासाठी, आपल्या सर्वांना माहित आहे की आम्ही इंग्रजी चुका करु शकतो आणि म्हणून प्रत्येकजण शब्दलेखन तपासक वापरतो. आणि मी म्हणालो, "ठीक आहे, जेव्हा आपण व्हिज्युअल बेसिक सारख्या आपल्या आयडीईमध्ये लिहिता तेव्हा आपण डीबगर वापरत नाही? हीच स्पेल चेकरसारखीच आहे. ”

डेझ ब्लांचफिल्ड: होय, प्रत्यक्षात, एक उत्तम सादृश्यता आहे. मी खरोखर विचार केला नव्हता, मी वापरत असलेल्या दोन साधनांसह खरोखर काहीतरी केले आहे हे मला मान्य करावे लागेल. खरं तर, एक, ओडीएफ, माझा ग्रहण असलेला आवडता फक्त तिथे कट आणि पेस्ट कोड आहे आणि अशा गोष्टी शोधत आहे जे फक्त हायलाइट करते आणि लक्षात येते की मी काही क्लास कॉलमध्ये टायपो केला आहे. आणि, परंतु आता यासारख्या साधनासह हे मनोरंजक आहे जे आपण परत येण्याऐवजी आणि नंतर पाहण्यासारखे रिअल टाइममध्ये हे करू शकता जे हे समोरचे पकडण्यात एक प्रकारचे छान आहे. पण हो, फक्त वर्ड प्रोसेसर टाकण्याची एक मोठी सादृश्यता आहे, यामुळे त्याला एक मनोरंजक वेक अप कॉल आला आहे, हे लक्षात येईल की आपण काही टायपोक किंवा अगदी व्याकरणाची चूक केली आहे ना?

बर्ट स्केलझो: नक्की.

डेझ ब्लांचफिल्ड: तर, माझ्या अंदाजानुसार, आपण माझ्याकडून घेतलेला शेवटचा प्रश्न, माझ्या उपस्थितीसाठी कदाचित आमच्या प्रश्‍न आणि उत्तरांकडे जाण्यापूर्वी, आपण माझ्याकडून अंतिम प्रश्न पाहत आहात. आपण असे करण्याच्या दृष्टिकोनाबद्दल काही शिफारस देणार असाल तर - हे वक्तृत्ववादी आहे असे मी गृहित धरत आहे - आपण विकसित होण्यापूर्वी, आपण लवकर विकसित व्हा आणि हे आपल्या विकासाच्या रूपात लागू केले जाईल? किंवा अशी परिस्थिती आहे की आपण प्रामुख्याने इमारत मिळवाल, हालचाल कराल, काहीतरी तयार करा आणि नंतर प्रोफाइल तयार करा. मला लवकरात लवकर याची नोंद होण्यासंबंधी शंका आहे आणि आपल्या कोड साफसफाईची खात्री करुन घेत आहेत. किंवा त्यांच्या उपयोजित पोस्टच्या या भागाचा त्यांनी विचार केला पाहिजे की असे आहे?

बर्ट स्केलझो: तद्वतच, ते हे कार्य स्पष्टपणे करतात, परंतु प्रत्येकजण त्रासदायक जगात आहे जेथे त्यांना फक्त काम पूर्ण करायचं आहे, अधिक सीपीयू आणि मेमरी जोडून सोडवत नसलेल्या कामगिरीच्या समस्येपर्यंत ते निसटणार नाहीत. आभासी मशीनवर.

डेझ ब्लांचफिल्ड: हो तर, खरं तर आपण काहीतरी मनोरंजक उल्लेख केला आहे, जर मी पटकन करू शकलो तर? आपण यापूर्वी हे नमूद केले आहे की हे कोठूनही चालविले जाऊ शकते आणि डेटाबेसशी शेवटच्या टप्प्यावर बोलू शकता. म्हणून आपण आता ज्या बाईमोडल संकल्पनेबद्दल बोलत आहोत त्यादृष्टीने आरामदायक आहे, प्री-प्रीमिस / ऑफ-प्रीमिस क्लाउडच्या गोष्टी, तसेच दिवसाच्या शेवटी, जर ती मागच्या टोकाशी बोलू शकते आणि पाहू शकते कोड, त्याची खरोखर काळजी नाही, ती करते?

बर्ट स्केलझो: नक्की, होय, आपण हे ढगामध्ये चालवू शकता.

डेझ ब्लांचफिल्ड: उत्कृष्ट, कारण असे वाटते की आमचे नवीन शौर्य कोठे जात आहे. तर, एरिक. मी आता आपल्याकडे परत जात आहे आणि आमच्याकडे येथे काही प्रश्न पडले आहेत हे पहायला जात आहे आणि आमचे उपस्थितांनी अद्याप आमच्याबरोबर रहावे अशी माझी इच्छा आहे, जरी आपण अगदी तास उलटून गेलो तरी.

एरिक कवानाग: होय, तेथे काही लोक बाहेर आहेत, मी फक्त येथे एक द्रुत टिप्पणी देतो: बेर्ट, मला वाटते की शब्दलेखन, आपण शब्दलेखन तपासणीचा उपयोग करून दिलेली उपमा अगदी स्पष्टपणे हुशार आहे. हे अगदी दोन एक ब्लॉगसाठी योग्य आहे, अगदी स्पष्टपणे, कारण आपण जे करत आहात त्याबद्दलची शंकूची चौकट बनवण्याचा हा एक चांगला मार्ग आहे आणि तो किती मोलाचा आहे, आणि डीबगर वापरण्यासाठी खरोखर खरोखर एक उत्तम सराव कसा असावा नियमितपणे, बरोबर? मला असे वाटते की जेव्हा आपण त्यास बाहेर फेकता तेव्हा काही डोके हलवतात, बरोबर?

बर्ट स्केलझो: नक्कीच, मी त्यांना सांगतो त्या कारणास्तव, “मी माझ्या कागदपत्रांवर शब्दलेखन तपासणी का चालविते? मला मूर्ख शब्दलेखन चुकांमुळे लाज वाटावी अशी इच्छा नाही. "पण, त्यांना मूर्ख कोडिंग चुकांनी लाज वाटली पाहिजे!

एरिक कवानाग: बरोबर. हो नक्कीच. अच्छा, लोकांनो, येथे सुमारे एक तास आणि पाच मिनिटे बर्न केले, आपला वेळ आणि लक्ष दिल्याबद्दल आपणा सर्वांना धन्यवाद. आम्ही या सर्व वेब चॅट्स संग्रहित करतो, कोणत्याही वेळी परत येण्यास मोकळ्या मनाने आणि पहा. ते दुवे शोधण्यासाठी सर्वोत्कृष्ट जागा कदाचित टेकोपिडिया डॉट कॉम आहे, म्हणूनच आता या सूचीमध्ये या सूचीत जोडा.

आणि त्या बरोबर, लोक तुम्हाला निरोप देणार आहेत, लोकांनो. पुन्हा एकदा, ग्रेट जॉब, बर्ट, आयडेरियातील आमच्या मित्रांचे आभार. पुढच्या वेळी तुमच्याशी बरं बोलू, खरं तर पुढच्या आठवड्यात तुमच्याशी चांगलं बोला. काळजी घ्या! बाय बाय.