گھر ترقی تیز ردعمل: ڈیٹا بیس ڈیبگنگ اور ریسکیو کیلئے پروفائلنگ

تیز ردعمل: ڈیٹا بیس ڈیبگنگ اور ریسکیو کیلئے پروفائلنگ

Anonim

ٹیکوپیڈیا اسٹاف کے ذریعہ ، 15 مارچ ، 2017

ٹیکو وے : میزبان ایرک کااناگ نے ڈاکٹر رابن بلور ، ڈیز بلن فیلڈ اور آئی ڈی ای آر اے کے برٹ اسکالزو کے ساتھ ڈیٹا بیس ڈیبگنگ اور پروفائلنگ کے بارے میں تبادلہ خیال کیا۔

آپ فی الحال لاگ ان نہیں ہیں۔ ویڈیو دیکھنے کے لئے براہ کرم لاگ ان یا سائن اپ کریں۔

ایرک کااناگ: ٹھیک ہے ، خواتین اور حضرات ، یہ بدھ کے روز مشرقی وقت کا 4:00 بجے کا وقت ہے ، اور ظاہر ہے اس کا مطلب ہے۔

رابن بلور: آپ کو سن نہیں سکتا ، ایرک۔

ایرک کااناگ: میں پہلے دن وہاں تھا ، لہذا آپ اکیلے نہیں ہیں۔ لیکن اس لئے آج کا موضوع واقعی دلچسپ چیز ہے۔ یہ اس نوعیت کی بات ہے جس کو آپ یقینی بنانا چاہتے ہیں کہ آپ کی کمپنی کے پس منظر میں واقع ہورہا ہے ، جب تک کہ آپ وہ شخص نہیں کر رہا ہے ، جب آپ اس بات کو یقینی بنانا چاہتے ہو کہ آپ اسے صحیح طریقے سے کر رہے ہیں۔ کیونکہ ہم ڈیبگنگ کے بارے میں بات کر رہے ہیں۔ کسی کو بھی کیڑے پسند نہیں آتے ہیں ، جب کوئی سافٹ ویئر کا کام کرنا چھوڑ دیتا ہے تو کوئی بھی پسند نہیں کرتا ہے - لوگ پریشان ہوجاتے ہیں ، صارف غیر دوستانہ ہوجاتے ہیں۔ وہ ٹھیک نہیں ہے. تو ، ہم "ریپڈ رسپانس: ڈیٹا بیس ڈیبگنگ اور ریسکیو کو پروفائلنگ کرنے" کے بارے میں بات کرنے جارہے ہیں۔

واقعی آپ کے بارے میں ایک جگہ ہے ، مجھے ٹویٹر پر مارا ، یقینا @eric_kavanagh۔

اس سال گرم ہے. اور ڈیبگنگ گرم ہو رہی ہے ، چاہے کچھ بھی نہیں۔ یہ واقعی ان مسائل میں سے ایک بننے والا ہے جو کبھی ختم نہیں ہوتا ، چاہے ہم اس چیز سے کتنا ہی اچھا کیوں نہ ہو ، ہمیشہ مسئلہ ہی ہوتا رہے گا ، لہذا کلیدی بات یہ ہے کہ آپ وہاں کیسے پہنچیں گے جہاں آپ ان مسائل کو جلدی سے حل کرسکتے ہیں؟ مثالی طور پر ، آپ کے پاس زبردست پروگرامر ہیں ، بہترین ماحول ہے ، جہاں بہت زیادہ غلط نہیں ہوتا ہے ، لیکن جیسا کہ پرانی کہاوت ہے ، "حادثات بہترین خاندانوں میں ہوتے ہیں۔" اور تنظیموں کے لئے بھی یہی حقیقت ہے۔ تو ، یہ سامان ہوتا ہے ، یہ ہونے والا ہے ، سوال یہ ہے کہ اس سے نمٹنے اور ان مسائل کو حل کرنے کے لئے آپ کا کیا حل نکلا ہے؟

ہم ڈاکٹر رابن بلور سے سنیں گے ، اس کے بعد نیچے سے ہمارے اپنے ڈیز بلن فیلڈ اور یقینا our ہمارا اچھا دوست ، برٹ سکالزو ، آئی ڈی ای آر اے سے آئے گا۔ اور حقیقت میں ، میں رابن بلور کی چابیاں دے رہا ہوں ، اسے لے جا.۔ فرش آپ کی ہے۔

رابن بلور: ٹھیک ہے۔ یہ ایک دلچسپ موضوع ہے۔ میں نے سوچا کیوں کہ ڈیز ڈیبگنگ کے بارے میں اصل تکنیکوں اور جنگی کہانیوں کے بارے میں بات کرنے جا رہا ہے ، میں نے سوچا کہ میں صرف ایک پس منظر پر مباحثہ کروں گا تاکہ ہمیں جو ہو رہا ہے اس کی مکمل تصویر مل جائے۔ میں نے یہ ایک طویل عرصے سے کیا ، اور میں ایک کوڈر ہوا کرتا تھا ، لہذا ایسا ہی ہے ، اور مجھے تقریبا presentation اس پریزنٹیشن کی طرف راغب کیا گیا تھا کہ اوپن سورس کے خیال کے بارے میں گیت گانا شروع کردوں لیکن میں نے سوچا کہ میں اس کو کسی اور کے پاس چھوڑ دوں گا۔

یہاں مشہور کیڑے کی ایک فہرست ہے ، اور ان میں سے بیشتر کسی کی بھی فہرست پر آتے ہیں ، بنیادی طور پر ، آخری دو کے سوا کم از کم million 100 ملین۔ پہلا ایک مریخ آب و ہوا کا مدار تھا ، خلا میں کھو گیا تھا اور یہ کوڈنگ کی دشواری کی وجہ سے تھا ، جہاں لوگ (ہنستے ہوئے) پاؤں اور انچوں کے ساتھ میٹرک یونٹوں کو الجھاتے تھے۔ اریین فائیو فلائٹ 501 میں لگائے گئے انجن اور جو کمپیوٹرز اس راکٹ کو چلانے کے بارے میں سمجھے جارہے تھے اس کے مابین ایک مطابقت نہیں تھی۔ متعدد کمپیوٹر کی ناکامی ، پھٹنے والا راکٹ ، سرخی کی خبریں۔ سوویت گیس پائپ لائن 1982 میں ، سیارے کی تاریخ کا سب سے بڑا دھماکہ تھا۔ مجھے یقین نہیں ہے کہ آیا ہے۔ روسیوں نے کچھ خودکار کنٹرول سافٹ ویئر چرا لیا ، اور سی آئی اے کو احساس ہوا کہ وہ ایسا کرنے جا رہے ہیں اور اس میں کیڑے ڈالیں گے ، اور سوویت یونین نے بغیر کسی جانچ کے اس پر عمل درآمد کرایا۔ تو ، ایک پائپ لائن کو اڑا دیا ، سوچا کہ دل لگی ہے۔

مورس کیڑا ایک کوڈنگ تجربہ تھا ، جو اچانک ایک بے چین کیڑا بن گیا جو ہر ایک کے گرد چھا گیا - اس سے بظاہر million 100 ملین ڈالر کا نقصان ہوا۔ یہ یقینا ایک اندازہ ہے۔ انٹیل نے ریاضی چپ کے ساتھ ایک مشہور غلطی کی تھی - جو پینٹیم چپ پر 1993 میں ریاضی کی ہدایت تھی - جس پر سمجھا جاتا تھا کہ اس کی لاگت million 100 ملین سے زیادہ ہے۔ ایپل کا نقشہ پروگرام ممکنہ طور پر ایپل کا سب سے خراب اور انتہائی تباہ کن لانچ ہے۔ جن لوگوں نے اسے استعمال کرنے کی کوشش کی ، وہ تھے ، میرا مطلب ہے ، کوئی 101 کے ساتھ گاڑی چلا رہا تھا ، اور دریافت کیا کہ ایپل میپ نے بتایا ہے کہ وہ سان فرانسسکو خلیج کے وسط میں تھے۔ لہذا ، لوگوں نے ایپل میپس ایپ کو iLost کے نام سے دیکھنا شروع کیا۔ 1990 ء میں ہمارا سب سے طویل عرصے سے گزر - یہ اس طرح کی لاگت کے نقطہ نظر سے صرف دلچسپ ہے - اے ٹی اینڈ ٹی نو گھنٹے کے لئے باہر رہ گیا تھا اور اس کی لمبی دوری پر 60 $ ملین لاگت آئی تھی۔

اور میں برطانیہ کی انشورنس کمپنی ، اور ڈیٹا بیس میں تھا ، انہوں نے ڈیٹا بیس کا نیا ورژن نافذ کیا اور اس نے ڈیٹا کو مٹا دینا شروع کردیا۔ اور مجھے یہ بات بہت اچھی طرح سے یاد ہے ، کیونکہ مجھے بعد میں بلایا گیا تھا کہ اس وجہ سے کسی طرح کے ڈیٹا بیس کے انتخاب میں حصہ لیں۔ اور یہ بات بہت دلچسپ ہے کہ انہوں نے ڈیٹا بیس کا نیا ورژن لیا تھا ، اور ان کے پاس ٹیسٹوں کی بیٹری تھی جو انہوں نے ڈیٹا بیس کے نئے ورژن کے ل did کیا کہ اس نے تمام ٹیسٹ پاس کردیئے۔ اس نے اعداد و شمار کو مٹا دینے کا واقعی ایک غیر واضح طریقہ پایا۔

تو ، بہر حال ، وہ ہے۔ میں نے سوچا تھا کہ میں مائباشپتی میل جول اور ایس کیو ایل کے بارے میں بات کروں گا۔ یہ دلچسپ ہے کہ رشتہ دار ڈیٹا بیس میزوں میں کوڈ کو محفوظ کرتے ہیں اور کوڈر آبجیکٹ کے ڈھانچے میں اعداد و شمار میں ہیرا پھیری کرتے ہیں جو واقعتا table ٹیبلز پر بہت اچھ mapے نقشہ نہیں رکھتے ہیں۔ اور اسی کی وجہ سے ، آپ کو مل جاتا ہے جس کو مائبادا متناسب کہا جاتا ہے ، اور کسی کو کسی نہ کسی طرح اس سے نمٹنا پڑتا ہے۔ لیکن اصل میں کیا ہوتا ہے ، کیونکہ ایک ماڈل ، کوڈر کا ماڈل اور ڈیٹا بیس کا دوسرا ماڈل ، خاص طور پر منسلک نہیں ہوتا ہے۔ آپ کو ایسے کیڑے ملتے ہیں جو صرف اس صورت میں نہیں ہوتے اگر انڈسٹری نے ایسی چیزیں بنائیں جو مل کر کام کرتی ہیں ، جو میرے خیال میں مزاحیہ ہے۔ لہذا ، بنیادی طور پر ، کوڈرز کی طرف ، جب آپ درجہ بندی حاصل کریں گے تو یہ قسمیں ہوسکتی ہیں ، اس کا نتیجہ مرتب ہوسکتا ہے ، یہ API کی ناقص صلاحیت ہوسکتی ہے ، یہ بہت ساری چیزیں ہوسکتی ہیں جو صرف ڈیٹا بیس کے ساتھ بات چیت میں چیزوں کو باہر پھینک دیتی ہیں۔ لیکن وہ چیز جو میرے لئے سب سے زیادہ دلچسپ ہے ، واقعی دلچسپ۔ مجھے ہمیشہ حیرت میں ڈال دیا کہ آپ کے پاس اس ایس کیو ایل کی رکاوٹ ہے جو ایک طرح سے رکاوٹ بھی ہے جس میں کوڈر اور ڈیٹا بیس ایک دوسرے کے ساتھ کام کرتے ہیں۔ لہذا ، ایس کیو ایل کے پاس ڈیٹا کی شناخت ہے ، جو ٹھیک ہے اور اس میں منتخب ، منصوبے اور شامل ہونے کے لئے ڈی ایم ایل ہے ، جو ٹھیک ہے۔ اس کے ساتھ ڈیٹا بیس سے ڈیٹا نکالنے کے معاملے میں آپ بہت ساری صلاحیت ڈال سکتے ہیں۔ لیکن چیزوں کو کرنے کے لئے اس میں ریاضی کی بہت کم زبان ہے۔ اس میں تھوڑا سا اور یہ ہے ، اور اس میں وقت پر مبنی بہت کم چیزیں ہیں۔ اور اسی وجہ سے ، SQL ایک نامکمل ہے ، اگر آپ چاہیں تو ، ڈیٹا حاصل کرنے کا ذریعہ ہے۔ لہذا ، ڈیٹا بیس والوں نے ڈیٹا بیس میں رہنے کے لئے ذخیرہ شدہ طریقہ کار تیار کیا اور وہاں رہائش پذیر اسٹوریج طریقہ کار کی وجہ یہ تھی کہ آپ واقعتا ڈیٹا کو کسی پروگرام میں پھینکنا نہیں چاہتے ہیں۔

کچھ خصوصیات انتہائی اعداد و شمار کے ساتھ مخصوص تھیں ، لہذا یہ محض ریفرنشنل سالمیت اور جھڑپوں کو حذف کرنے والی چیزوں اور اس طرح کی چیزوں کی بات نہیں تھی ، ڈیٹا بیس اچانک آپ کی دیکھ بھال کر رہا تھا کہ آپ کسی ڈیٹا بیس میں فعالیت ڈال رہے ہو ، جس کا مطلب یہ تھا کہ کسی ایپلی کیشن کی فعالیت کوڈر اور ڈیٹا بیس میں ہی تقسیم ہوسکتی ہے۔ اور اس سے کچھ قسم کے افعال کو واقعتا implementing نافذ کرنے کا کام مشکل ہوگیا ہے اور اسی وجہ سے زیادہ خرابی کا خدشہ ہے۔ لہذا ، یہ ڈیٹا بیس گیم کا ایک رخ ہے ، کیوں کہ اس کا مطلب یہ ہے کہ آپ کو مثال کے طور پر بہت ساری عمل درآمد میں ملا ہے ، کہ میں رشتہ دار ڈیٹا بیس میں ملوث رہا ہوں ، واقعی ایک بہت ہی کوڈ ہے جو ذخیرہ شدہ طریقہ کار میں بیٹھتا ہے جسے سنبھالا جاتا ہے۔ ایپلی کیشنز میں بیٹھے ہوئے کوڈ سے الگ اور یہ لگتا ہے کہ یہ ایک بہت ہی عجیب سی بات ہے ، جس میں یہ سمجھا جانا چاہئے کہ یہ مختلف کام کرنے میں کافی ہوشیار ہے۔

میں نے سوچا کہ میں ڈیٹا بیس کی کارکردگی کے بارے میں بھی بات کروں گا کیوں کہ کارکردگی کی غلطیوں کو اکثر کیڑے سمجھا جاتا ہے ، لیکن بنیادی طور پر آپ سی پی یو میں ، میموری پر ، ڈسک پر ، نیٹ ورک پر ایک رکاوٹ کھا سکتے ہیں اور آپ کو لاک کی وجہ سے کارکردگی کا مسئلہ ہوسکتا ہے۔ . خیال یہ ہوگا کہ کوڈر کو واقعتا performance کارکردگی کے بارے میں فکر کرنے کی ضرورت نہیں تھی اور ڈیٹا بیس حقیقت میں معقول حد تک اچھی کارکردگی کا مظاہرہ کرے گا۔ اس کو ایسا ڈیزائن کیا جانا چاہئے تاکہ کوڈر کو جاننے کی ضرورت نہ ہو۔ تاہم ، آپ کو خراب ڈیٹا بیس ڈیزائن ملتا ہے ، آپ کو پروگرام کا خراب ڈیزائن ملتا ہے ، آپ کو کام کے بوجھ میں اختلاط ملتا ہے ، جو کارکردگی کے مسائل کا باعث بھی بن سکتا ہے۔ آپ کو بوجھ میں توازن ملتا ہے ، آپ کو صلاحیت کی منصوبہ بندی ، اعداد و شمار کی نمو مل جاتی ہے - جس سے ڈیٹا بیس صرف رکنے یا سست ہوجاتا ہے۔ یہ ایک دلچسپ بات ہے ، جب ڈیٹا بیس تقریبا مکمل ہوجاتے ہیں تو ، وہ سست ہوجاتے ہیں۔ اور آپ کو نقل کی صورت میں اور نقل تیار کرنے کی ضرورت اور بیک اپ اور بازیافت کرنے کی ضرورت کے لحاظ سے ڈیٹا پرتوں کا مسئلہ ہوسکتا ہے۔ ویسے بھی ، یہ ایک عمومی جائزہ ہے۔

میں صرف اتنا کہنا چاہتا ہوں کہ ڈیٹا بیس ڈیبگنگ صرف اتنا ہی غیر معمولی اور غیر معمولی ہوسکتی ہے - اور میں کہتا ہوں کہ میں نے اس کی وجہ سے بہت کچھ کیا ہے - اور آپ اکثر ڈبگنگ کے معاملات کی طرح دریافت کریں گے کہ میں کبھی تجربہ کار ہوتا ہے ، پہلی چیز جو آپ کبھی دیکھتے ہیں وہ ایک گڑبڑ ہے۔ اور آپ کو کوشش کرنا پڑے گی اور گندگی سے یہ کام کرنا پڑتا ہے کہ گندگی کیسے پیدا ہوئی۔ اور اکثر جب آپ ڈیٹا بیس کے مسئلے کو دیکھ رہے ہوتے ہیں تو آپ کی نظر میں سب خراب ہوجاتا ہے اور آپ سوچتے ہیں کہ ، "یہ کیسے ہوا؟"

بہرحال ، میں ڈیز پر جاؤں گا ، جو غالبا اس سے کہیں زیادہ دانشمندی کے الفاظ کہے گا۔ میں نہیں جانتا کہ آپ کو گیند کیسے گزرنا ہے ، ڈیز۔

ایرک کااناگ: میں اسے پاس کروں گا ، ساتھ کھڑے ہوں گے ، تھام لو۔

خودکار آواز: شرکا کی لائنیں خاموش ہوگئیں۔

ایرک کااناگ: ٹھیک ہے ، ایک سیکنڈ پر لٹ جا. ، مجھے دیز کو گیند دینے دو۔

ڈیز بلین فیلڈ: ایرک ، آپ کا شکریہ۔ ہاں ، ڈاکٹر رابن بلور ، آپ واقعی سب سے زیادہ درست ہیں: یہ ایک عنوان ہے ، تاحیات بگ بیئر اگر آپ سزا کو معاف کردیں گے ، افسوس کہ میں اس کی مدد نہیں کرسکتا۔ امید ہے کہ آپ وہاں میری پہلی اسکرین دیکھ سکتے ہیں ، سب سے اوپر فونٹ سائز کے مسئلے کے لئے معذرت خواہ ہوں۔ کیڑے کا موضوع ایک دن بھر کا لیکچر ہے ، میرے تجربے میں بہت سے معاملات میں۔ یہ اتنا وسیع اور وسیع عنوان ہے ، لہذا میں دو اہم شعبوں پر توجہ مرکوز کرنے جا رہا ہوں ، خاص طور پر اس تصور کا جس کو ہم بگ سمجھتے ہیں ، لیکن ایک پروگرامنگ کا مسئلہ ہے۔ میرے خیال میں ان دنوں بگ متعارف کرانا عام طور پر مربوط ترقیاتی ماحول کے ذریعہ اٹھایا جاتا ہے ، حالانکہ یہ طویل عرصے تک چلنے والے کیڑے ہوسکتے ہیں۔ لیکن اکثر یہ اس طرح ہوتا ہے کہ کوڈ کو پروفائل کرنے کا معاملہ ہو اور یہ ممکن ہے کہ کوڈ لکھا جا functions جو کام کرتا ہے ، وہ ایک بگ ہونا چاہئے۔ تو ، یہاں میری ٹائٹل سلائیڈ ، میرے پاس واقعتا very اس کی ایک کاپی انتہائی اعلی قرارداد A3 میں تھی ، لیکن بدقسمتی سے یہ مکان کی ایک حرکت میں تباہ ہوگئی۔ لیکن یہ سرکا 1945 کے ایک پروگرامنگ شیٹ پر لکھا ہوا ایک نوٹ ہے ، جہاں امریکہ کے ہارورڈ یونیورسٹی کے بارے میں خیال کیا جارہا ہے کہ مارک II نامی اس مشین کی اپنی دوسری تعمیر ہے۔ وہ کسی عام مسئلے کو عام زبان میں ڈیبگ کررہے تھے ، لیکن وہ کوئی غلطی ڈھونڈنے کی کوشش کر رہے تھے ، اور یہ پتہ چلا ہے کہ ہارڈ ویئر اور سمجھے جانے والے سوفٹ ویئر کا معاملہ اس سے کچھ مختلف تھا۔

لہذا ، شہری یہ متل ہے کہ 9 ستمبر 1945 کے لگ بھگ ہارورڈ یونیورسٹی میں ایک ٹیم ایک مشین کھینچ رہی تھی ، وہ کچھ ایسی چیز کے سامنے آئے جس کو انہوں نے "ریلے ستر" کہا تھا - ان دنوں میں پروگرامنگ جسمانی معنوں میں کی جاتی تھی ، آپ کو زخم کا کوڈ ایک بورڈ کے ارد گرد ، اور اس طرح آپ نے مشین کو مؤثر طریقے سے پروگرام کیا۔ اور انہیں پتا چلا کہ اس ریلے نمبر ستر کو اس میں کوئی گڑبڑ ہے ، اور اس کی اصل اصطلاح "بگ" سامنے آئی ہے کیونکہ یہ بالکل لفظی ایک کیڑا تھا۔ تانبے کی تار کے کسی ٹکڑے کے بیچ میں ایک کیڑے جڑے ہوئے تھے جو ایک جگہ سے دوسری جگہ جارہے تھے۔ اور کہانی یہ ہے کہ افسانوی فضل ہوپر نے بطور اس عنوان کے عنوان سے ، میری عنوانی سلائڈ کے لئے ، "ایک مسئلے کا پہلا اصل واقعہ مل گیا ہے"۔

لیکن جیسا کہ رابن نے اپنی پہلی سلائڈ میں پہلے ہی روشنی ڈالی ، بگ کا تصور اتنا ہی پیچھے چلا گیا جتنا ہم انسانوں کو پیچ کی طرح گنتی ، تصورات کرنے کا تصور کرسکتے ہیں۔ "پیچ" کی اصطلاح کارٹون کارڈ کے ایک سوراخ پر ٹیپ کے ایک اصل ٹکڑے سے آئی ہے۔ لیکن اس کی پوری بات یہ ہے کہ ، اصطلاح "ڈیبگنگ" کسی جسمانی مشین میں ایک مسئلہ تلاش کرنے کے اس تصور سے نکلی ہے۔ اور جب سے ، ہم نے اس اصطلاح کو معاملات سے نمٹنے کی کوشش کرتے ہوئے استعمال کیا ہے ، یا تو ایسے پروگراموں میں کوڈنگ اتنا نہیں جو مرتب نہیں ہوتا ، بلکہ ایک ایسے پروگرام کے طور پر جو بہتر نہیں چلتا ہے۔ اور خاص طور پر پروفائل نہیں کیا گیا ہے صرف ایسی چیزیں تلاش کریں جیسے کبھی نہ ختم ہوں۔

لیکن ہمارے پاس بھی ایک منظرنامہ ہے ، اور میں نے سوچا کہ میں کچھ اور تفصیل سے پہلے کچھ دلچسپ مضامین سلائیڈ ڈال دوں۔ یہاں کلاسک کارٹون ہے ، جسے ویب پر XKCD کہا جاتا ہے ، اور کارٹونسٹ کے پاس دنیا کے بارے میں کچھ مضحکہ خیز نظارے ہیں۔ اور یہ ایک ایسے بچے کے بارے میں ہے جس کو "لٹل بوبی ٹیبلز" کہتے ہیں اور شاید اس کے والدین نے اس چھوٹے لڑکے کا نام روبرٹ رکھا ہے ')؛ ٹیبل طلباء کو ڈراپ کریں - - اور کہا جاتا ہے ، اور "ہائے ، یہ آپ کے بیٹے کا اسکول ہے جس میں کمپیوٹر میں کوئی پریشانی ہے ،" اور والدین نے جواب دیا ، "اوہ عزیز ، کیا اس نے کچھ توڑا ہے؟" اور استاد کہتے ہیں ، "ٹھیک ہے ، ایک طرح سے ، "اور استاد پوچھتے ہیں ،" کیا واقعتا آپ نے اپنے بیٹے کا نام روبرٹ رکھا ہے ')؛ ٹیبل طلباء کو ڈراپ کریں؟ -؟ "اور والدین کا کہنا ہے ،" اوہ ہاں ، چھوٹے بوبی ٹیبلز ہم اسے کہتے ہیں۔ "بہرحال ، وہ یہ کہتے ہوئے آگے بڑھ رہے ہیں کہ اب وہ اس سال کے طلباء کے ریکارڈ کھو چکے ہیں ، مجھے امید ہے کہ آپ خوش ہوں گے۔ اور جواب یہ ہے کہ ، "ٹھیک ہے ، آپ کو اپنے ڈیٹا بیس کے آدانوں کو صاف اور صاف کرنا چاہئے۔" اور میں کئی بار کوڈ میں چیزوں کو ڈھونڈنے میں ہمارے سامنے آنے والی کچھ پریشانیوں کے بارے میں بات کرنے کے لئے استعمال کرتا ہوں ، کہ اکثر کوڈ ڈیٹا کو نہیں دیکھتا ہے۔ اس کے ساتھ ساتھ.

ایک اور مضحکہ خیز ، میں نہیں جانتا کہ یہ اصلی ہے یا نہیں - مجھے شبہ ہے کہ یہ کوئی مبہم ہے - لیکن پھر ، اس سے میری مضحکہ خیز ہڈی بھی چھو جاتی ہے۔ کسی نے اپنی کار کے اگلے حصے میں لائسنس پلیٹ تبدیل کرنا ، اسی طرح کا بیان دیا ہے جس کی وجہ سے ڈیٹا بیس تیز رفتار کیمرے میں گر جاتے ہیں اور اسی طرح کاروں کے لائسنس پلیٹوں کو پکڑ لیا جاتا ہے۔ اور میں ہمیشہ اس کا حوالہ دیتا ہوں کہ مجھے شک ہے کہ کسی بھی پروگرامر کو کسی اصل موٹر گاڑی کے ذریعہ ان کے کوڈ کو ہٹ اور چلانے کی توقع تھی ، لیکن اس سے کبھی بھی کم گوئی نہیں کرنا - ناراض گیک کی طاقت۔

(ہنسی)

لیکن میرے خیال میں یہ میری کلیدی بات کی طرف لے جاتا ہے ، اور یہ ہے کہ ایک بار ، ہم ڈیبگ اور کوڈ کو محض بشر کی حیثیت سے تشکیل دے سکتے ہیں۔ لیکن میں اس ضمن میں بہت زیادہ خیال کرتا ہوں کہ یہ وقت گزر چکا ہے ، اور میرے تجربے میں ، پہلا - اور اس سے میری عمر بہت اچھے ہوجائے گی ، مجھے یقین ہے کہ؛ رابن آپ کو اس کے لئے مجھ پر طنز کرنے کا خیرمقدم ہے - لیکن تاریخی طور پر میں 14 سال کی عمر میں ایک پس منظر سے آیا ہوں اور شہر کے آخر میں گھوم رہا تھا ، اور نیو میں "ڈیٹا کام" نامی ڈیٹا سینٹر کا دروازہ کھٹکھٹا رہا تھا۔ پرنٹروں میں کاغذات ، اور ٹیپ ڈرائیوز میں ٹیپ ڈرائیوز لگا کر ، اور میں ایک عام منتظم ہونے کی حیثیت سے ، یہ پوچھنے میں کہ کیا میں اسکول میں دیر سے بس گھر ، روزانہ تقریبا 25 25 کلومیٹر سفر طے کرکے ، جیبی رقم کما سکتا ہوں؟ اور تجسس کی بات ہے کہ انہوں نے مجھے نوکری دی۔ لیکن وقت گزرنے کے ساتھ ، میں اپنے آپ کو عملے میں شامل ہونے اور پروگرامرز کو تلاش کرنے میں کامیاب ہوگیا اور مجھے احساس ہوا کہ میں کوڈنگ کرنا پسند کرتا ہوں اور اسکرپٹ اور بیچ ملازمتیں چلانے کے عمل سے گذر گیا ، جو دن کے آخر میں ابھی بھی ضابطہ ہے۔ آپ کو اسکرپٹ اور بیچ ملازمتیں لکھنی پڑتی ہیں جو منی پروگراموں کی طرح دکھائی دیتی ہیں اور پھر 3270 ٹرمینل تحریری کوڈ کو ہاتھ سے بیٹھ کر پوری طرح سے گزرتی ہیں۔

در حقیقت ، میرا پہلا تجربہ ٹیلی ٹائپ ٹرمینل پر تھا ، جو دراصل 132 کالم کا جسمانی پرنٹر تھا۔ بنیادی طور پر ، کاغذ کے ساتھ کسی پرانے ٹائپ رائٹر کی طرح سوچئے جو اس کے ذریعے اسکرول ہوا ہو ، 'کیوں کہ ان کے پاس سی آر ٹی ٹیوب نہیں تھی۔ اور اس پر ڈیبگنگ کوڈ بہت ہی غیر معمولی مسئلہ تھا ، لہذا آپ اپنا سبھی کوڈ ہاتھ سے لکھتے تھے ، اور پھر ٹائپسٹ کی طرح کام کرتے تھے ، چپکے سے غلطیاں نہ لینے کی پوری کوشش کرتے تھے ، کیونکہ یہ بتانا انتہائی مایوسی کا باعث ہے ایک لائن ایڈیٹر کو کسی خاص لائن پر جانے کے لئے اور پھر لائن پرنٹ کریں اور پھر اسے ٹائپ کریں۔ لیکن ایک بار ، یہ تھا کہ ہم نے کوڈ کیسے لکھا تھا اور اسی طرح ہم نے ڈیبگ کیا ، اور ہمیں اس میں بہت اچھ gotا موقع ملا۔ اور در حقیقت ، اس نے ہمیں پروگرامنگ کی بہت اچھی تکنیکیں رکھنے پر مجبور کیا ، کیونکہ اسے ٹھیک کرنے میں یہ ایک حقیقی پریشانی تھی۔ لیکن اس کے بعد یہ سفر گزرتا رہا - اور ہم سبھی اس سے واقف ہیں - یہ میری دنیا کے 3270 ٹرمینل تجربے سے ڈیجیٹل آلات VT220 تک گیا جہاں آپ اسکرین پر چیزیں دیکھ سکتے تھے ، لیکن ایک بار پھر ، آپ صرف وہی کام کر رہے تھے۔ آپ نے صرف ایک سی آر ٹی پر طباعت شدہ شکل کی کاغذی ٹیپ پر کام کیا ، لیکن آپ زیادہ آسانی سے حذف کرنے میں کامیاب ہوگئے اور آپ کے پاس وہ “ڈٹ ڈیٹ ڈیٹ ڈیٹ” آواز نہیں ہے۔

اور پھر آپ جانتے ہو ، وائس ٹرمینلز جیسے وائس 150 ، شاید اب تک کے کمپیوٹر میں میرا پسندیدہ انٹرفیس۔ اور پھر پی سی اور پھر میک ، اور پھر ان دنوں جدید جی یو آئی اور آئی ڈی جو ویب پر مبنی ہیں۔ اور اس کے ذریعے پروگراموں کی ایک رینج ، ایک میں پروگرامنگ اور پائلٹ اور لوگو اور لسپ اور فورٹرن اور پاسکل اور ایسی زبانیں جو لوگوں کو ٹکرانے کا سبب بن سکتی ہیں۔ لیکن یہ ایسی زبانیں ہیں جنہوں نے آپ کو اچھا کوڈ لکھنے پر مجبور کیا۔ انہوں نے آپ کو برا طریقوں سے دور نہیں ہونے دیا۔ سی ، سی ++ ، جاوا ، روبی ، ازگر - اور ہم اس پروگرامنگ مرحلے کو مزید آگے بڑھاتے ہیں ، ہمیں زیادہ اسکرپٹ کی طرح ملتا ہے ، ہم ساختی سوالات زبان اور پی ایچ پی جیسی زبانوں کے قریب تر ہوجاتے ہیں جو حقیقت میں ایس کیو ایل کو استعمال کرنے کے لئے استعمال ہوتے ہیں۔ آپ کو یہ بتانے کا مقام یہ ہے کہ ، میرے پس منظر سے آرہا ہوں ، میں خود بہت سے طریقوں سے خود سکھایا تھا اور جنہوں نے مجھے سیکھنے میں مدد فراہم کی ، مجھے ڈیزائننگ اور عمل کے آس پاس بہت اچھے پروگرامنگ کے طریق کار اور بہت اچھے طریقے سکھائے تاکہ یہ یقینی بنایا جا سکے کہ میں نہیں تھا۔ چھوٹی چھوٹی کوڈ متعارف کروائیں۔

آج کل پروگرامنگ کے طریق کار ، جیسے چیزیں ، مثال کے طور پر ، سٹرکچرڈ کوئوری لینگویج ، ایس کیو ایل ، یہ ایک بہت ہی طاقت ور ، آسان سوال کی زبان ہے۔ لیکن ہم نے اسے ایک پروگرامنگ لینگویج میں تبدیل کردیا ہے اور میں واقعتا یقین نہیں کرتا کہ ایس کیو ایل کو جدید پروگرامنگ زبان بنانے کے لئے کبھی ڈیزائن کیا گیا تھا ، لیکن ہم نے اس کو بننے کے لئے اسکیچنگ کرلی ہے۔ اور اس سے معاملات کا ایک پورا گروپ متعارف ہوتا ہے ، 'کیونکہ جب ہم دو نقطہ نظر سے سوچتے ہیں: کوڈنگ نقطہ نظر سے اور ڈی بی اے نقطہ نظر سے۔ صرف ناقص پروگرامنگ تکنیک ، تحریری کوڈ میں سست کاوشوں ، تجربے کی کمی ، کلاسک پالتو جانوروں کی پیش کش جیسے کلاسک پالتو جانوروں کے ساتھ میں گوگل میں چھلانگ لگا کر کچھ تلاش کرتا ہوں اور ایسی ویب سائٹ تلاش کرتا ہوں جیسے چیزوں کے ل along ساتھ آنے اور ان کی تعارف کرنا بہت آسان ہے۔ ایک مثال مل گئی اور موجودہ کوڈ کی کاپی اور پیسٹ کرنا۔ اور پھر کسی خراب کوڈنگ ، غلط عمل کی نقل تیار کرنا اور اسے پیداوار میں ڈالنا ، کیوں کہ ایسا صرف ان کے نتائج کے ل they ہوتا ہے جو وہ چاہتے ہیں۔ آپ کو دیگر چیلنجوں کا سامنا کرنا پڑا ، مثال کے طور پر ، آج کل ہم سب اس طرف دوڑ رہے ہیں ، جسے ہم ریس کو صفر کہتے ہیں: ہر چیز کو اتنا سستا اور تیز رفتار سے کرنے کی کوشش کر رہے ہیں ، کہ ہمارے پاس ایسا منظر نامہ ہو جہاں ہم کم ملازمت نہیں کر رہے ہوں گے۔ تنخواہ دار عملہ۔ اور میرا مطلب یہ نہیں ہے کہ ایک بے راہ روی سے ، لیکن ہم ہر ممکن کام کے لئے ماہرین کی خدمات حاصل نہیں کر رہے ہیں۔ کسی زمانے میں کمپیوٹر کے ساتھ کچھ کرنا راکٹ سائنس تھا۔ یہ ایسی چیزوں میں شامل تھی جو دھڑک اٹھی اور بہت تیز تھی ، یا خلا میں گیا تھا یا انجینئر کافی حد تک اہل مرد اور خواتین تھے جنہوں نے ڈگری حاصل کی تھی اور سخت تعلیم حاصل کی تھی جس کی وجہ سے وہ پاگل پن کو حرام کام کرنے سے روکتے تھے۔

آج کل ، بہت ساری لوک ترقی اور ڈیزائن اور ڈیٹا بیس میں جا رہی ہے جن کا برسوں کا تجربہ نہیں ہے ، ضروری طور پر وہی تربیت یا مدد حاصل نہیں کی ہے۔ اور اس طرح آپ صرف روایتی شوکیا بمقابلہ ماہر کے منظر نامے کے ساتھ اختتام پذیر ہوں گے۔ اور وہاں ایک مشہور لائن ہے ، مجھے حقیقت میں یہ یاد نہیں ہے کہ یہ اقتباس کس نے پیدا کیا ، لائن یہ لکھتی ہے ، "اگر آپ کو لگتا ہے کہ کسی کام کے لئے کسی ماہر کی خدمات حاصل کرنا مہنگا پڑتا ہے تو ، اس وقت تک انتظار کریں جب تک کہ آپ مسئلہ پیدا کرنے والے ایک جوڑے کی خدمات حاصل نہیں کریں گے۔ اسے صاف کرنا ہوگا۔ "اور اس طرح ایس کیو ایل میں یہ مسئلہ ہے ، اور یہ سیکھنا بہت آسان ہے ، اسے استعمال کرنا بہت آسان ہے۔ لیکن ، یہ میرے خیال میں ، ایک بہترین پروگرامنگ زبان نہیں ہے۔ کام کرنا بہت آسان ہے جیسے کہیں سے بھی ایک منتخب ستارہ بنائیں اور وہ سب کچھ پروگرامنگ زبان میں کھینچیں جس سے آپ زیادہ آسانی سے پی ایچ پی اور روبی یا ازگر کے ساتھ آرام دہ ہوں ، اور پروگرامنگ کی زبان کا استعمال کریں جس سے آپ مقامی طور پر واقف ہوں۔ ایس کیو ایل میں مزید پیچیدہ سوالات کرنے کی بجائے اعداد و شمار کی ہیرا پھیری۔ اور ہم یہ بہت کچھ دیکھتے ہیں ، اور پھر لوگ حیرت زدہ ہیں کہ ڈیٹا بیس کیوں سست چل رہا ہے۔ اس کی وجہ یہ ہے کہ ایک ملین افراد ٹکٹ خریدنے کی کوشش کر رہے ہیں ایک آن لائن ٹکٹنگ نظام ، جہاں کہیں سے بھی وہ ایک منتخب ستارہ بناتا ہے۔

اب ، یہ واقعی ایک انتہائی مثال ہے ، لیکن آپ کو ان سب سے اہم بات ملنی ہے۔ لہذا ، واقعی اس مکان کو گھر میں گھونسنے کے ل here ، یہاں ایک ایسی مثال ہے جو میں بہت زیادہ کرتا ہوں۔ میں ریاضی کا ایک بہت بڑا پرستار ہوں ، مجھے افراتفری کا نظریہ پسند ہے ، مجھے مینڈیل برٹ سیٹ پسند ہے۔ دائیں طرف مینڈیل بروٹ سیٹ کا نمائش ہے ، جس سے مجھے یقین ہے کہ ہم سب واقف ہیں۔ اور بائیں طرف ایس کیو ایل کا ایک ٹکڑا ہے جو حقیقت میں اسے پیش کرتا ہے۔ اب ، جب بھی میں اسے کسی اسکرین پر رکھتا ہوں ، میں یہ سنتا ہوں کہ "اے میرے خدا ، کسی نے ایس کیو ایل کے ساتھ مینڈیل بروٹ سیریز پیش کی ، کیا آپ سنجیدہ ہیں؟ یہ پاگل ہے! ”ٹھیک ہے ، اس کا سارا نکتہ اس بات کی وضاحت کرنا ہے کہ میں جو کچھ ابھی بیان کررہا تھا ، اور یہ ہے ، حقیقت میں اب آپ ایس کیو ایل میں تقریبا کچھ بھی پروگرام کرسکتے ہیں۔ یہ ایک بہت ہی ترقی یافتہ ، طاقت ور ، جدید پروگرامنگ زبان ہے۔ جب اصل میں یہ ایک استفسار والی زبان تھی ، تو یہ صرف اعداد و شمار کو تیار کرنے کے لئے ڈیزائن کیا گیا تھا۔ لہذا ، اب ہمارے پاس بہت پیچیدہ تعمیرات ہیں اور ہمارے پاس اسٹوریج کا طریقہ کار مل گیا ہے ، ہمارے پاس کسی زبان پر پروگرامنگ کا طریقہ کار لاگو ہوتا ہے اور اسی طرح پروگرامنگ کی ناقص عمل ، تجربے کی کمی ، کٹ اور پیسٹ کوڈ کے لئے یہ بہت آسان ہے ، کم اجرت والے عملے کو اعلی تنخواہ دینے والا عملہ بننے کی کوشش کر رہے ہیں ، اور لوگوں کو بہانہ بنا کر وہ جانتے ہیں ، لیکن انہیں نوکری پر ہی سیکھنا ہوگا۔

چیزوں کی ایک پوری رینج جہاں کوڈ پروفائلنگ اور جسے ہم ڈیبگنگ کہتے ہیں ، جس میں ایسے کیڑے ڈھونڈنا نہیں ہے جو پروگراموں کو کام کرنے سے روک دیتے ہیں ، لیکن ایسے کیڑے جو صرف سسٹم کو خراب کررہے ہیں اور خراب کوڈ کوڈ ہیں۔ جب آپ اب اس اسکرین کو دیکھیں گے ، اور آپ کو لگتا ہے کہ ، بس ، یہ بہت ہی پیارا ہے اور آپ کو لگتا ہے ، "واہ ، کیا زبردست گرافک ہے ، مجھے اس کو چلانے میں بہت اچھا لگتا ہے۔" لیکن تصور کریں کہ کاروباری منطق کے کچھ حصے پر چل رہا ہے۔ . یہ بہت صاف نظر آرہا ہے ، لیکن یہ ریاضیاتی گرافیکی طور پر مہی .ا افراتفری کا نظریہ بولتا ہے ، لیکن جب آپ اس کے بارے میں سوچتے ہیں کہ یہ کچھ کاروباری منطق میں کیا ممکنہ طور پر استعمال کیا جاسکتا ہے تو ، آپ کو تصویر بہت جلد مل جاتی ہے۔ اور واقعی اس کی وضاحت کرنے کے ل - - اور مجھے افسوس ہے کہ رنگ الٹ ہوگئے ہیں ، یہ گرین اسکرین ہونے کا سیاہ پس منظر اور سبز رنگ کا متن سمجھا جاتا ہے ، لیکن آپ پھر بھی اسے پڑھ سکتے ہیں۔

میں گیا اور اس کی ایک مثال ملاحظہ کی کہ اگر آپ واقعی پاگل ہو اور تجربہ نہ ہو اور پروگرامنگ کے مختلف پس منظر سے آئے ہو اور سی ++ کی پسند کو ایس کیو ایل پر لاگو ہوں تو واقعی میری بات کی وضاحت کرنے کے ل you آپ ممکنہ طور پر کیا کرسکتے ہیں۔ میں آئی ڈی ای آر اے سے ہمارے سیکھے ہوئے مہمان کے حوالے کرتا ہوں۔ یہ ایک سنجیدہ سوال ہے جو C ++ کی طرح لکھا گیا ہے ، لیکن یہ SQL میں کوڈڈ ہے۔ اور یہ دراصل عمل میں آتی ہے ، لیکن یہ تقریبا- تین سے پانچ منٹ کی مدت میں انجام دیتی ہے۔ اور یہ متعدد ڈیٹا بیس ، ایک سے زیادہ شامل ہونے والے اعداد و شمار کی ایک لائن کو واپس کھینچتا ہے۔

ایک بار پھر ، اس کی پوری بات یہ ہے کہ اگر آپ کے پاس صحیح ٹولز نہیں ہیں ، اگر آپ کے پاس صحیح پلیٹ فارم اور ماحول نہیں ہے تو ان چیزوں کو پکڑ سکتے ہیں ، اور وہ تیار ہوجاتے ہیں ، اور پھر آپ کے پاس 100،000 افراد ہیں ہر روز ، یا گھنٹہ ، یا منٹ پر کسی نظام کو نشانہ بنانا آپ بہت جلد ہی ایک چرنوبل کے تجربے پر ختم ہوجاتے ہیں جہاں بڑا لوہا پگھلنا شروع ہوتا ہے اور اپنے آپ کو کرہ ارض کے دائرے میں دفن کرنا شروع کردیتا ہے ، کیونکہ اس کوڈ کا ٹکڑا کبھی پیدا نہیں ہوتا تھا۔ آپ کے سسٹم اور آپ کے ٹولز ، مجھے معاف کریں ، ٹیسٹ کے عمل کے ذریعے ، یہاں تک کہ UAT اور سسٹمز انضمام کے ذریعہ ، کہیں بھی جانے سے پہلے اسے لینے چاہئیں ، اس کوڈ کے ٹکڑے کو اٹھا کر اجاگر کیا جانا چاہئے اور کسی کو ایک طرف لایا جانا چاہئے اور یہ کہتے ہوئے ، "دیکھو ، یہ واقعی بہت خوبصورت کوڈ ہے ، لیکن آئیے ایک ڈی بی اے حاصل کریں تاکہ آپ اس ساختہ سوال کو صحیح طریقے سے بنانے میں مدد کریں ، کیوں کہ صاف صاف ، یہ صرف گندی بات ہے۔" اور یو آر ایل وہاں ہے ، آپ جاسکتے ہیں اور ایک نظر ڈال سکتے ہیں۔ سب سے پیچیدہ SQL استفسار جو آپ نے کبھی لکھا ہے۔ 'مجھ پر یقین کیج. ، حقیقت میں یہ مرتب کرتا ہے ، چلتا ہے۔ اور اگر آپ اس کو کاٹ کر پیسٹ کرتے ہیں اور صرف ڈیٹا بیس کا مذاق اڑاتے ہیں تو ، یہ دیکھنے کی بات ہے۔ اگر آپ کے پاس ڈیٹا بیس کو دیکھنے کے ل tools ٹولز دستیاب ہیں تو صرف تین سے پانچ منٹ کی مدت میں پگھلنے کے ل text ، متن کی ایک لائن کیا ہے اسے واپس بلاؤ۔

لہذا ، مختصرا to ، اس کو ذہن میں رکھتے ہوئے ، کوڈنگ میں میرے پورے پس منظر نے مجھے سکھایا ہے کہ آپ لوگوں کو بندوق دے سکتے ہیں اور اگر وہ محتاط نہیں ہیں تو وہ خود کو پاؤں میں گولی مار دیں گے۔ چال یہ ہے کہ انہیں یہ بتانا ہے کہ حفاظت کا طریقہ کار کیا ہے۔ آپ کی انگلی پر صحیح ٹولز اور صحیح سافٹ وئیر کی مدد سے ، کوڈنگ کرنے کے بعد ، آپ اپنے کوڈ کا جائزہ لے سکتے ہیں ، کوڈ کو پروفایل کر کے آپ ایشوز تلاش کرسکتے ہیں ، آپ کو مؤثر طریقے سے غیر اعلانیہ کیڑے مل سکتے ہیں جو کارکردگی کے مسائل ہیں ، اور جیسا کہ میں نے کہا ہے۔ اس سے قبل ، ایک بار ، آپ سبز اسکرین پر نظر ڈالتے ہو۔ اب آپ نہیں کر سکتے۔ کوڈ کی لاکھوں لائنیں موجود ہیں ، ہزاروں ایپس تعینات ہیں ، کچھ مثالوں میں لاکھوں ڈیٹا بیس موجود ہیں ، اور یہاں تک کہ سپر انسان بھی حقیقت میں اب ہاتھ سے یہ کام نہیں کرسکتا ہے۔ آپ کو اپنی انگلی کے اشارے پر لفظی طور پر صحیح سافٹ ویئر اور صحیح ٹولز کی ضرورت ہے اور آپ کو ان ٹولوں کا استعمال کرنے کے لئے ٹیم کی ضرورت ہے ، تاکہ آپ اس مسئلے پر پہنچنے سے پہلے ان مسائل کو ڈھونڈ سکیں اور انھیں بہت جلد حل کرسکیں ، جبکہ ڈاکٹر۔ رابن بلور نے روشنی ڈالی ، چیزیں یا تو تباہ کن ہوجاتی ہیں ، اور چیزیں اڑ جاتی ہیں ، یا زیادہ عام طور پر ، وہ صرف آپ کے لئے بہت سارے ڈالر اور بہت وقت اور کوشش کرنا پڑتے ہیں اور حوصلے اور سامان کو تباہ کرنا شروع کردیتے ہیں ، جب وہ کام نہیں کرسکتے ہیں تو چیزیں کیوں لیتی ہیں۔ چلانے کے لئے ایک طویل وقت.

اور اس بات کو ذہن میں رکھتے ہوئے ، میں اپنے مہمان کے حوالے کروں گا اور میں یہ سننے کے منتظر ہوں کہ انہوں نے اس مسئلے کو کس طرح حل کیا ہے۔ اور خاص طور پر مجھے لگتا ہے کہ ہمیں حاصل ہونے ہی والا ہے۔ ایرک ، میں واپس گزر جاؤں گا۔

ایرک کااناگ: ٹھیک ہے ، برٹ ، اسے لے جاؤ۔

برٹ اسکالزو: ٹھیک ہے ، آپ کا شکریہ۔ برٹ سکالزو یہاں آئیڈیرا سے ، میں ہمارے ڈیٹا بیس ٹولز کے لئے پراڈکٹ مینیجر ہوں۔ اور میں ڈیبگنگ کے بارے میں بات کرنے جارہا ہوں۔ میرے خیال میں رابن نے پہلے کہی ایک سب سے اہم بات - اور یہ بات بالکل سچ ہے کہ ڈیبگنگ سخت اور غیر معمولی ہوتی ہے ، اور جب آپ ڈیٹا بیس ڈیبگنگ پر جاتے ہیں تو یہ اور بھی زیادہ سخت اور غیر معمولی ہے - لہذا ، ایک اہم حوالہ تھا۔

ٹھیک ہے. میں پروگرامنگ کی تاریخ سے آغاز کرنا چاہتا تھا ، کیوں کہ بہت ساری بار میں ان لوگوں کو دیکھتا ہوں جو ڈیبگ نہیں کررہے ہیں ، وہ ڈیبگر استعمال نہیں کرتے ہیں ، وہ صرف جس زبان کا استعمال کررہے ہیں اس کے ساتھ پروگرام کرتے ہیں اور بہت ساری بار وہ مجھ سے کہتے ہیں۔ ، "ٹھیک ہے ، وہ ٹھیک کرنے والی چیزیں نئی ​​ہیں ، اور ہم نے ابھی تک ان کا استعمال شروع نہیں کیا ہے۔" اور اس کے بعد میں ان کو یہ ٹائم لائن چارٹ دکھاتا ہوں ، تاریخ سے پہلے کی طرح ، بوڑھاپھ ، درمیانی عمر ، یہ مہربان ہے ہم پروگرامنگ زبانوں کے معاملے میں کہاں تھے؟ اور ہمارے پاس بہت پرانی زبانیں 1951 میں اسمبلی کوڈ ، اور لسپ اور حقیقت اور کوبل کے ساتھ شروع ہوئیں۔ اس کے بعد ہم اگلے گروپ ، پاسکلز اور سی ایس اور پھر اگلے گروپ ، سی ++ ایس میں داخل ہوجائیں اور دیکھیں کہ وہ سوالیہ نشان کہاں ہے۔ یہ سوالیہ نشان تقریبا888 to to سے شاید 1980 کے عین قریب ہے۔ اس جگہ میں کہیں ہمارے پاس تھا ہمارے پاس ڈیبگر دستیاب ہیں ، اور اس طرح یہ کہنا ، "ارے ، میں ایک ڈیبگر استعمال نہیں کر رہا ہوں ، 'اس لئے کہ وہ ان نئی چیزوں میں سے ایک ہے ،" پھر آپ نے پروگرامنگ شروع کرنی چاہیئے ، آپ کو معلوم ہوگا ، 1950 کی دہائی میں ، یہی وجہ ہے کہ صرف ایک ہی راستہ ہے کہ آپ اس دعوے سے دور ہوجائیں گے۔

اب دوسری چیز جو اس چارٹ کے بارے میں مضحکہ خیز ہے وہ ہے ڈیز نے ابھی صرف گریس ہوپر کے بارے میں ایک تبصرہ کیا ، میں واقعتا میں گریس کو جانتا تھا ، لہذا یہ ایک قسم کی مضحکہ خیز ہے۔ اور پھر دوسری چیز جس پر میں ہنس پڑی وہ یہ ہے کہ اس نے ٹیلی ٹائپ کے بارے میں بات کی تھی اور میں وہاں بیٹھا ہوا تھا ، "یار ، جب ہم کارڈ سے ٹیلی ٹائپ پر جاتے تھے تو ، یہ اب تک کی سب سے بڑی چھلانگ تھی۔ "تو ، اور میں نے یہاں کی ساری زبانوں میں پروگرام کیا ہے ، بشمول ایس این او او ایل ، جس کا پہلے کبھی کسی کے بارے میں نہیں سنا تھا ، یہ ایک سی ڈی سی ، کنٹرول ڈیٹا کارپوریشن تھا ، لہذا مجھے لگتا ہے کہ میں اس صنعت کے لئے تھوڑا بہت بوڑھا ہو گیا ہوں۔ .

ڈیز بلین فیلڈ: میں کہنے جارہا تھا ، آپ نے ہماری عمر وہاں بہت بڑھادی ہے۔

برٹ اسکالزو: ہاں ، میں آپ کو بتا رہا ہوں ، مجھے دادا سمپسن کی طرح محسوس ہوتا ہے۔ تو میں ڈیبگنگ کو دیکھتا ہوں اور ڈیبگنگ کرنے کے مختلف طریقے ہیں۔ آپ اس کے بارے میں بات کر سکتے ہیں جو ہم سب روایتی طور پر ڈیبگر میں داخل ہونے اور کوڈ کے ذریعے قدم رکھنے کے بارے میں سوچتے ہیں۔ لیکن ، لوگ ان کے کوڈ کو تیار کریں گے۔ اسی جگہ پر آپ اپنے کوڈ میں بیانات لگاتے ہیں اور ہوسکتا ہے کہ آپ آؤٹ پٹ فائل ، ٹریس فائل یا کوئی اور چیز تیار کریں ، اور اسی طرح آپ اپنا کوڈ تیار کریں۔ میں یہ سمجھتا ہوں کہ ڈیبگنگ کے طور پر ، یہ کرنے کا ایک طریقہ تھوڑا سا مشکل ہے ، لیکن اس کا شمار ہوتا ہے۔ لیکن اس کے علاوہ ، ہمارے پاس مشہور پرنٹ اسٹیٹمنٹ ملا ہے: آپ دیکھتے ہیں اور لوگوں نے واقعی پرنٹ اسٹیٹمنٹ لگاتے ہیں اور میں نے واقعتا ایک ٹول دیکھا ہے جہاں - اور یہ ایک ڈیٹا بیس ٹول ہے - جہاں آپ ڈیبگر کو استعمال کرنا نہیں جانتے ہیں تو ، آپ بٹن کو دبائیں گے اور یہ آپ کے لئے پورے کوڈ میں پرنٹ بیانات پر قائم رہے گا اور پھر جب آپ کام کرجائیں گے تو آپ دوسرا بٹن دبائیں گے اور اس سے باہر ہوجائے گا۔ کیونکہ اسی طرح بہت سارے لوگ ڈیبگ ہوتے ہیں۔

اور جس وجہ سے ہم ڈیبگ کرتے ہیں وہ دوگنا ہے: سب سے پہلے ، ہمیں ایسی چیزیں ڈھونڈ لیں جو ہمارے کوڈ کو غیر موثر بناتی ہیں۔ دوسرے لفظوں میں ، عام طور پر اس کا مطلب یہ ہے کہ کوئی منطقی غلطی ہے یا ہم کسی کاروبار کی ضرورت سے محروم ہوگئے ، لیکن یہ کیا ہے ، کوڈ موثر نہیں ہے۔ یہ وہ نہیں کرتا جس کی ہمیں توقع تھی۔ دوسری بار جب ہم جاتے ہیں اور ہم ڈیبگنگ کرتے ہیں ، تو یہ کارکردگی کا ہے اور یہ منطقی غلطی ہوسکتی ہے ، لیکن یہ کیا ہے ، کیا میں نے صحیح کام کیا ، یہ صرف اتنی جلدی واپس نہیں آتا ہے۔ اب ، میں اس نکتے کو بیان کرتا ہوں کیونکہ اس دوسرے منظر نامے کے لئے ایک پروفائلر شاید بہتر ہے اور ہم دونوں ڈیبگرز اور پروفائلرز کے بارے میں بات کرنے جارہے ہیں۔ اس کے علاوہ ، ریموٹ ڈیبگنگ کا یہ تصور موجود ہے۔ یہ ضروری ہے کیونکہ اگر آپ اپنے پرسنل کمپیوٹر پر بیٹھے ہوئے ہیں اور آپ ایک ڈیبگر استعمال کررہے ہیں توبہترین بار جب کوڈ واقعی ڈاٹا بیس پر عملدرآمد ہوتا ہے تو آپ اصل میں وہ کام کررہے ہیں جسے ریموٹ ڈیبگنگ کہتے ہیں۔ ہوسکتا ہے کہ آپ کو اس کا احساس نہ ہو ، لیکن یہ ہو رہا ہے۔ اور پھر ، ان ٹھیکیداروں کے ساتھ بریک پوائنٹس ، واچ پوائنٹس ، قدم بڑھانا اور آگے بڑھنا اور کچھ دوسری عام چیزیں رکھنا بہت عام ہے ، جو میں ایک لمحے میں اسکرین اسنیپ شاٹ پر موجود لوگوں کو دکھانے جا رہا ہوں۔

اب ، پروفائلنگ: آپ مختلف طریقوں سے پروفائلنگ کرسکتے ہیں۔ کچھ لوگ کہیں گے کہ کام کے بوجھ پر قبضہ اور دوبارہ چلائیں جہاں اس نے سب کچھ پکڑ لیا ہے ، اس کی گنتی پروفائل کے طور پر ہے۔ میرا تجربہ زیادہ رہا ہے اگر یہ نمونے لینے کا کام کرے تو یہ بہتر ہے۔ ہر ایک بیان کو پکڑنے کی کوئی وجہ نہیں ہے ، کیوں کہ کچھ بیانات اتنی جلدی سے چل سکتے ہیں کہ آپ کو پرواہ نہیں ہے ، جو آپ واقعی دیکھنے کی کوشش کر رہے ہیں وہ ہے ، ٹھیک ہے ، وہی ہیں جو بار بار دکھاتے رہتے ہیں ، کیونکہ وہ بہت لمبے لمبے دوڑتے ہیں۔ لہذا ، کبھی کبھی پروفائلنگ کا مطلب پوری چیز کو چلانے کے بجائے نمونے لینے کا مطلب بن سکتا ہے۔ اور عام طور پر ، آپ کو کسی قسم کی آؤٹ پٹ ملے گی جس کا استعمال آپ کرسکتے ہیں ، اب یہ کسی IDE ڈویلپمنٹ ماحول کے نظارے میں ہوسکتا ہے ، جہاں یہ آپ کو مختلف خطوط کوڈ کی کارکردگی کا ایک ہسٹوگرام دے سکتا ہے ، لیکن یہ اب بھی ہوسکتا ہے ہو کہ یہ ٹریس فائل تیار کرے۔

پروفائلر سب سے پہلے 1979 میں شائع ہوئے۔ لہذا ، وہ بھی ایک طویل عرصے سے رہے ہیں۔ وسائل کی کھپت ، یا کارکردگی کے امور تلاش کرنے کے ل Great ، دوسرے الفاظ میں جو کارکردگی کی بات ہے۔ عام طور پر ، یہ ڈیبگر سے الگ اور الگ ہے ، حالانکہ میں نے ڈیبگروں کے ساتھ کام کیا ہے جو بیک وقت دونوں کرتے ہیں۔ اور جب مجھے لگتا ہے کہ پروفائلرز ان دو ٹولز میں زیادہ دلچسپ ہیں ، اگر مجھے لگتا ہے کہ کافی لوگ ڈیبگ نہیں کرتے ہیں تو یقینا then کافی تعداد میں لوگ نہیں ، کیونکہ ایسا لگتا ہے کہ دس میں سے ایک ڈیبگر پروفائل کرے گا۔ اور یہ ایک شرم کی بات ہے ، کیونکہ پروفائلنگ واقعی میں بہت بڑا فرق لاسکتی ہے۔ اب ، ڈیٹا بیس کی زبانیں ، جیسا کہ ہم نے پہلے کی بات کی ہے ، آپ کو ایس کیو ایل مل گیا ہے - اور ہم نے طرح طرح کے گول دائرہ کو یہاں کے مربع سوراخ میں ڈال دیا ہے اور اس کو ایک پروگرامنگ زبان بننے پر مجبور کیا ہے - اوریکل۔ یہ پی ایل / ایس کیو ایل ہے - وہ طریقہ کار کی زبان ایس کیو ایل ہے - اور ایس کیو ایل سرور ہے ، یہ ٹرانزیکٹ ایس کیو ایل ہے ، یہ ایس کیو ایل ہے - 99 ہے ، یہ ایس کیو ایل / پی ایس ایم ہے - کیونکہ مجھے لگتا ہے کہ یہ پروسیجر اسٹور شدہ ماڈیول ہے۔ پوسٹگریس اس کو دوسرا نام ، ڈی بی 2 اور ایک اور نام ، انفارمکس دیتا ہے ، لیکن بات یہ ہے کہ ہر ایک نے 3GL قسم کی تعمیرات پر مجبور کیا ہے۔ دوسرے لفظوں میں ، متغیر اعلامیے اور دیگر تمام چیزیں جو SQL سے غیر ملکی ہیں ، اب ان زبانوں میں ایس کیو ایل کا حصہ ہیں۔ اور اسی طرح ، آپ کو ایک PL / SQL یا ٹرانزیکٹ SQL اسی طرح ڈیبگ کرنے کے قابل ہونا چاہئے جیسے آپ ایک بصری بنیادی پروگرام بنائیں۔

اب ، ڈیٹا بیس اشیاء ، یہ ضروری ہے کیونکہ لوگ کہیں گے ، "ٹھیک ہے ، مجھے ڈیٹا بیس میں کون سی چیزیں ڈیبگ کرنا ہیں؟" اور جواب یہ ہے کہ ، جو بھی آپ کوڈ کے طور پر ڈیٹا بیس میں ذخیرہ کرسکتے ہیں۔ T-SQL ، یا PL / SQL - اور میں ڈیٹا بیس میں اشیاء کو اسٹور کر رہا ہوں ، یہ شاید ذخیرہ شدہ طریقہ کار یا ذخیرہ شدہ فنکشن ہے۔ لیکن اس کے علاوہ ٹرگرز بھی موجود ہیں: ایک محرک ایک ذخیرہ شدہ طریقہ کار کی طرح ہے ، لیکن یہ کسی نہ کسی طرح کے واقعے پر چلتا ہے۔ اب ، کچھ لوگ اپنے محرکات میں ایک کوڈ کی لکیر لگائیں گے اور ذخیرہ شدہ طریقہ کار کو کال کریں گے تاکہ وہ اپنے تمام ذخیرہ شدہ کوڈ اور طریقہ کار کو برقرار رکھیں ، لیکن یہ ایک ہی تصور ہے: یہ اب بھی متحرک ہوسکتا ہے جو پوری چیز کو شروع کرتا ہے۔ اور پھر اوریکل کی حیثیت سے ، ان کے پاس ایک پیکیج نامی کچھ ہے ، جو لائبریری کی طرح ہے اگر آپ کریں گے۔ آپ نے ایک گروپ میں 50 یا 100 ذخیرہ شدہ طریقہ کار ڈال دیا ، جسے پیکیج کہا جاتا ہے ، لہذا یہ لائبریری کی طرح ہے۔ لہذا ، یہاں ڈیبگر پرانا طریقہ ہے؛ یہ دراصل ایک ٹول ہے جو دراصل آپ کے لئے آپ کے کوڈ میں ان تمام ڈیبگ بیانات کو داخل کرے گا۔ لہذا ، جہاں کہیں بھی آپ ڈیبگ بلاک دیکھتے ہیں ، اسے نہیں ہٹاتے ہیں ، آٹو ڈیبگر اسٹارٹ کرتے ہیں اور ٹریس کرتے ہیں ، وہ سب کسی نہ کسی آلے کے ذریعہ پھنسے ہوئے تھے۔ اور اس سے باہر کی لکیریں ، جو کوڈ کی اقلیت ہے ، ٹھیک ہے ، یہ غیر دستی ڈیبگنگ کا طریقہ ہے۔

اور میں اس کو سامنے لانے کی وجہ یہ ہے کہ ، اگر آپ ہاتھ سے یہ کام کرنے کی کوشش کر رہے ہیں تو ، آپ واقعی میں زیادہ ڈیبگنگ کوڈ ٹائپ کریں گے تاکہ ان تمام پرنٹ اسٹیٹمنٹ کو اپنے کوڈ کے مقابلے میں رکھیں۔ لہذا ، جبکہ یہ کام کرسکتا ہے ، اور یہ کسی بھی چیز سے بہتر نہیں ہے ، لیکن ڈیبگ کرنے کا یہ ایک بہت ہی مشکل طریقہ ہے ، خاص کر جب سے ، اگر اس چیز کو چلانے میں 10 گھنٹے لگیں ، اور جہاں اس میں کوئی مسئلہ درپیش ہے وہ لائن میں ہے۔ اگر میں انٹرایکٹو ڈیبگنگ سیشن کر رہا ہوتا تو ، میں اس سے پانچ منٹ میں لائن پر ہی معلوم ہوتا - ارے ، یہاں ایک مسئلہ ہے ، میں چھوڑ سکتا ہوں۔ لیکن اس کے ساتھ ، مجھے اس کے چلنے کے لئے مکمل طور پر مکمل ہونے کا انتظار کرنا پڑے گا اور پھر مجھے کچھ ٹریس فائل کو دیکھنا پڑے گا جس میں شاید یہ تمام پرنٹ بیانات موجود ہیں ، اور کوشش کریں اور انجکشن کو تلاش کریں جس میں گھاس کا نشان ایک بار پھر ، یہ کسی بھی چیز سے بہتر ہے ، لیکن یہ کام کرنے کا بہترین طریقہ نہیں ہوگا۔ اب ، یہ وہ فائل ہوگی جو اس سے پہلے والی سلائڈ سے آرہی ہے۔ دوسرے لفظوں میں ، میں نے پروگرام چلایا ، اور ابھی اس کا سراغ لگا کر اس ٹریس فائل میں بہت سارے بیانات مل گئے ہیں اور میں اس کے ذریعہ پچھلے حص .ے میں تلاش کرنے یا قابل نہیں رہ سکتا ہوں جس کی مجھے تلاش کرنے کی ضرورت ہے۔ لہذا ، ایک بار پھر ، مجھے اتنا یقین نہیں ہے کہ آپ اسی طرح کام کرنا چاہتے ہیں۔

اب ، انٹرایکٹو ڈیبگرس - اور اگر آپ نے پروگرام لکھنے کے لئے بصری اسٹوڈیو جیسی کوئی چیز استعمال کی ہے ، یا ایکلیپس ، تو آپ کو ڈیبگر مل چکے ہیں اور آپ نے انہیں اپنی دوسری زبانوں کے ساتھ استعمال کیا ہے - صرف یہ نہیں سوچا کہ ان کو اپنے ڈیٹا بیس کے ساتھ استعمال کریں۔ اور وہاں آلے بھی موجود ہیں ، جیسے ہمارے ڈی بی آرٹیسن اور ہمارے ریپڈ ایس کیو ایل ، یہاں ریپڈ ایس کیو ایل ہے ، جس میں ایک ڈیبگر ہے ، اور آپ بائیں طرف دیکھ سکتے ہیں ، میرے پاس ذخیرہ شدہ طریقہ کار ہے جسے "ڈپلیکیٹ چیک کریں" کہا جاتا ہے۔ بنیادی طور پر ، یہ ابھی جاکر جا رہا ہے اور دیکھنا ہے کہ میرے پاس ٹیبل میں ایک ہی فلم کے عنوان کے ساتھ ایک سے زیادہ قطاریں ہیں۔ تو ، ڈیٹا بیس فلموں کے لئے ہے۔ اور آپ دائیں طرف دیکھ سکتے ہیں ، اوپری تیسرے نمبر پر ، مجھے درمیان میں اپنا ماخذ کوڈ مل گیا ہے ، مجھے وہ چیز مل گئی ہے جسے میری گھڑی کے متغیر اور کال اسٹیک ٹرے کہا جاتا ہے ، اور پھر میں نیچے ہوں '۔ کچھ آؤٹ پٹ میسج ملے۔ اور یہاں اہم بات یہ ہے کہ ، اگر آپ اس پہلا سرخ تیر پر نظر ڈالیں ، اگر میں کسی متغیر پر ماؤس کرتا ہوں تو ، میں واقعتا دیکھ سکتا ہوں کہ اس وقت اس متغیر میں کیا قدر ہے ، کیوں کہ میں اس کوڈ پر قدم رکھ رہا ہوں۔ اور یہ واقعی مفید ہے ، اور پھر میں کوڈ کے ذریعہ ایک وقت میں ایک لائن میں قدم رکھ سکتا ہوں ، مجھے پھانسی پر عمل کرنے کی ضرورت نہیں ہے ، میں ایک سطر مرحلہ کہہ سکتا ہوں ، مجھے دیکھنے دو کہ کیا ہوا ، ایک اور لائن کو آگے بڑھاؤ ، مجھے دیکھنے دو کہ کیا ہوا ، اور میں یہ ڈیٹا بیس میں کر رہا ہوں۔ اور اگرچہ میں اپنے پی سی پر ریپڈ ایس کیو ایل پر بیٹھا ہوں اور میرا ڈیٹا بیس بادل میں موجود ہے ، میں اب بھی وہ ریموٹ ڈیبگنگ کرسکتا ہوں اور اسے دیکھ سکتا ہوں اور اسے یہاں سے کنٹرول کرسکتا ہوں ، اور اسی طرح ڈیبگنگ کرسکتا ہوں جیسے کسی دوسری زبان سے ہو۔

اب ، اگلا تیر وہاں - آپ دیکھ سکتے ہو جیسے تھوڑا سا تیر کی طرف دائیں طرف اشارہ کرتے ہوئے ، اس ڈی بی ایم ایس آؤٹ پٹ کی طرف ، جہاں میرا کرسر اس وقت موجود ہے۔ لہذا ، دوسرے لفظوں میں ، میں نے قدم اٹھا لیا ہے اور اسی جگہ پر میں ہوں لمحہ. لہذا ، اگر میں کہتا ہوں کہ ، "پھر سے قدم رکھو" ، تو میں اس اگلی لائن میں جاؤں گا۔ اب اس کے بالکل نیچے آپ کو سرخ نقطہ نظر آئے گا۔ ٹھیک ہے ، یہ ایک بریک پوائنٹ ہے ، جس میں کہا گیا ہے ، "ارے ، میں ان لائنوں پر قدم نہیں اٹھانا چاہتا۔" اگر میں صرف ہر چیز پر کود پڑنا چاہتا ہوں اور اس سرخ نقطے کو کہاں جانا چاہتا ہوں ، تو میں رن بٹن کو ٹکر سکتا ہوں اور یہ چل پڑے گا۔ یہاں سے یا تو آخر تک ، یا کسی بریک پوائنٹ تک ، اگر کوئی بریک پوائنٹ مقرر ہے ، اور پھر یہ رک جائے گا اور مجھے دوبارہ قدم رکھنے دے گا۔ اور اس کی وجہ یہ ہے کہ یہ سب اہم اور طاقتور ہے ، کیونکہ جب میں یہ سب کر رہا ہوں تو ، درمیان میں اور یہاں تک کہ نیچے کیا ہو رہا ہے - لیکن سب سے اہم بات یہ ہے کہ وسط بدل جائے گا اور میں اپنے متغیرات سے اقدار دیکھ سکتا ہوں ، میں اپنے کال اسٹیک ٹریس کو دیکھ سکتا ہوں ، اور آپ کو معلوم ہے ، اور اس طرح کی تمام معلومات وہاں ظاہر ہوتی ہیں جب میں کوڈ میں قدم اٹھا رہا ہوں ، لہذا میں حقیقت میں دیکھ سکتا ہوں اور محسوس کرسکتا ہوں اور اس بات کا اندازہ کرسکتا ہوں کہ کیا ہو رہا ہے اور کوڈ اصل میں کیسا ہے۔ عملدرآمد کے وقت کام کرنا۔ اور عام طور پر مجھے کوئی مسئلہ درپیش ہے ، اگر کوئی مسئلہ ہے ، یا اگر میں اس کو پکڑنے کے لئے کافی اچھا ہوں۔

ٹھیک ہے ، اب میں ایک پروفائلر کے بارے میں بات کرنے جارہا ہوں ، اور اس معاملے میں ، یہ ایک پروفائلر ہے جسے میں ڈیبگر کے ذریعے دیکھ سکتا ہوں۔ یاد ہے میں نے کہا کبھی کبھی وہ الگ ہوتے ہیں اور کبھی کبھی وہ ساتھ رہ سکتے ہیں۔ اس معاملے میں ، اور پھر ، میں ریپڈ ایس کیو ایل میں ہوں ، اور میں دیکھ سکتا ہوں کہ لائن نمبر کے اگلے ، بائیں طرف ، ایک مارجن ہے۔ اور وہ کیا ہے ، یہ ہے کہ سیکنڈز یا مائیکرو سیکنڈز کی تعداد جس میں اس نے کوڈ کی ہر لائن کو عملی جامہ پہنانے میں لیا ، اور میں یہ دیکھ سکتا ہوں کہ میرا سارا وقت اس ایک لوپ فار میں خرچ ہوتا ہے جہاں میں ایک ٹیبل سے ہر چیز کا انتخاب کر رہا ہوں۔ . اور اس طرح ، اس فار لوپ کے اندر جو کچھ بھی ہو رہا ہے وہ شاید مجھے دیکھنے کی ضرورت ہے ، اور اگر میں اسے بہتر بنا سکتا ہوں تو ، اس سے منافع ادا ہوگا۔ میں ان لائنوں پر کام کرکے کوئی بہتری نہیں لانے جا رہا ہوں جیسے 0.90 یا 0.86۔ وہاں زیادہ وقت نہیں گزرا ہے۔ اب ، اور اس معاملے میں ، میں ریپڈ ایس کیو ایل میں ہوں ، آپ دیکھ رہے ہیں کہ میں کس طرح اپنے ڈیبگنگ کے ساتھ ایک ساتھ مل کر پروفائلنگ کرسکتا ہوں۔ اب ، کیا اچھی بات ہے ریپڈ ایس کیو ایل آپ کو دوسری طرح سے کرنے کی اجازت دیتا ہے۔ ریپڈ ایس کیو ایل آپ کو یہ کہنے کی اجازت دیتا ہے ، "آپ کو کیا معلوم؟ میں ڈیبگر میں نہیں رہنا چاہتا ، میں صرف اسے چلانا چاہتا ہوں اور پھر میں اسی طرح کی معلومات کو گرافک یا ضعف سے دیکھنا چاہتا ہوں۔

اور آپ دیکھ سکتے ہیں کہ میں اب ڈیبگر میں نہیں ہوں اور یہ پروگرام چلاتا ہے اور اس پر عمل درآمد ہونے کے بعد ، اس سے مجھے چیزیں سنانے کے لئے چارٹس ملتے ہیں تاکہ میں دیکھ سکتا ہوں کہ مجھے ایک بیان مل گیا ہے جس کی طرح لگتا ہے کہ یہ اٹھ رہا ہے۔ زیادہ تر پائی چارٹ اور اگر میں دیکھتا ہوں تو ، میں اس گرڈ پر نیچے ، لائن 23 کی طرف دیکھتا ہوں ، وہاں پھر سے فارپ لوپ ہوتا ہے: وہ زیادہ تر وقت لے رہا ہے ، وہ حقیقت میں یہ ہے کہ گہرا سرخ سب پائی چارٹ چبا رہا ہے۔ اور اسی طرح ، یہ پروفائلنگ کرنے کا ایک اور طریقہ ہے۔ ہم اپنے آلے میں اس کوڈ کوڈ تجزیہ کار کو کہتے ہیں۔ لیکن یہ بنیادی طور پر صرف ایک پروفائلر ہے جو ڈیبگر سے جدا ہوا ہے۔ کچھ لوگ اسے پہلی طرح کرنا پسند کرتے ہیں ، کچھ لوگ اسے دوسری طرح کرنا پسند کرتے ہیں۔

ہم ڈیبگنگ اور پروفائلنگ کیوں کرتے ہیں؟ اس کی وجہ یہ نہیں ہے کہ ہم دنیا کا سب سے بڑا کوڈ لکھنا چاہتے ہیں اور تنخواہ میں اضافہ چاہتے ہیں - یہ ہماری وجہ ہوسکتی ہے ، لیکن حقیقت میں یہی وجہ نہیں ہے کہ آپ یہ کرتے ہیں - آپ نے کاروبار سے وعدہ کیا تھا کہ آپ کچھ صحیح طریقے سے کریں گے ، کہ آپ کا پروگرام موثر ہوگا۔ اسی کے لئے آپ ڈیبگر استعمال کریں گے۔ اس کے علاوہ ، کاروبار کے آخر صارف وہ زیادہ صبر مند نہیں ہیں: وہ کلید دبانے سے پہلے ہی نتائج چاہتے ہیں۔ ہمیں ان کا دماغ پڑھنا چاہئے اور سب کچھ فوری طور پر کرنا ہے۔ دوسرے الفاظ میں ، یہ موثر ہونا پڑا۔ اور اسی طرح ، ہم پروفائلر کا استعمال کریں گے۔ اب ، ان ٹولز کے بغیر ، میں واقعی میں یقین کرتا ہوں کہ آپ کمان اور تیر والے بزنس سوٹ میں یہ آدمی ہو اور آپ نشانے پر گولی مار رہے ہیں اور آپ کی آنکھوں پر پٹی بندھی ہوئی ہے۔ کیوں کہ آپ یہ کیسے ڈھونڈ رہے ہیں کہ ایک پروگرام صرف جامد کوڈ کو دیکھ کر عملدرآمد کرتا ہے اور آپ یہ کیسے معلوم کر سکتے ہیں کہ کونسی لائن ہے جہاں واقعی زیادہ سے زیادہ وقت پھانسی میں صرف ہوتا ہے ، صرف ، جامد کوڈ کو دیکھ کر؟ کوڈ کا جائزہ لینے سے ان میں سے کچھ چیزیں تبدیل ہوسکتی ہیں یا نہیں ہوسکتی ہیں ، لیکن اس بات کی کوئی گارنٹی نہیں ہے کہ کوڈ کے جائزے سے یہ سب مل جائیں گے۔ ڈیبگر اور پروفائلر کا استعمال کرتے ہوئے آپ کو ان تمام کیڑے تلاش کرنے کے قابل ہونا چاہئے۔

ٹھیک ہے ، میں یہاں ایک حقیقی فوری ڈیمو کرنے جارہا ہوں۔ پروڈکٹ کو آگے بڑھانا میرا ارادہ نہیں ہے ، میں صرف آپ کو یہ دکھانا چاہتا ہوں کہ ایک ڈیبگر کیسا لگتا ہے 'کیونکہ لوگ کہیں گے ، "میں نے ان میں سے کبھی نہیں دیکھا تھا۔" اور اسکرین اسنیپ سلائڈز میں یہ خوبصورت نظر آتا ہے۔ ، لیکن جب حرکت میں ہے تو ایسا کیا لگتا ہے؟ تو ، یہاں میری اسکرین پر میں ہمارا ڈی بی آرٹیزان پروڈکٹ چلا رہا ہوں۔ ہمارے یہاں بھی ایک ڈیبگر ہے۔ ڈی بی آرٹیزن کا مطلب ڈی بی اے کے لئے زیادہ ہے ، ریپڈ ایس کیو ایل ڈویلپرز کے لئے زیادہ ہے ، لیکن میں نے ڈی بی آرٹیزن استعمال کرنے والے ڈویلپرز کو دیکھا ہے ، اور میں نے ڈی بی اے کو دیکھا ہے جو ریپڈ استعمال کرتے ہیں۔ لہذا ، مصنوعات پر مت پھنسیں۔ اور یہاں ، میرے پاس ڈیبگ کرنے کا انتخاب ہے ، لیکن ڈیبگ لانچ کرنے سے پہلے ، میں اس کوڈ کو نکالنے جا رہا ہوں تاکہ آپ یہ دیکھ سکیں کہ کوڈ چلنے سے پہلے میں کیسا لگتا ہے۔ تو ، یہاں عین وہی کوڈ ہے جو اسکرین اسنیپ شاٹ میں تھا ، یہ میری نقلوں کے لئے چیک ہے۔ اور میں اس کو ڈیبگ کرنا چاہتا ہوں ، لہذا میں ڈیبگ دباتا ہوں۔ اور اب ، اس میں ایک لمحہ لگتا ہے اور آپ کہتے ہیں ، "ٹھیک ہے ، کیوں کہ یہ ایک لمحہ کیوں لے رہا ہے؟" ریموٹ ڈیبگنگ کو یاد رکھیں: ٹھیک کرنا میرے پی سی پر نہیں ، بلکہ میرے ڈیٹا بیس سرور پر ہو رہا ہے۔ لہذا ، اسے ختم ہوکر وہاں سیشن بنانا ہوگا ، ریموٹ ڈیبگنگ چیز بنانی ہوگی ، میرے سیشن کو اس ریموٹ ڈیبگنگ سیشن میں لگانا تھا اور ایک مواصلاتی چینل تشکیل دینا تھا۔

تو ، اب ، میرا تیر یہاں ہے ، یہ سب سے اوپر ہے ، ایک ایک لائن کے ذریعہ ، جہاں میں کوڈ میں ہوں۔ اور اگر میں وہاں تیسرا آئیکون دباتا ہوں ، جس میں ایک قدم ہے تو ، آپ دیکھیں گے کہ تیر صرف حرکت میں آگیا ہے ، اور اگر میں اسے دباتا رہا تو آپ دیکھیں گے کہ یہ حرکت کرتا رہتا ہے۔ اب ، اگر میں اس فار لوپ پر پوری طرح جانا چاہتا ہوں ، کیوں کہ میں جانتا ہوں کہ مسئلہ وہیں ہے ، تو میں ایک بریک پوائنٹ متعین کرسکتا ہوں۔ میں نے سوچا کہ میں نے یہ سیٹ کیا ہے۔ اوہ گولی مارو ، میں نے اپنی اسکرین کیپچر چابی میں سے ایک ڈیبگر جیسی کلید کے ساتھ نقشہ لگایا تھا ، یہی وجہ ہے کہ الجھن کا سبب بن رہا ہے۔ ٹھیک ہے ، لہذا میں نے دستی طور پر وہاں ایک بریک پوائنٹ متعین کیا ، لہذا اب جب تک میں وہاں نہ پہنچوں اس وقت تک ، ایک قدم ، قدم ، قدم ، قدم اٹھانے کے بجائے ، میں صرف اتنا کہہ سکتا ہوں ، "آگے بڑھیں اور اس چیز کو چلائیں ،" اور یہ رک جائے گا۔ غور کریں کہ اس نے مجھے جہاں تک وقفہ نقطہ ہے وہاں منتقل کردیا ، لہذا میں اب اس لوپ کو چلانے کے تناظر میں ہوں ، میں دیکھ سکتا ہوں کہ میرے تمام متغیرات کیا ترتیب دیئے گئے ہیں ، جو حیرت کی بات نہیں ہے ، 'کیوں کہ میں نے ان سب کو ابتدا کیا۔ صفر سے اور اب ، میں اس لوپ میں قدم رکھ سکتا ہوں اور یہ دیکھنا شروع کرسکتا ہوں کہ اس لوپ کے اندر کیا ہو رہا ہے۔

تو ، اب یہ میرے کرایے میں سے ایک منتخب گنتی کرنے جا رہا ہے اور میں اس لڑکے پر ماؤس کرسکتا ہوں اور دیکھو ، وہ دو ہے ، دو ایک سے زیادہ ہے ، لہذا شاید اس کوڈ کا اگلا ٹکڑا کرنے جا رہا ہے۔ دوسرے لفظوں میں ، اس نے کچھ پایا۔ میں ابھی آگے جاؤں گا اور چلنے دو۔ میں یہاں ہر چیز سے گزرنا نہیں چاہتا ہوں۔ جب میں آپ کو دکھانا چاہتا ہوں جب ڈیبگر مکمل ہوجاتا ہے ، تو یہ ایک عام پروگرام کی طرح ختم ہوجاتا ہے۔ میرے پاس بریک پوائنٹ سیٹ ہوچکا ہے ، لہذا جب میں نے رن چلانے کے لئے کہا ، تو یہ صرف اگلے بریک پوائنٹ پر چلا گیا۔ میں اسے آخر تک جانے دیتا ہوں ، 'اس کی وجہ سے میں آپ کو دیکھنا چاہتا ہوں کہ یہ کہ ڈیبگر پروگرام کے طرز عمل کو تبدیل نہیں کرتا ہے: جب یہ کام چلتا ہے تو ، مجھے بالکل ٹھیک نتائج ملنا چاہ if اگر میں اسے چلاتا ہی نہیں تھا۔ ایک ڈیبگر کے اندر

اور اس کے ساتھ ہی ، میں ڈیمو معطل کرکے واپس جاؤں گا اس لئے کہ ہم یہ یقینی بنانا چاہتے ہیں کہ ہمارے پاس سوالات اور جوابات کے لئے وقت ہے۔ اور اسی طرح ، میں اسے سوالات اور جوابات کے ل. کھول دوں گا۔

ایرک کااناگ: ٹھیک ہے ، رابن ، شاید آپ سے کوئی سوال ہے اور پھر ڈیز سے ایک جوڑے؟

رابن بلور: ہاں ، ضرور ، مجھے یہ دلچسپ نظر آرہا ہے۔ میں نے اس طرح کی چیزوں کے ساتھ کام کیا ہے ، لیکن میں نے ڈیٹا بیس میں اس سے پہلے کبھی کام نہیں کیا ہے۔ کیا آپ مجھے کچھ اندازہ دے سکتے ہیں کہ لوگ پروفائلر کو کس کے لئے استعمال کرتے ہیں؟ چونکہ یہ ایسا ہی ہے ، کیا وہ دیکھ رہے ہیں - کیوں کہ میں سمجھتا ہوں کہ وہ ہیں - وہ کارکردگی کے معاملات کو دیکھ رہے ہیں ، کیا اس سے آپ کو اس میں فرق کرنے میں مدد ملے گی جب ڈیٹا بیس میں وقت لگتا ہے اور جب کوڈ کو وقت لگتا ہے؟

برٹ اسکالزو: آپ جانتے ہو ، یہ ایک لاجواب سوال ہے۔ ہم کہتے ہیں کہ میں بصری بنیادی میں کام کر رہا ہوں ، اور میں ، اپنے بصری بنیادی کے اندر ہی میں ایک ٹرانزیکٹ ایس کیو ایل یا پی ایل / ایس کیو ایل کو فون کرنے جا رہا ہوں۔ مجھے PL / SQL کرنے دیں ، کیوں کہ اوریکل مائیکرو سافٹ کے ٹولز کے ساتھ ہمیشہ اچھا نہیں کھیلتا ہے۔ میں اپنے بصری بنیادی کوڈ کی پروفائلنگ کر رہا ہوں ، اور وہاں موجود پروفائل میں یہ کہہ سکتا ہے ، "ارے ، میں نے اس ذخیرہ شدہ طریقہ کار کو فون کیا اور اس میں بہت لمبا عرصہ لگا۔" لیکن پھر میں ذخیرہ شدہ طریقہ کار میں جاسکتا ہوں اور میں اسٹور پر ڈیٹا بیس پروفائل کرسکتا ہوں طریقہ کار بنائیں اور کہیں ، "ٹھیک ہے ، یہاں موجود 100 بیانات میں سے ، پانچ وہ ہیں جو پریشانی کا باعث بن رہے تھے۔" اور اس طرح ، آپ کو ایک ٹیگ ٹیم بھی کرنی پڑسکتی ہے ، جہاں آپ کو متعدد پروفائلز استعمال کرنا ہوں گے۔

خیال یہ ہے کہ اگر آپ کو یہ بتایا جاتا ہے کہ آپ کی کارکردگی کا مسئلہ آپ کے ڈیٹا بیس میں ہے تو ، ایک ڈیٹا بیس پروفائل آپ کو گھاس کی نالی میں سوئی ڈھونڈنے میں مدد کرسکتا ہے جس پر بیانات دراصل وہ جگہ ہوتے ہیں جہاں آپ کو پریشانی ہوتی ہے۔ میں آپ کو ایک اور بات بتاتا ہوں جو پروفائلنگ کے ساتھ نکلا ہے: اگر آپ کے پاس کوڈ کا ایک ٹکڑا ہے جسے دس لاکھ بار کہا جاتا ہے ، لیکن یہ صرف ایک ملین بار میں مائیکرو سیکنڈ لیتا ہے ، لیکن اسے ایک ملین بار کہا جاتا ہے ، پروفائلر کیا دکھائے گا ، یہ چیز اس وقت کے بہت سے اکائیوں کے لئے چل رہی ہے۔ اور اس طرح جب کوڈ انتہائی موثر ہوسکتا ہے ، تو آپ دیکھ سکتے ہو اور کہیں گے ، "اوہ ، ہم اس کوڈ کے ٹکڑے پر بھی اکثر اس کال کر رہے ہیں۔ ہوسکتا ہے کہ ہمیں ہر بار کسی ریکارڈ پر کارروائی کرنے کی بجائے ، صرف اتنی کثرت سے فون کرنا چاہئے۔ اور لہذا آپ واقعی یہ معلوم کرسکتے ہیں کہ موثر کوڈ کہاں ہے جسے صرف اکثر کہا جاتا ہے ، اور یہ دراصل کارکردگی کا مسئلہ ہے۔

رابن بلور: ہاں ، یہ حیرت انگیز ہے۔ میں نے یہ کبھی نہیں کیا۔ آپ یقینا course دیکھیں ، جب میرے پاس ڈیٹا بیس کی پریشانی تھی تو ایسا تھا جیسے میں ایک طرح سے کسی اور طرح سے ڈیٹا بیس سے نمٹ رہا ہوں یا کوڈ کے ساتھ معاملہ کر رہا ہوں۔ میں بیک وقت ان دونوں کے ساتھ کبھی معاملہ نہیں کرسکتا تھا۔ لیکن وہاں ، ایک بار پھر ، میں نے یہ نہیں کیا - میں واقعتا applications کبھی بھی ایسی ایپلی کیشنز کی تعمیر میں ملوث نہیں رہا تھا جہاں ہم نے طریقہ کار کو محفوظ کیا تھا ، لہذا میرا اندازہ ہے کہ میں نے کبھی بھی ایسی پریشانیوں کا سامنا نہیں کیا جو مجھے جنگلی بنانے کے لئے استعمال کرتے تھے ، یہ خیال کوڈ کو ڈیٹا بیس اور پروگرام کے مابین تقسیم کریں۔ لیکن اس کے بعد ، تمام کریں- میں گمان کر رہا ہوں کہ جواب ہاں میں ہے ، لیکن یہ ایک ترقیاتی ٹیم کی سرگرمی کا حصہ ہے ، جب آپ کسی راہ میں یا کسی اور چیز سے ٹوٹ پھوٹ کو ٹھیک کرنے کی کوشش کر رہے ہیں ، یا ہوسکتا ہے کہ نیا لانے کی کوشش کریں ایک ساتھ درخواست. لیکن کیا یہ تمام درجی دوسرے تمام اجزاء کے ساتھ ہے جس کی میں ماحول میں توقع کروں گا؟ کیا میں یہ توقع کرسکتا ہوں کہ میں اپنے تمام ٹیسٹ پیکوں اور ان تمام چیزوں کو جو میں کر رہا ہوں اور اپنے پروجیکٹ مینجمنٹ کے سامان کے ساتھ مل کر کلپ کرسکتا ہوں ، کیا یہ ساری کلپس ایک ساتھ مل کر چلتی ہیں؟

برٹ اسکالزو: ہاں ، آپ کے پروگرامنگ یا ترقیاتی کوششوں کو انجام دینے کے لئے یہ کسی بھی ساختہ عمل کا حصہ بن سکتا ہے۔ اور یہ بات مضحکہ خیز ہے ، پچھلے ہفتے میرے پاس ایک ایسا صارف تھا جو ایک ویب ایپلیکیشن بنا رہا تھا ، اور ان کا ڈیٹا بیس چھوٹا تھا ، تاریخی اعتبار سے ، اور اس حقیقت سے کہ وہ بہت اچھے پروگرامر نہیں تھے انہیں کبھی تکلیف نہیں پہنچی۔ ٹھیک ہے ، ان کا ڈیٹا بیس برسوں میں بڑھ گیا ہے ، اور اب ویب پیج میں 20 سیکنڈ لگتے ہیں ، اس کے درمیان جب آپ کہتے ہیں ، "مجھے لاگ ان کریں اور مجھے دیکھنے کے لئے کچھ ڈیٹا دیں" اور جب اسکرین واقعتا up سامنے آجائے گی ، اور اب یہ ہے۔ کارکردگی کا مسئلہ۔ اور وہ جانتے تھے کہ مسئلہ ان کے کسی جاوا میں یا ان دیگر جگہوں میں سے کسی میں نہیں تھا۔ لیکن ان کے پاس ہزاروں ذخیرہ شدہ طریقہ کار ہیں اور لہذا انہیں یہ جاننے کے لئے ذخیرہ شدہ طریقہ کار کی پروفائلنگ شروع کرنی پڑی کہ یہ ویب صفحہ کیوں آنے میں 20 سیکنڈ لگا رہا ہے؟ اور ہم نے درحقیقت پایا کہ ان کے انتخابی بیانات میں سے کسی میں کارٹیسین شامل ہوا ہے اور وہ نہیں جانتے ہیں۔

رابن بلور: واہ۔

برٹ اسکالزو: لیکن کسی نے مجھ سے ایک بار کہا ، "اچھا وہ کیسے کرٹیسین میں شامل ہوسکتے ہیں اور اسے نہیں جان سکتے ہیں؟" اور یہ واقعی بھیانک محسوس ہوگا۔ کبھی کبھی ایسا پروگرامر جو ایس کیو ایل کے ساتھ زیادہ راحت مند نہیں ہوتا ہے وہ ایسا کچھ کرے گا جیسے مجھے کارٹیسین جوائن کرے ، لیکن پھر صرف مجھے پہلا ریکارڈ واپس کردے ، لہذا میں جانتا ہوں کہ مجھے کچھ مل گیا ہے ، اور مجھے صرف پہلے کی ضرورت ہے۔ اور اس طرح ، انہیں یہ احساس نہیں ہے کہ وہ صرف ایک ارب ریکارڈ واپس لائے ہیں یا وہ ایک ارب ریکارڈوں پر نظر ڈالتے ہیں ، کیونکہ انہیں وہ دلچسپی مل گئی جس میں ان کی دلچسپی تھی۔

رابن بلور: واہ ، میں جانتا ہوں ، یہی کہا جاتا ہے۔ ٹھیک ہے ، وہی ہے جو ڈیز چل رہا تھا ، لوگوں کے معاملے میں ، اتنے ہنر مند نہیں ہیں جیسے انہیں ہونا چاہئے ، آپ جانتے ہیں۔ اگر آپ ایک پروگرامر ہیں تو آپ کو معلوم ہونا چاہئے کہ کسی بھی حکم کو جاری کرنے سے کیا مضمرات ہوتے ہیں۔ میرا مطلب ہے ، واقعی ، حماقت کی اس سطح پر کوئی عذر نہیں ہے۔ میں یہ بھی گمان کر رہا ہوں کہ آپ ، کسی ایک طرح سے ، صرف زبان کی زبان کے لحاظ سے ، اس سلسلے میں زبان زد میں ہوں ، کیونکہ یہ سب ڈیٹا بیس کی طرف مرکوز ہے۔ کیا میں اس میں ٹھیک ہوں؟ کیا کوڈنگ سائیڈ پر آپ جو کچھ بھی استعمال کررہے ہیں کیا یہ صرف وہی ہے؟

برٹ اسکالزو: بالکل ، آپ یہ فورٹران یا C یا C ++ میں کرسکتے ہیں۔ در حقیقت ، کچھ یونکس پر آپ ان کی اسکرپٹ زبانوں کو بھی کر سکتے ہیں۔ وہ دراصل وہی اوزار فراہم کرتے ہیں۔ اور پھر میں اس کے لئے ایک سیکنڈ واپس جانا چاہتا ہوں جو آپ نے کسی عذر کے بغیر نہیں کہا تھا۔ میں پروگرامرز کو ایک وقفہ دینے جارہا ہوں ، کیونکہ مجھے بس کے نیچے پروگرامر پھینکنا پسند نہیں ہے۔ لیکن مسئلہ واقعی تعلیمی ماحول ہے کیوں کہ جب آپ پروگرامر بننے کا طریقہ سیکھنے جاتے ہیں تو آپ کو ایک وقت میں ریکارڈنگ سکھائی جاتی ہے۔ آپ کو سیٹ سوچ سوچنا نہیں سکھایا جاتا ، اور یہی وہ چیز ہے جو اسٹاکچرڈ کوئوری لینگویج ، یا ایس کیو ایل سیٹوں کے ساتھ کام کرتی ہے۔ اسی وجہ سے ہمارے پاس یونین ، چوراہے اور مائنس آپریٹر ہیں۔ اور کبھی کبھی اس شخص کے لئے یہ بہت مشکل ہوتا ہے جس نے کبھی سیٹ کے معاملے میں سوچا ہی نہیں ہے ، چھوڑ دینا ، ایک وقت میں ریکارڈنگ کرنا ہے اور سیٹوں کے ساتھ کام کرنا ہے۔

رابن بلور: ہاں ، میں اس پر آپ کے ساتھ ہوں۔ جس کا مطلب بولوں: میرا اب ، یہ تعلیم کا مسئلہ ہے۔ میں سمجھتا ہوں کہ یہ مکمل طور پر تعلیم کا مسئلہ ہے ، میرے خیال میں پروگرامروں کے لئے طریقہ کار کے ساتھ سوچنا فطری ہے۔ اور ایس کیو ایل طریقہ کار نہیں ہے ، یہ اعلامیہ ہے۔ آپ واقعتا just صرف یہ کہہ رہے ہیں کہ ، "میں یہی چاہتا ہوں اور مجھے اس کی پرواہ نہیں ہے کہ آپ یہ کیسے کرتے ہیں ،" آپ جانتے ہو؟ جبکہ پروگرامنگ کی زبان کے ساتھ آپ کو اکثر اپنی آستینیں لپیٹنا پڑتی ہیں اور آپ گنتی کے وقت بھی گنتی کا انتظام کرتے ہیں۔ میں ہاتھ دوں گا

برٹ اسکالزو: نہیں ، ٹھیک ہے ، جاری رکھیں۔

ہاں ، میں یہ کہنے جارہا تھا کہ آپ نے ایک اور مثال پیش کی ہے کہ ایک پروفائلر اس وقت کی ریکارڈنگ کے ساتھ ساتھ اس طرح کی کارروائیوں کو آگے بڑھائے گا۔ بعض اوقات ، ایک پروگرامر جو ریکارڈ پر وقتی منطق میں اچھا ہوتا ہے ، اس کا اندازہ نہیں کرسکتا ہے کہ ایس کیو ایل پروگرام کیسے کرنا ہے۔ ٹھیک ہے ، ہم یہ کہتے ہیں کہ وہ دو فارورڈ بناتا ہے اور بنیادی طور پر اس میں شامل ہوجاتا ہے ، لیکن وہ یہ مؤکل کی طرف کرتا ہے۔ لہذا ، وہ ایک جوائنٹ کے طور پر وہی اثر کر رہا ہے ، لیکن وہ خود کر رہا ہے ، اور ایک پروفائل اس کو پائے گا ، کیوں کہ آپ شاید ڈیٹا بیس سرور کو آپ کے لئے کرنے سے کہیں زیادہ دستی طور پر شامل ہونے میں صرف کریں گے۔

رابن بلور: ہاں ، یہ ایک تباہی ہوگی۔ جس کا مطلب بولوں: آپ بس گھوم رہے ہوں گے۔ مار ڈالنا ہمیشہ خراب رہتا ہے۔

بہرحال ، میں Dez پر جاؤں گا۔ مجھے یقین ہے کہ اس کے پاس کچھ دلچسپ سوالات ہوں گے۔

ڈیز بلین فیلڈ: آپ کا شکریہ ، ہاں ، میں کرتا ہوں۔ میں آپ کے ساتھ بس کے نیچے نہ پھینکنے والے پروگرامرز میں شامل ہونے جارہا ہوں۔ میرا مطلب ہے ، میں نے اپنی زندگی میں بہت سے سال خود کوڈر کی حیثیت سے گزارے ہیں ، ہر سطح پر ، آپ جانتے ہو ، چاہے آپ کے یونیکس مشین کی کمانڈ لائن پر بیٹھے ہوئے ، اور کچھ معاملات میں ، میں اس میں شامل تھا یونیکس کے مختلف بندرگاہوں کے ایک جوڑے میں ایک ہارڈ ویئر پلیٹ فارم سے دوسرے ہارڈ ویئر پلیٹ فارم میں۔ اور آپ ان چیلنجوں کا تصور کرسکتے ہیں جو ہمارے یہاں موجود تھے۔ لیکن حقیقت یہ ہے کہ دنیا کے ہر کوڈر اور اسکرپٹر کے لئے جیل سے باہر کارڈ حاصل کریں۔ یہ ایک راکٹ سائنس ہے ، بالکل لفظی طور پر ، ہر بار واقعی سخت لکھنا ، ہر وقت ، ایک راکٹ سائنس ہے۔ اور ڈینیس رچی اور برائن کیرنہین جیسے مشہور لوگوں کی کہانیاں جو کسی کوڈ کے آزادانہ طور پر کام کر رہی ہیں اور پھر کافی پر کسی کوڈ کے جائزے کی گفتگو کا رخ کرتی ہیں اور معلوم کرتی ہیں کہ بالکل اسی پروگرام میں کوڈ کے ایک ہی ٹکڑے پر لکھا ہوا تھا ، بالکل اسی طرح اور انہوں نے یہ سی میں کیا۔ لیکن پروگرامنگ کی اس سطح پرست کا وجود بہت کم ہی موجود ہے۔

حقیقت یہ ہے کہ روزانہ کی بنیاد پر ، دن میں صرف 24 گھنٹے ہوتے ہیں ، ہفتے میں سات دن ہوتے ہیں اور ہمیں بس کام کرنا ہوتا ہے۔ اور اس طرح ، جب بات آجکل نہ صرف روایتی پروگرامر ، ڈی بی اے ، اور کوڈرز ، اور اسکرپٹرز ، اور سیسڈمین ، اور نیٹ ورک ایڈمنس ، اور سیکیورٹی عملہ ، اور ہر طرح کے شہری اعداد و شمار تک پہنچتی ہے۔ ہم سنتے ہیں ، ہر ایک صرف اپنا کام کرنے کی کوشش کر رہا ہے۔ اور اس لئے میں سوچتا ہوں کہ اس ساری چیز سے بڑا فائدہ اٹھانا میں نے آپ کے ڈیمو سے پیار کیا تھا اور مجھے اس ٹیک آف وے سے بھی پیار تھا جو آپ نے ہمیں وہاں چھوڑ دیا تھا ، صرف ایک لمحے پہلے ، اس حقیقت کے بارے میں رابن سے گفتگو کی تھی - شاید اتنا زیادہ نہیں طاق - لیکن ایک وسیع جگہ جس پر اس کا اطلاق ہوتا ہے ، جہاں تک فکسنگ کوڈ اور ایس کیو ایل اور ڈیٹا بیس ہیں۔ لیکن میں آپ کو یہ کہتے ہوئے سن کر واقعی بہت پرجوش ہوگیا کہ آپ اسے شیل اسکرپٹ پر پھینک سکتے ہیں اور کچھ معاملات ڈھونڈ سکتے ہیں ، کیوں کہ آپ جانتے ہیں ، آج کے دور اور زمانے میں ہم ہر چیز پر سب سے کم قیمت پر کام کر رہے ہیں۔

آپ کہیں بھی $ 6 کی قمیض خرید سکتے ہیں ، اس کی وجہ یہ ہے کہ کسی نے واقعی تیار کرنے اور جہاز بھیجنے اور منطقی طور پر فراہمی اور فروخت اور خوردہ کے لئے ایک سسٹم بنایا تھا اور اس $ 6 شرٹ کو حاصل کرنے کے لئے آن لائن ادائیگی کی جائے گی۔ اور ایسا نہیں ہوتا ہے اگر آپ کو صحیح طریقے سے کوڈ لکھنے کے لئے لوگوں کو سالانہ ،000 400،000 کی ادائیگی کی جا؛۔ یہ صرف پوری ترقی ہے۔ تو ، اس نکتے پر ، میں ایک سوال کا اندازہ کرتا ہوں کہ میں واقعتا you آپ سے پیار کرتا ہوں کہ ہمیں ہمیں کچھ اور بصیرت فراہم کرے ، کیا یہ ہے کہ آپ جس قسم کے لوگوں کو دیکھ رہے ہیں وہ اس طرح کے ٹولز کو پروفائل کرنے کے لئے استعمال کر رہے ہیں۔ ایک کوڈ اور کارکردگی کے امور کی تلاش ہے؟ ابتدا میں ، تاریخی طور پر ، وہ کہاں سے آتے ہیں؟ کیا وہ بڑے انجینئرنگ ہاؤس رہے ہیں؟ اور پھر ، آگے بڑھنا ، کیا یہ معاملہ ہے ، کیا میں یہ سوچنے میں درست ہوں کہ زیادہ سے زیادہ کمپنیاں اس آلے کو ، یا ان ٹولز پر عمل درآمد کر رہی ہیں ، تاکہ کوڈرز کی مدد اور مدد کی جاسکے ، کون جانتا ہے کہ کام ختم کرنے کے لئے کون کام کر رہا ہے۔ اور اسے دروازے سے باہر نکالنا؟ اور کبھی کبھی ہمیں جیل سے باہر نکلنے والے کارڈ کی ضرورت ہوتی ہے؟ کیا میں یہ سوچنے میں حق بجانب ہوں کہ تاریخی طور پر ہمارے پاس انجینئرنگ کی زیادہ توجہ اور ترقی ہے؟ جیسا کہ رابن نے کہا ، اب ہم کچھ کم کر رہے ہیں ، تعلیمی نقطہ نظر ، اور اب یہ خود تعلیم ہے ، یا کٹ اور پیسٹ کوڈ ، یا صرف چیزیں تعمیر کروائیں گے؟ اور کیا اس طرح کے لوگوں سے میل کھاتا ہے جو اب پروڈکٹ لے رہے ہیں؟

برٹ اسکالزو: جی ہاں ، بالکل۔ اور میں آپ کو ایک بہت ہی خاص مثال پیش کروں گا ، ہم صرف کام کرنا چاہتے ہیں ، 'کیوں کہ کاروباری افراد کمال نہیں چاہتے ہیں۔ یہ کمپیوٹرائزڈ شطرنج کے کھیل کی طرح ہے: شطرنج کا کھیل کامل جواب کی تلاش نہیں کرتا ہے۔ یہ ایسے جواب کی تلاش کرتا ہے جو مناسب وقت میں کافی حد تک اچھا ہو ، لہذا ہم اسی طرح پروگرام کرتے ہیں۔ لیکن اب میں جو کچھ ڈھونڈ رہا ہوں وہ یہ ہے کہ بجائے ، وہ یہ کہنے کے بجائے کہ وہ اپنے یونٹ ٹیسٹنگ کے حصے کے طور پر ایک پروفائلر چاہتے ہیں۔ جس کی وجہ سے میں یہ کروں گا ، کیوں کہ میں اسے وقت کے ضیاع کے طور پر نہیں دیکھ رہا ہوں - کیا ہو رہا ہے۔ اگر ہم خوش قسمت ہیں تو ، بعد میں ، انضمام کی جانچ یا تناؤ کی جانچ کے دوران ، یہ کام بعد میں کیا جارہا ہے۔ لیکن زیادہ تر اوقات یہ بڑھتی ہوئی واردات کا حصہ ہوتا ہے ، جہاں کچھ پیدا ہوتا ہے ، وہ تھوڑی دیر کے لئے بھاگتا ، شاید یہاں تک کہ برسوں تک چلتا رہا ، اور اب یہ بہتر نہیں چلتا ہے ، اور اب ہم اس کا پروفائل بنائیں گے۔ اور لگتا ہے کہ یہ اب زیادہ عام منظر ہے۔

ڈیز بلین فیلڈ: ہاں ، اور میں سمجھتا ہوں کہ "ٹیکنیکل قرض" کی اصطلاح شاید آپ سے زیادہ واقف ہے۔ میں رابن کو جانتا ہوں اور میں یقینی طور پر ہوں۔ میرے خیال میں ، آج کل ، خاص طور پر ترقی پذیر اور نظام سازی کے لئے فرتیلی نقطہ نظروں میں ، میرے نزدیک ، اب تکنیکی قرضوں کا تصور ایک بہت ہی حقیقی چیز ہے ، اور ہم در حقیقت اس کا محاسبہ منصوبوں میں کرتے ہیں۔ مجھے معلوم ہے ، میرا مطلب ہے کہ ، ہمارے پاس اپنے اپنے پروجیکٹس جیسے میڈیا لینس اور دیگر موجود ہیں ، جہاں ہمیں روزانہ کی بنیاد پر کوڈنگ مل رہا ہے ، اور بلور گروپ میں مختلف چیزیں۔ اور جب بھی ہم کوئی چیز بنا رہے ہیں تو ، ہم طرح طرح کی طرف دیکھتے ہیں ، میں اسے دیکھتا ہوں ، اور ہمیشہ اس نقطہ نظر سے دیکھتا ہوں کہ ابھی اس چیز کو ٹھیک کرنے میں مجھے کیا خرچ اٹھانا پڑتا ہے ، بمقابلہ میں صرف اس میں حاصل کرسکتا ہوں کر سکتے ہیں اور اسے وہاں سے باہر نکال سکتے ہیں ، اور پھر دیکھیں اور دیکھیں کہ آیا اس چیز کے ٹوٹنے پڑے ہیں یا نہیں۔ اور اس تکنیکی قرض کے وارث ہوں جو مجھے معلوم ہے کہ مجھے بعد میں چکر لگانا پڑے گا اور ٹھیک کرنا پڑے گا۔

اور میرا مطلب ہے ، میں نے یہ کام گذشتہ سات دنوں میں کیا ہے: میں نے ایک دو ٹولز اور اسکرپٹس لکھے ہیں ، میں نے ازگر زبان کے ایک دو ٹکڑے لکھے ہیں ، اور میں نے اسے مونگو کے پچھلے حصے میں بھیج دیا ہے ، یقین ہے کہ یہ عمدہ اور صاف ستھرا اور محفوظ ہے ، لیکن اس سے یہ استفسار ہوتا ہے کہ مجھے کیا کرنا ہے ، یہ جان کر کہ مجھے کام کرنے کے لئے اس فنکشن کی ضرورت ہے۔ میرا اصل درد وہیں ہے۔ اور اس طرح آپ کو یہ تکنیکی قرض اٹھانا پڑتا ہے ، اور میرے خیال میں یہ اب صرف کبھی کبھار کی بات نہیں ہے ، میرے خیال میں یہ اب ترقی پذیر ہونے کے ڈی این اے کا حصہ ہے۔ لوگ صرف - ذل .ت سے نہیں - وہ صرف قبول کرتے ہیں کہ تکنیکی قرض ایک عام قسم کا مسئلہ ہے ، اور انہیں صرف اس کی قیمت ادا کرنا پڑے گی۔ یہ وہ جگہ ہے جہاں آپ پر تکنیکی قرض آتا ہے۔ اور میرے خیال میں آپ نے ڈیمو میں ہمیں جو دکھایا اس کے بارے میں عمدہ بات یہ تھی کہ آپ لفظی طور پر پروفائل کرسکتے ہیں اور دیکھ سکتے ہیں کہ کچھ چلنے میں کتنا وقت لگتا ہے۔ اور یہ شاید میری پسندیدہ چیزوں میں سے ایک ہے۔ میرا مطلب ہے کہ ، میں نے واقعی پروفائلنگ ٹولز بنائے ہیں - ہم اپنا کوڈ چلانے کے لئے سیڈ اور لیکس اور آرک میں ٹولز تیار کرتے تھے اور دیکھتے تھے کہ اس طرح کے ٹولس دستیاب ہونے سے پہلے اس کی لوپ کہاں ہیں - اور جب آپ جانے کے لئے کوڈ بناتے ہیں اور اپنے کوڈ کا جائزہ لیں ، آپ کو خود اپنے کوڈ کا جائزہ لینے کی ضرورت نہیں ہے۔ لیکن اب ایسا نہیں ہے۔ اس بات کو ذہن میں رکھتے ہوئے ، کیا مارکیٹ کا کوئی خاص طبقہ ہے جو اس کو کسی دوسرے سے زیادہ اٹھاتا ہے؟ بڑے پیمانے پر کی طرح دیکھنا

برٹ اسکالزو: اوہ ہاں ، مجھے مل گیا ہے - میں آپ کے لئے ایک مشابہت تیار کرنے جارہا ہوں ، اور آپ کو دکھاتا ہوں کہ نان پروگرامر ہر وقت ایسا کرتے رہتے ہیں۔ 'اس وجہ سے کہ اگر میں کبھی ڈیبگر اور پروفائلنگ کلاس یا سیشن پڑھا رہا ہوں تو ، میں لوگوں سے پوچھوں گا ، "ٹھیک ہے ، یہاں کے کتنے لوگ مائکروسافٹ ورڈ میں جاتے ہیں اور جان بوجھ کر کبھی بھی اسپیل چیکر استعمال نہیں کرتے ہیں؟" اور کوئی بھی ان کا ہاتھ نہیں اٹھاتا ہے ، کیونکہ دستاویزات لکھنے کے ل we ، ہم سب جانتے ہیں کہ ہم انگریزی سے غلطیاں کرسکتے ہیں ، اور اسی طرح ہر کوئی ہجے چیکر کا استعمال کرتا ہے۔ اور میں نے کہا ، "ٹھیک ہے ، جب آپ اپنے IDE میں بصری بیسک کی طرح تحریر لکھ رہے ہو تو ، آپ ڈیبگر استعمال نہیں کررہے ہیں؟ یہ ایک ہی چیز ہے ، یہ ایک اسپیل چیکر کی طرح ہے۔

ڈیز بلین فیلڈ: ہاں ، دراصل ، یہ ایک بہت بڑی مماثلت ہے۔ میں نے واقعتا about اس کے بارے میں سوچا ہی نہیں تھا ، مجھے یہ تسلیم کرنا پڑے گا کہ میں درحقیقت ایسے کچھ کام کرتا ہوں جو میں استعمال کرتا ہوں۔ دراصل ، ایک ، ODF ، ایکلیپس کے ساتھ میرا پسندیدہ صرف کٹ اور وہاں کوڈ پیسٹ کرتا ہے اور ایسی چیزوں کی تلاش میں جاتا ہے جو صرف فوری طور پر اجاگر ہوتی ہیں اور احساس ہوتا ہے کہ میں نے کچھ کلاس کال میں ٹائپو کیا۔ اور ، لیکن اب یہ دلچسپ ہے کہ اس طرح کے آلے کے ساتھ آپ اسے حقیقی وقت پر کرسکتے ہیں جیسا کہ واپس آنے اور اسے بعد میں دیکھنے کی مخالفت کرتے ہیں ، جو اس کے سامنے آنے میں خوش قسمتی ہے۔ لیکن ہاں ، یہ صرف ایک لفظ پروسیسر میں متن ڈالنے کی ایک بہت بڑی مماثلت ہے ، 'کیوں کہ یہ ایک دلچسپ ویک اپ کال ہے جس سے ، صرف یہ احساس ہوجائے کہ آپ نے کچھ ٹائپوز یا اس سے بھی گرائمر کی غلطی کی ہے ، ٹھیک ہے؟

برٹ اسکالزو: بالکل۔

ڈیز بلینچفیلڈ: تو ، کیا آپ میرے خیال سے اب آپ کو مزید کچھ اور دیکھ رہے ہیں ، میرا مطلب ہے ، مجھ سے حتمی سوال ، اس سے پہلے کہ میں اپنے شرکاء کو اپنے سوال و جواب پر ڈالوں۔ اگر آپ ایسا کرنے کے لئے نقطہ نظر کے ارد گرد کسی طرح کی سفارش دینے جارہے ہیں - میں فرض کر رہا ہوں کہ یہ بیان بازی ہے - کیا یہ معاملہ ہے کہ آپ ترقی کر رہے ہو اس سے پہلے کہ آپ ترقی کر رہے ہو اسی طرح عمل درآمد کروائیں۔ یا یہ معاملہ ہے کہ آپ بنیادی طور پر عمارت حاصل کرتے ہو ، چلتے ہو ، کچھ بناتے ہو پھر آتے ہو اور بعد میں اس کی پروفائلنگ کرتے ہو؟ مجھے شبہ ہے کہ یہ جلدی جلدی پہنچنے کی بات ہے اور یہ یقینی بنانا ہے کہ آپ کے کوڈ کا صاف ستھرا سامنے ہے۔ یا یہ ایسا معاملہ ہے کہ ان کو بعد میں تعیناتی کے اس حصے پر غور کرنا چاہئے؟

برٹ اسکالزو: مثالی طور پر ، وہ یہ کام سامنے رکھیں گے ، لیکن چونکہ ہر شخص ہلچل اور ہلچل مچانے والی دنیا میں ہے جہاں انہیں بس کام کرنا پڑتا ہے ، وہ اس وقت تک ایسا نہیں کرتے جب تک کہ وہ کسی پرفارمس پریشانی کا شکار نہ ہوجائیں جس کے ذریعہ وہ حل نہیں کرسکتے ہیں۔ ورچوئل مشین میں مزید سی پی یو اور میموری شامل کرنا۔

ڈیز بلینچفیلڈ: ہاں تو ، دراصل آپ نے کچھ دلچسپ بات کا ذکر کیا ، اگر میں جلدی سے کروں؟ آپ نے پہلے بتایا ہے کہ اسے کہیں سے بھی چلایا جاسکتا ہے ، اور پچھلے سرے پر ڈیٹا بیس سے بات کی جاسکتی ہے۔ لہذا یہ ہم اس طرح کے bimodal تصور کے ساتھ آرام دہ اور پرسکون ہیں جو ہم اب کے بارے میں بات کرتے ہیں ، آن پریمیم / آف پریمیم کلاؤڈ کی ، چیزوں کی شکل کے مطابق بھی ، دن کے آخر میں ، اگر یہ پچھلے سرے پر بات کرسکتا ہے اور دیکھ سکتا ہے کوڈ ، واقعی اس کی پرواہ نہیں کرتا ، کیا یہ کرتا ہے؟

برٹ اسکالزو: ٹھیک ہے ، ہاں ، آپ اسے بادل میں چلا سکتے ہیں۔

ڈیز بلین فیلڈ: عمدہ ، 'کیوں کہ مجھے لگتا ہے کہ اس قسم کی ہماری نئی بہادر دنیا کہاں جارہی ہے۔ تو ، ایرک میں اب آپ کے پاس واپس جاؤں گا اور دیکھیں گے کہ ہمیں یہاں کچھ سوالات ہوئے ہیں اور میں چاہتا ہوں کہ ہمارے شرکاء ابھی بھی ہمارے ساتھ رہیں ، حالانکہ ہم گھنٹہ گزر چکے ہیں۔

ایرک کااناگ: ہاں ، وہاں کچھ لوگ موجود ہیں ، میں صرف ایک مختصر تبصرہ کروں گا: برٹ ، مجھے لگتا ہے کہ آپ استعارہ ، جادو کی جانچ پڑتال کرنے کے لئے جو نظریہ دیتے ہیں وہ بالکل صاف ستھرا ہے۔ بالکل واضح طور پر ، یہ ایک یا دو بلاگ کے لائق ہے ، کیوں کہ یہ آپ کے کام کے تناظر کو مرتب کرنے کا ایک اچھا طریقہ ہے ، اور یہ کتنا قیمتی ہے ، اور ڈیبگر کو استعمال کرنے کے لئے یہ واقعتا بہترین طریقہ کیوں ہونا چاہئے۔ مستقل بنیاد پر ، ٹھیک ہے؟ میں شرط لگاتا ہوں کہ جب آپ اس کو باہر پھینک دیتے ہیں تو کچھ سر ہلا رہے ہو ، ٹھیک ہے؟

برٹ اسکالزو: بالکل ، اس وجہ سے کہ میں جو کچھ ان سے کہتا ہوں ، وہ ہے ، "میں اپنے دستاویزات پر ہجے کی جانچ کیوں کرتا ہوں؟ میں بیوقوف ہجے کی غلطیوں سے شرمندہ نہیں ہونا چاہتا۔ "ٹھیک ہے ، وہ کوڈ کوڈنگ غلطیوں کی وجہ سے شرمندہ ہونا نہیں چاہتے ہیں!

ایرک کااناگ: ٹھیک ہے۔ ہاں یقینا. ٹھیک ہے ، لوگ ، ہم یہاں ایک گھنٹہ اور پانچ منٹ میں جل چکے ہیں ، اس لئے آپ کا وقت اور توجہ کے لئے آپ سب کا بہت شکریہ۔ ہم ان تمام ویب چیٹس کو آرکائیو کرتے ہیں ، کسی بھی وقت واپس آ کر بلا جھجک محسوس کرتے ہیں۔ ان لنکس کو تلاش کرنے کے ل Best بہترین جگہ شاید ٹیکوپیڈیا ڈاٹ کام ہے ، لہذا ہم اسے ابھی اس فہرست میں اس فہرست میں شامل کریں گے۔

اور اس کے ساتھ ہی ، ہم آپ سے الوداع بولیں گے۔ ایک بار پھر ، عمدہ نوکری ، برٹ ، آئی ڈی ای آر اے کے اپنے دوستوں کا شکریہ۔ ہم اگلی بار آپ سے بات کریں گے ، حقیقت میں ، ہم اگلے ہفتے آپ سے بات کریں گے۔ خیال رکھنا! خدا حافظ.

تیز ردعمل: ڈیٹا بیس ڈیبگنگ اور ریسکیو کیلئے پروفائلنگ