استجابة سريعة: تصحيح قاعدة البيانات و Profiling إلى الإنقاذ

مؤلف: Roger Morrison
تاريخ الخلق: 22 شهر تسعة 2021
تاريخ التحديث: 1 تموز 2024
Anonim
Rapid Response: Database Debugging and Profiling to the Rescue
فيديو: Rapid Response: Database Debugging and Profiling to the Rescue

يبعد: ناقش المضيف إريك كافاناغ تصحيح أخطاء قواعد البيانات والتوصيف مع د. روبن بلور ، دز بلانشفيلد و IDERAs Bert Scalzo.



أنت لم تسجل الدخول حاليًا. يرجى تسجيل الدخول أو التسجيل لمشاهدة الفيديو.

إريك كافانا: حسنًا أيها السيدات والسادة ، الساعة 4:00 بالتوقيت الشرقي يوم الأربعاء ، وهذا يعني بالطبع.

روبن بلور: لا أستطيع أن أسمعك يا إريك.

إريك كافانا: كنت هناك قبل أيام ، لذلك لست وحدك. لكن الموضوع اليوم هو حقا أشياء مثيرة للاهتمام. إنه نوع الشيء الذي تريد التأكد من حدوثه في الخلفية في شركتك ، ما لم تكن أنت الشخص الذي يقوم بذلك ، وفي هذه الحالة تريد التأكد من أنك تفعل ذلك بشكل صحيح. لأنهم كانوا يتحدثون عن تصحيح الأخطاء. لا أحد يحب الأخطاء ، ولا يحب أي شخص عندما يتوقف البرنامج عن العمل - ينزعج الناس ، ويصبح المستخدمون غير ودودين. هذا ليس جيدا. لذا ، كانوا يتحدثون عن "الاستجابة السريعة: تصحيح أخطاء قاعدة البيانات والتوصيف إلى الإنقاذ."

ثيريس بقعة عنك حقا ، ضربني على ،eric_kavanagh بالطبع.


هذا العام حار. وتصحيح الأخطاء ستكون ساخنة ، بغض النظر عن ما. ستكون في الحقيقة إحدى هذه المشاكل التي لن تختفي أبدًا ، بصرف النظر عن مدى جودتنا في هذه الأمور ، ستكون هناك دائمًا مشكلات ، لذلك المفتاح هو كيف يمكنك الوصول إلى حيث يمكنك حل هذه المشكلات بسرعة؟ من الناحية المثالية ، لديك مبرمجون رائعون ، وبيئات رائعة ، حيث لا يخطئ الكثير ، ولكن كما يقول المثل القديم ، "تقع الحوادث في أفضل الأسر". وينطبق الشيء نفسه على المنظمات. إذاً ، هذه الأشياء تحدث ، ستحدث ، والسؤال هو ما سيكون حلك للتعامل معه وحل هذه المشاكل؟

نسمع جيدًا من الدكتور روبن بلور ، ثم لدينا ديز بلانشفيلد من أسفل ، وبالطبع صديقنا العزيز ، بيرت سكالزو ، من IDERA. وفي الحقيقة ، سأقوم بتسليم المفاتيح إلى روبن بلور ، وأخذها بعيدًا. الكلمة لك.

روبن بلور: حسنا. أنه موضوع شيق. اعتقدت لأن Dez ربما سيستمر في الاطلاع على التقنيات الفعلية وقصص الحرب حول تصحيح الأخطاء ، وأعتقد أن Id مجرد إجراء مناقشة خلفية حتى يتسنى لنا الحصول على صورة مستديرة تمامًا لما يحدث. لقد فعلت هذا منذ وقت طويل ، وكنت معتادًا أن أكون مبرمجًا ، وكان الأمر مشابهًا لذلك ، وكادت تغري في تقديم هذا العرض التقديمي لبدء الصبح الغنائي حول فكرة المصدر المفتوح ، لكنني اعتقدت أن Ill ترك الأمر لشخص آخر.


هيريس قائمة من الأخطاء الشهيرة ، ومعظمها يدخل في قائمة anybodys العليا ، في الأساس ، كل ما عدا الأخيرين بتكلفة 100 مليون دولار على الأقل. أولها كان كوكب المريخ المداري ، فقد تضيع في الفضاء وكان ذلك بسبب مشكلة الترميز ، حيث خلط الناس بين الوحدات المترية والقدمين (الضحك) والبوصات. كانت طائرة Ariane Five Flight 501 غير متطابقة بين محرك تم تشغيله وأجهزة الكمبيوتر التي كان من المفترض أن تشغل الصاروخ عندما تم إطلاقه. أعطال كمبيوتر متعددة ، انفجار صاروخ ، عناوين الأخبار. خط أنابيب الغاز السوفيتي في عام 1982 ، قيل إنه أكبر انفجار في تاريخ الكوكب ؛ لست متأكدا ما إذا كان هو. سرق الروس بعض برامج التحكم الآلي ، وأدركت وكالة المخابرات المركزية أنهم سيفعلون ذلك ويضعون الخلل فيه ، وقام السوفيت بتطبيقه دون اختبار. لذلك ، فجر خط أنابيب يصل ، ويعتقد أن كان مسليا.

كانت دودة موريس بمثابة تجربة تشفير ، والتي أصبحت فجأة دودة عنيفة تدور حول كل جسم - تسببت فيما يبدو في أضرار بقيمة 100 مليون دولار ؛ هذا تقدير بالطبع. لقد ارتكبت Intel خطأً مشهورًا في شريحة الرياضيات - تعليمة رياضية في رقاقة Pentium في عام 1993 - كان من المفترض أن تكلف أكثر من 100 مليون دولار. ربما يكون برنامج خرائط أبل هو الأسوأ والأكثر كارثة لإطلاق أي شيء قامت به شركة أبل على الإطلاق. الأشخاص الذين حاولوا استخدامه ، أقصد أن هناك شخصًا كان يقود سيارته على طول 101 ، واكتشفوا أن خريطة أبل قد ذكرت أنهم كانوا في منتصف خليج سان فرانسيسكو. لذلك ، بدأ الناس بالإشارة إلى تطبيق خرائط أبل باسم iLost. - أطول فترة انقطاع لدينا في عام 1990 - كانت مثيرة للاهتمام من وجهة نظر تكلفة شيء من هذا القبيل - AT&T كانت خارج لمدة تسع ساعات وتكلف حوالي 60 مليون دولار في المكالمات الهاتفية بعيدة المدى.

وكنت في شركة تأمين في المملكة المتحدة وقاعدة البيانات ، قاموا بتطبيق إصدار جديد من قاعدة البيانات وبدأوا في مسح البيانات. وأتذكر ذلك جيدًا للغاية ، لأنه تم استدعائي بعد ذلك للمشاركة في نوع من اختيار قاعدة البيانات بسبب ذلك. وكان من المثير للاهتمام للغاية أنهم أخذوا نسخة جديدة من قاعدة البيانات ، وكان لديهم مجموعة من الاختبارات التي قاموا بها لإصدارات جديدة من قاعدة البيانات التي اجتازت جميع الاختبارات. لقد وجدت طريقة غامضة حقًا لمسح البيانات.

لذلك ، على أي حال ، هذا هو. اعتقدت الحديث عن معرف عدم تطابق ومصدر أصدر. من المثير للاهتمام أن قواعد البيانات العلائقية تخزن البيانات في الجداول والمبرمجين تميل إلى التعامل مع البيانات في هياكل الكائنات التي لا تتناسب مع الجداول. ولهذا السبب ، تحصل على ما يسمى عدم تطابق المعاوقة ، ويتعين على شخص ما التعامل معه بطريقة أو بأخرى. ولكن ما يحدث بالفعل ، لأن نموذج واحد ، نموذج المبرمجين وقاعدة بيانات نموذج آخر ، ليست محاذاة بشكل خاص. ستحصل على أخطاء لم تحدث لو أن الصناعة بنت أشياء تعمل معًا ، والتي أعتقد أنها فرحان. لذلك ، في الأساس ، من جانب المبرمجين ، عندما تحصل على تسلسلات هرمية ، يمكن أن تكون أنواعًا ، ويمكن أن تؤدي إلى مجموعات ، ويمكن أن تكون ضعف قدرة واجهة برمجة التطبيقات ، ويمكن أن يكون هناك الكثير من الأشياء التي تطرد الأشياء من حيث التفاعل مع قاعدة البيانات. ولكن الشيء الأكثر أهمية بالنسبة لي ، حقا للاهتمام. أذهلني دائمًا أن لديك حاجز SQL هذا هو أيضًا نوع من المعاوقة بطريقة تعمل بها المبرمجون وقاعدة البيانات مع بعضهم البعض. لذلك ، لدى SQL التعرف على البيانات ، وهو أمر جيد ولديه DML من أجل التحديد والمشروع والانضمام ، وهو أمر جيد. يمكنك رمي الكثير من القدرات من حيث الحصول على البيانات من قاعدة البيانات باستخدام ذلك. ولكن لديها القليل جدا من اللغة الرياضية لفعل الأشياء. لديه القليل من هذا وذاك ، ولديه القليل جدا من الأشياء القائمة على الوقت. ولهذا السبب ، فإن SQL غير كاملة ، إن أردت ، وسيلة للحصول على البيانات. لذلك ، قام شباب قاعدة البيانات ببناء إجراءات مخزنة للعيش في قاعدة البيانات والسبب في الإجراءات المخزنة التي تعيش هناك هو أنك لا تريد حقًا أن تقوم بإلقاء البيانات ذهابًا وإيابًا إلى أحد البرامج.

بالنسبة لبعض الوظائف كانت بيانات محددة للغاية ، لذلك لم يكن مجرد التكامل المرجعي وحذف المتتالية وأشياء من هذا القبيل ، كانت قاعدة البيانات تعتني بكافة وظيفة وضع المفاجئة في قاعدة بيانات ، مما يعني بالطبع أن وظيفة ل يمكن تقسيم التطبيق بين المبرمج وقاعدة البيانات نفسها. وهذا جعل مهمة تنفيذ بعض أنواع الوظائف صعبة للغاية وبالتالي أكثر عرضة للخطأ. لذلك ، هذا جانب واحد من لعبة قاعدة البيانات ، لأنه يعني أنك حصلت على الكثير من التطبيقات على سبيل المثال ، أن Ive شاركت في قواعد البيانات العلائقية هناك الكثير من التعليمات البرمجية الموجودة في الإجراءات المخزنة التي يتم التعامل معها بشكل منفصل عن التعليمات البرمجية التي يجلس في التطبيقات. ويبدو أنه من الغريب أن يكون لدينا شيء ، فمن المفترض أن تكون ذكية إلى حد ما في القيام بأشياء مختلفة.

اعتقدت أن Id يتحدث أيضًا عن أداء قاعدة البيانات لأن أخطاء الأداء غالبًا ما تُعتبر أخطاء ، لكن في الأساس يمكن أن يكون لديك عنق الزجاجة في وحدة المعالجة المركزية والذاكرة والقرص والشبكة ويمكن أن تواجه مشكلات في الأداء بسبب قفلها. ستكون الفكرة أن المبرمج لم يكن بحاجة إلى القلق بشأن الأداء وأن قاعدة البيانات ستؤدي في الواقع بشكل جيد إلى حد معقول. من المفترض أن تكون مصممة بحيث لا يحتاج المبرمج إلى معرفته. ومع ذلك ، تحصل على تصميم قاعدة بيانات سيئة ، تحصل على تصميم برنامج سيئ ، تحصل على التزامن في خلط عبء العمل ، مما قد يؤدي أيضًا إلى مشاكل في الأداء. تحصل على موازنة التحميل ، وتحصل على تخطيط السعة ، ونمو البيانات - يمكن أن يتسبب في توقف قاعدة البيانات أو إبطائها. إنه أمر مثير للاهتمام ، عندما تصبح قواعد البيانات ممتلئة تقريبًا ، فإنها تبطئ. ويمكنك الحصول على مشكلة في طبقات البيانات من حيث النسخ المتماثل والحاجة إلى النسخ المتماثل والحاجة إلى إجراء النسخ الاحتياطي والاسترداد. على أي حال ، هذا نظرة عامة.

الشيء الوحيد الذي أود أن أقوله هو أن تصحيح أخطاء قاعدة البيانات يمكن أن يكون مرهقًا وغير تافه - وأقول ذلك لأنني فعلت الكثير منه - وستكتشف غالبًا أنه مثل كل المواقف في تصحيح الأخطاء التي واجهتها هو ، هو أول شيء تراه على الإطلاق هو فوضى. وعليك أن تحاول الانتقال من الفوضى إلى معرفة كيفية حدوث الفوضى. وغالبًا عندما تنظر إلى قضية قاعدة بيانات ، كل ما تبحث عنه هو بيانات تالفة وتفكر في الأمر ، "كيف حدث هذا بحق الجحيم؟"

على أي حال ، سأنتقل إلى Dez ، ربما سأقول كلمات حكمة أكثر مما خرجت به. أنا لا أعرف كيف أمسك الكرة ، Dez.

إريك كافانا: سوء تمريرها ، والوقوف ، والتمسك.

الصوت الآلي: خطوط المشاركة صامتة.

إريك كافانا: حسنًا ، تشبث ثانية واحدة ، واسمحوا لي أن أعطي الكرة لـ Dez.

ديز بلانشفيلد: شكرا يا اريك نعم ، دكتور روبن بلور ، أنت في الحقيقة أكثر صوابًا: هذا موضوع ، عبة مستطيلة مدى الحياة إذا كنت ستعفو عن التورية ، آسف لم أستطع أن أساعد نفسي في ذلك. نأمل أن تتمكن من رؤية شاشتي الأولى هناك ، اعتذاري عن مشكلة حجم الخط في الأعلى. موضوع الأخطاء هو محاضرة طوال اليوم ، في كثير من الحالات في تجربتي. إنه موضوع واسع وواسع النطاق ، لذا سأركز على التركيز على مجالين رئيسيين ، وتحديداً مفهوم ما نعتبره خطأ ، ولكن مشكلة برمجة. أعتقد في هذه الأيام أن إدخال خطأ في حد ذاته عادة ما يتم التقاطه بواسطة بيئات التطوير المتكاملة ، على الرغم من أنها قد تكون أخطاء طويلة الأمد. لكن غالبًا ما تكون حالة رمز التنميط وإمكانية كتابة التعليمات البرمجية التي تعمل ، يجب أن يكون هذا خطأ. لذا ، شريحة العنوان الخاصة بي هنا ، لقد حصلت على نسخة من هذا بدقة A3 عالية الدقة ، لكن لسوء الحظ تم تدميرها في منزل. ولكن هذه ملاحظة مكتوبة بخط اليد على ورقة برمجة من حوالي عام 1945 ، حيث من المفترض أن بعض القوميات في جامعة هارفارد في الولايات المتحدة الأمريكية ، والبناء الثاني من آلة تسمى مارك الثاني. لقد كانوا يقومون بتصحيح بعض المشكلات ، بلغة مشتركة ، لكنهم كانوا يحاولون العثور على خطأ ، واتضح أن هناك شيئًا مختلفًا قليلاً عما كان عليه أحد الأجهزة ، ومن المفترض أن هناك مشكلة تتعلق بالبرامج.

إذاً ، الأسطورة الحضرية هي تلك الجولة في حوالي 9 سبتمبرالعاشرفي عام 1945 ، قام فريق من جامعة هارفارد بتفكيك آلة ، وصادفوا شيئًا أطلقوا عليه "ترحيل السبعين" - في تلك الأيام ، تمت البرمجة بمعنى مادي ، وقمت بإلصاق رمز حول لوحة ، وبهذه الطريقة قمت ببرمجة آلة - ووجدوا أن هذا التتابع رقم سبعين كان هناك خطأ في ذلك ، واتضح أن مصطلح "علة" الفعلي جاء لأنه حرفيا تماما كان فراشة - من المفترض أن هناك فراشة مثبتة بين بعض قطعة من الأسلاك النحاسية الذهاب كيف تجد تبدأ المغامرة في كوم تحريك. وتروي القصة أن الأسطورة غريس هوبر بصفتها هذه التسمية التوضيحية ، بالنسبة لشريحة العنوان ، "الحالة الفعلية الأولى لوجود خطأ" يتم اقتباسها باقتبس.

ولكن كما أوضح روبن سابقًا في أول شريحة له ، فإن مفهوم الأخطاء يعود إلى أبعد الحدود حيث يمكننا أن نتخيل أن البشر يقومون بالحوسبة ، مثل المفاهيم. جاء المصطلح "patch" من قطعة من الشريط الفعلي يتم تسجيلها فوق فتحة على بطاقة مثقوبة. لكن الهدف من ذلك كله هو أن مصطلح "تصحيح الأخطاء" جاء من هذا المفهوم الخاص بإيجاد خلل في جهاز مادي.ومنذ ذلك الحين ، استخدمنا هذا المصطلح حول محاولة التعامل مع المشكلات ، إما ليس بقدر مشكلات الترميز في برنامج لا يتم تجميعه ، ولكن كبرنامج لا يعمل بشكل جيد. وبالتحديد لم يتم العثور على ملفات تعريف مثل العثور على أشياء مثل حلقات لا تنتهي أبدًا لا تذهب إلى أي مكان.

لكن لدينا أيضًا سيناريو ، واعتقدت أن Id وضعت بضع شرائح مضحكة قبل الدخول في تفاصيل أكثر قليلاً. هيريس الرسوم المتحركة الكلاسيكية ، ودعا XKCD على شبكة الإنترنت ، ورسام الكاريكاتير لديه بعض وجهات النظر مضحك جدا على العالم. وهذه عن طفل يدعى "طاولات بوبي الصغيرة" ويفترض أن والديه أطلقا عليه اسم هذا الصبي الصغير روبرت) ؛ إسقاط طلاب الجدول ؛ - وما يطلق عليه ، ونوع من "مرحبًا ، هذه مدرسة أبنائك تعاني من بعض مشكلات الكمبيوتر" ، ورد الوالد ، "يا عزيزي ، هل كسر شيئًا؟" ويقول المعلم ، "حسنًا ، يسأل المعلم بطريقة ما ، هل سمّيت ابنك روبرت حقًا ؛ إسقاط طلاب الجدول ؛ -؟ "ويقول الوالد ،" نعم ، جداول بوبي الصغيرة التي نسميها له. "على أي حال ، يذهبون إلى القول إنهم فقدوا الآن سجلات الطلاب في السنوات ، وآمل أن تكونوا سعداء. والإجابة هي ، "حسنًا ، يجب عليك تنظيف وتعقيم مدخلات قاعدة البيانات الخاصة بك". وأنا أستخدمها عدة مرات للحديث عن بعض المشكلات التي نواجهها في العثور على أشياء في التعليمات البرمجية ، والتي غالباً ما لا ينظر الكود إلى البيانات أيضًا .

شيء مضحك آخر ، لا أعرف ما إذا كان هذا حقيقيًا أم لا - أشك في أنه محاكاة ساخرة - لكن مرة أخرى ، يمس أيضًا عظمي المضحك. يقوم شخص ما بتغيير لوحة الترخيص في مقدمة سيارته ، إلى عبارة مماثلة تتسبب في انخفاض قواعد البيانات في كاميرات السرعة وما إلى ذلك ، والتي تلتقط لوحات ترخيص السيارات. وأشير دائمًا إلى ذلك على أنني أشك في أن أي مبرمج قد توقع نجاحًا في تشغيل الكود الخاص بهم وتشغيله بواسطة سيارة حقيقية ، لكن لم أقلل من ذلك - قوة المهوس الغاضب.

(ضحك)

ولكن هذا يقودني إلى نقطتي الرئيسية ، كما أعتقد ، وهذا هو أنه ذات مرة ، يمكننا تصحيح الأخطاء ورمز الملف الشخصي على أنها مجرد بشر. لكنني أراها كثيرًا من وجهة النظر القائلة بأن ذلك الوقت قد مر ، وأول ما حدث في تجربتي ، الأول - وهذا هو عمري بشكل رهيب ، أنا متأكد ؛ Robin youre مرحب بك للتسلية من أجل هذا - ولكن تاريخياً ، أتى من خلفية تبلغ من العمر 14 عامًا متجولًا في نهاية المدينة ، وطرق باب مركز بيانات يسمى "Data Com" في نيوزيلندا وسأل عما إذا كان يمكنني كسب أموال الجيب في المدرسة من خلال إعادة حافلة النقل المتأخرة إلى المنزل ، على بعد حوالي 25 كم من التنقل يوميًا ، عن طريق وضع الورق في صناديق ، والأشرطة في محركات الأشرطة ، وكوني مجرد مشرف عام. ومن الغريب أنهم قدموا لي وظيفة. لكن بمرور الوقت ، تمكنت من إقحام فريق العمل والعثور على المبرمجين وأدركت أنني أحب الترميز وتمر بعملية تشغيل البرامج النصية والوظائف التجميعية ، والتي ما زالت في نهاية اليوم رمزًا. يجب عليك كتابة البرامج النصية والوظائف التجميعية التي تشبه البرامج المصغرة ثم الانتقال خلال العملية الكاملة للجلوس على رمز الكتابة الطرفية 3270 يدويًا.

في الواقع ، كانت تجربتي الأولى في محطة طرفية ، والتي كانت بالفعل عبارة عن 132 عمودًا فعليًا. في الأساس ، فكر في مثل الآلة الكاتبة القديمة للغاية مع الورق الذي تم تمريرها من خلالها ، لأنهم لم يكن لديهم أنبوب CRT. وكان تصحيح أخطاء التعليمات البرمجية في ذلك مشكلة غير تافهة للغاية ، لذلك كنت تميل إلى كتابة جميع التعليمات البرمجية الخاصة بك باليد ، ثم تتصرف كطابعة ، تبذل قصارى جهدك لعدم الحصول على أخطاء للتسلل ، لأنه محبط للغاية أن تضطر إلى معرفة يقوم محرر سطر واحد بالانتقال إلى سطر معين ثم السطر ثم كتابته مرة أخرى. ولكن ذات مرة ، كان هذا هو كيف كتبنا الكود وهذا ما قمنا بتصحيحه ، وحصلنا عليه جيدًا جدًا. وفي الواقع ، لقد أجبرنا على أن يكون لدينا تقنيات برمجة جيدة للغاية ، لأنها كانت مشكلة حقيقية لإصلاحها. لكن الرحلة مرت بعد ذلك - وكانت على دراية بكل ذلك - انتقلت من التجربة الطرفية 3270 في عالمي ، إلى Digital Equipment VT220 حيث يمكنك رؤية الأشياء على الشاشة ، لكن مرة أخرى ، كنت تفعل الشيء نفسه الذي فعلته على الشريط الورقي نوع من تنسيق ed فقط على CRT ، لكنك تمكنت من الحذف بسهولة أكبر ولم يكن لديك صوت "dit dit dit dit".

ومن ثم ، فإن محطات Wyse - مثل Wyse 150 ، ربما تكون الواجهة المفضلة لجهاز الكمبيوتر الخاص بي على الإطلاق - ثم الكمبيوتر الشخصي ثم Mac ، ثم في هذه الأيام معرفات واجهة المستخدم الرسومية الحديثة والمعرفات القائمة على الويب. ومجموعة من البرامج من خلال ذلك ، البرمجة في واحد وتجميع و PILOT والشعار و Lisp و Fortran و Pascal واللغات التي قد تجعل الناس تذلل. ولكن هذه هي اللغات التي أجبرتك على كتابة رمز جيد ؛ لم يسمحوا لك بالابتعاد عن الممارسات السيئة. C و C ++ و Java و Ruby و Python - ونستكمل مرحلة البرمجة هذه ونصبح أكثر شبهاً بالبرنامج النصي ونقترب أكثر فأكثر من لغة الاستعلام الهيكلية ولغات مثل PHP التي تستخدم بالفعل لاستدعاء SQL. الهدف من إخبارك أنه ، من خلفيتي ، تعلمت نفسي بطرق عديدة وتلك التي ساعدتني في التعلم ، وعلمتني ممارسات برمجة جيدة جدًا وممارسات جيدة جدًا حول التصميم والعمليات للتأكد من أنني لم أعرض عربات التي تجرها الدواب. الشفرة.

طرق البرمجة هذه الأيام ، على سبيل المثال ، لغة الاستعلام الهيكلية ، SQL ، وهي لغة استعلام قوية للغاية وبسيطة. لكننا حولناها إلى لغة برمجة وأنا لا أعتقد حقًا أن SQL تم تصميمها لتكون لغة برمجة حديثة ، لكننا قمنا بتحريفها لتصبح ذلك. وهذا يقدم مجموعة كاملة من القضايا ، والسبب عندما نفكر في من وجهة نظر اثنين: من وجهة نظر الترميز ومن وجهة نظر ديسيبل. من السهل جدًا تقديم الأخطاء وإدخالها على أشياء مثل تقنيات البرمجة السيئة ، والجهود البطيئة في كتابة التعليمات البرمجية ، ونقص الخبرة ، ونغمة الحيوانات الأليفة الكلاسيكية التي لدي ، على سبيل المثال ، مع SQL SQL يقفزون على Google ويبحثون عن شيء ويبحثون عن موقع ويب thats حصلت على مثال والقيام بنسخ ولصق التعليمات البرمجية الموجودة. ثم تكرار تشفير غير صحيح ، وسوء التصرف ووضعه قيد الإنتاج ، لأنه يحدث فقط لمنحهم النتائج التي يريدونها. لقد واجهت تحديات أخرى ، على سبيل المثال ، في هذه الأيام كانت جميعها تسارع نحو هذا ، ما نسميه السباق إلى الصفر: محاولة القيام بكل شيء رخيص جدًا وبسرعة ، بحيث لدينا سيناريو حيث لا نوظف فيه موظفين بأجور منخفضة. وأنا لا أقصد ذلك بطريقة مخادعة ، لكن لم يتم تعيين خبراء في كل وظيفة ممكنة. ذات مرة كان أي شيء له علاقة بأجهزة الكمبيوتر هو علم الصواريخ. كانت متورطة في أشياء انفجرت وكانت مرتفعة للغاية ، أو ذهبت إلى الفضاء أو المهندسين كانوا رجالا ونساء مؤهلين تأهيلا عاليا الذين حصلوا على درجات وتعليمات صارمة تمنعهم من القيام بأشياء مجنونة.

في هذه الأيام ، هناك الكثير من الناس يدخلون في التطوير والتصميم وقاعدة البيانات الذين لديهم خبرة سنوات ، ولم يكن لديهم بالضرورة نفس التدريب أو الدعم. وبذلك تنتهي سيناريو مجرد هواة مقابل خبراء. وهناك خط مشهور ، لا أستطيع أن أتذكر بالفعل من الذي أنشأ هذا الاقتباس ، يقول الخط ، "إذا كنت تعتقد أن تعيين خبير مكلف للقيام بمهمة باهظ الثمن ، فانتظر حتى تقوم بتوظيف زوجين من الهواة الذين يخلقون مشكلة ويجب عليك قم بتنظيفه. "وهكذا فإن SQL لديها هذه المشكلة ، ومن السهل جدًا تعلمها ، وهي سهلة الاستخدام للغاية. لكنها ليست ، في رأيي ، لغة برمجة مثالية. من السهل جدًا القيام بأشياء مثل القيام بنجمة محددة من أي مكان وسحب كل ذلك إلى لغة برمجة أكثر راحة لك مثل PHP و Ruby أو Python ، واستخدام لغة البرمجة التي تعرفها أصلاً ، للقيام بمعالجة البيانات ، بدلا من القيام استعلام أكثر تعقيدا في SQL. ونحن نرى هذا كثيرًا ، ثم يتساءل الناس لماذا تعمل قاعدة البيانات ببطء ؛ ذلك لأن مليون شخص يحاولون شراء تذكرة من نظام التذاكر عبر الإنترنت ، حيث يقوم بنجم معين من أي مكان.

الآن ، هذا مثال متطرف حقًا ، لكنك تحصل على نقطة من كل ذلك. لذا ، ولكي أضرب تلك النقطة في المنزل ، هي مثال على أنني أحمله كثيرًا. أنا معجب كبير من الرياضيات ، وأنا أحب نظرية الفوضى ، وأنا أحب مجموعات ماندلبروت. على الجانب الأيمن هناك مجموعة من مجموعة ماندلبروت ، والتي من المؤكد أن إيم كانت على دراية بها. وعلى الجانب الأيسر هناك قطعة من SQL تقدم ذلك بالفعل. الآن ، في كل مرة أضع هذا على الشاشة في مكان ما ، أسمع هذا "يا إلهي ، شخص ما قدم سلسلة Mandelbrot مع SQL ، هل أنت جاد؟ حسناً ، الهدف من ذلك كله هو توضيح ما كنت أوجزه للتو ، وهذا هو نعم ، في الواقع يمكنك الآن برمجة أي شيء تقريبًا في SQL ؛ إنها لغة برمجة حديثة قوية التطوير. عندما كانت في الأصل لغة استعلام ، فقد تم تصميمها للحصول على البيانات. لذلك ، لدينا الآن تصميمات معقدة للغاية ولدينا إجراءات مخزنة ، ولدينا منهجية برمجة يتم تطبيقها على لغة ، ولذا فمن السهل جدًا على ممارسة البرمجة السيئة ، ونقص الخبرة ، ورمز القطع واللصق ، والموظفين ذوي الأجور المنخفضة الذين يحاولون كن موظفين ذوي رواتب عالية ، أشخاص يتظاهرون أنهم يعرفون ، لكن عليهم أن يتعلموا في الوظيفة.

مجموعة كاملة من الأشياء التي يتم فيها تصنيف ملفات التعليمات البرمجية وما نشير إليه على أنه تصحيح الأخطاء ، وهو لا يعثر على الأخطاء التي تمنع البرامج من العمل ، ولكنها الأخطاء التي تؤدي فقط إلى إلحاق الضرر بالنظام والتعليمات البرمجية غير المنظمة. عندما تنظر إلى هذه الشاشة الآن ، وتعتقد ، هذا مجرد نوع من اللطيف الذي تفكر فيه ، "واو ، يا له من رسم رائع ، أحب Id تشغيله." لكن تخيل أن ذلك يعمل على جزء من منطق العمل. يبدو أنيقًا ، لكنه يتحدث عن نظرية فوضى رياضية مصورة بطريقة رسومية ، لكن عندما تفكر في ما يمكن استخدامه في بعض منطق الأعمال ، ستحصل على الصورة بسرعة كبيرة. ولتوضيح ذلك حقًا - وإني آسف على عكس الألوان ، من المفترض أن تكون خلفية سوداء وخضراء لتكون شاشة خضراء ، ولكن لا يزال بإمكانك قراءة ذلك.

ذهبت وألقيت نظرة سريعة على مثال لما يمكن أن تفعله إذا كنت مجنونًا حقًا ولم تكن لديك أي تجربة على الإطلاق ، وقد أتيت من خلفية مختلفة من البرمجة وطبقت أمثال C ++ على SQL ، لتوضيح وجهة نظري حقًا ، قبل أسلم إلى ضيفنا المستفاد من IDERA. هذا استعلام منظم تم كتابته مثل C ++ ، ولكن تم ترميزه في SQL. وينفذ بالفعل ، لكنه ينفذ على مدى فترة ثلاث إلى خمس دقائق. وهو يسحب ظاهريا سطر واحد من البيانات من قواعد بيانات متعددة ، وصلات متعددة.

مرة أخرى ، الهدف من ذلك كله هو أنه إذا لم يكن لديك الأدوات الصحيحة ، وإذا لم يكن لديك المنصات والبيئات الصحيحة لتتمكن من التقاط هذه الأشياء ، فإنها تدخل في الإنتاج ، وبعد ذلك يكون لديك 100،000 شخص يصلون إلى نظام كل بعد يوم أو ساعة أو دقيقة ، ستنتهي قريبًا بتجربة تشيرنوبيل حيث يبدأ الحديد الكبير في الذوبان ودفن نفسه في قلب الكوكب ، لأن هذه الشفرة يجب ألا تدخل أبدًا في الإنتاج. عذرًا ، يجب أن تلتقط أنظمتك وأدواتك ذلك قبل أن تذهب إلى أي مكان بالقرب من - حتى من خلال عملية الاختبار ، حتى من خلال UAT وتكامل الأنظمة ، يجب التقاط تلك الشفرة وتسليط الضوء عليها ويجب وضع شخص ما جانباً و قائلًا ، "انظر ، هذا رمز جميل حقًا ، لكن يتيح الحصول على قاعدة بيانات (DBA) لمساعدتك في بناء هذا الاستعلام المنظم بشكل صحيح ، لأنه بصراحة ، هذا أمر سيئ للغاية." وعناوين URL هناك ، يمكنك الذهاب وإلقاء نظرة - يشار إليها باسم استعلام SQL الأكثر تعقيدا كتبته من أي وقت مضى. السبب صدقوني ، وهذا في الواقع لا ترجمة ، فإنه يعمل. وإذا قمت بقصها ولصقها وسخرت من قاعدة البيانات ، فهذا شيء يجب مشاهدته ؛ إذا كنت قد حصلت على الأدوات اللازمة لمشاهدة قاعدة البيانات ، فحاول فقط الإذابة على مدى فترة تتراوح بين ثلاث وخمس دقائق ، للاتصال مرة أخرى بسطر واحد.

لذلك ، لتلخيص ، مع أخذ ذلك في الاعتبار ، علمتني خلفيتي الكاملة في الترميز أنه يمكنك إعطاء الناس سلاحًا وإذا لم يكونوا حذرين ، فسوف يطلقون النار على أنفسهم ؛ الحيلة هي أن نظهر لهم أين هي آلية السلامة. من خلال الأدوات الصحيحة والبرنامج المناسب في متناول يدك ، وبعد الانتهاء من عملية الترميز ، يمكنك مراجعة التعليمات البرمجية الخاصة بك ، ويمكنك العثور على مشكلات عن طريق تحديد التعليمات البرمجية ، ويمكنك العثور على أخطاء غير مقصودة بشكل فعال تمثل مشكلات في الأداء ، وكما قلت سابقًا في ذات مرة ، يمكنك أن تفعل ذلك بالنظر إلى شاشة خضراء. لا يمكنك بعد الآن ؛ هناك مئات الآلاف من أسطر التعليمات البرمجية ، وهناك عشرات الآلاف من التطبيقات المنشورة ، وهناك الملايين من قواعد البيانات في بعض الحالات ، وحتى البشر الفائقة لا يمكنهم فعل ذلك يدويًا بعد الآن. تحتاج حرفيًا إلى البرامج المناسبة والأدوات المناسبة في متناول يدك وتحتاج إلى أن يستخدم الفريق هذه الأدوات ، حتى تتمكن من العثور على هذه المشكلات ومعالجتها بسرعة كبيرة جدًا ، قبل أن تصل إلى هذه النقطة ، بينما الدكتور. أبرز Robin Bloor ، الأمور تصبح كارثية ، والأشياء التي تفجر ، أو الأكثر شيوعًا ، تبدأ فقط في تكلفك الكثير من الدولارات والكثير من الوقت والجهد وتدمير الروح المعنوية والأشياء ، عندما لا يستطيعون معرفة سبب حدوث الأشياء وقت طويل لتشغيل.

ومع أخذ ذلك في الاعتبار ، سأقوم بتسليم رسالة إلى ضيفنا وأتطلع إلى سماع كيفية حل هذه المشكلة. وخاصة العرض التوضيحي الذي أعتقد أنه كان على وشك الاستلام. اريك ، سوء تمرير مرة أخرى.

إريك كافانا: حسنا ، بيرت ، خذها بعيدا.

بيرت سكالزو: حسنا شكرا لك. بيرت سكالزو هنا من IDERA ، أنا مدير المنتج لأدوات قاعدة البيانات الخاصة بنا. وانا ذاهب للحديث عن تصحيح الأخطاء. أعتقد أن أحد أهم الأشياء التي ذكرها روبن في وقت سابق - وصحيحها هو أن تصحيح الأخطاء هو أمر شاق وغير تافه ، وعندما تذهب إلى قاعدة بيانات تصحيح الأخطاء ، يكون ترتيبها مرهقًا بدرجة أكبر وغير تافهة - لذلك ، كان اقتباس مهم.

حسنا. أردت أن أبدأ بتاريخ البرمجة ، لأنه في كثير من الأحيان أرى أشخاصًا لا يقومون بتصحيح الأخطاء ، ولا يستخدمون مصحح أخطاء ، فهم فقط يبرمجون بأي لغة يستخدمونها ، وفي كثير من الأحيان يقولون لي ، "حسنًا ، هذه الأشياء مصححة الأخطاء جديدة ، ولقد بدأنا في استخدام تلك بعد. "وهكذا فإن ما أقوم به هو أن أريهم جدول المخطط الزمني هذا ، نوع من ما قبل التاريخ ، والشيخوخة ، والعصور الوسطى ، ونوع من القول أين كنا حيث لغات البرمجة. وكان لدينا لغات قديمة للغاية بدأت في عام 1951 مع رمز التجميع ، و Lisp و FACT و COBOL. ثم ندخل في المجموعة التالية ، Pascals و Cs ثم المجموعة التالية ، C ++ s ، وننظر إلى أين توجد علامة الاستفهام هذه - علامة الاستفهام هذه موجودة تقريباً في الفترة من 1978 إلى 1980 تقريبًا. في مكان ما ضمن هذا النطاق كان لدينا مصححات الأخطاء المتاحة لنا ، وحتى نقول ، "مهلا ، أنا لا أستخدم مصحح أخطاء ، لأن هذا أحد هذه الأشياء الجديدة" ، ثم يجب أن تبدأ البرمجة ، كما تعلمون ، في الخمسينيات من القرن الماضي ، لأن هذا هو الطريقة الوحيدة التي ستحصل عليها بعيدا مع هذا الادعاء.

الآن الشيء الآخر المضحك في هذا المخطط هو Dez الذي أدلى للتو بتعليق حول Grace Hopper ، لقد عرفت بالفعل Grace ، لذلك نوعه مضحك. ثم الشيء الآخر الذي ضحكت به هو أنه تحدث عن الأنماط التليفزيونية وكان يجلس هناك ، "الرجل ، كان ذلك أكبر قفزة شهدناها في الإنتاجية ، عندما انتقلنا من البطاقات إلى الأنماط التليفزيونية ، كانت تلك أكبر قفزة على الإطلاق." ، و Ive مبرمجة بجميع اللغات هنا ، بما في ذلك SNOBOL ، والتي لم يسمع بها أحد من قبل ، فقد كانت CDC ، Control Data Corporation ، لذلك أعتقد أن Im أصبح قديمًا جدًا على هذه الصناعة.

ديز بلانشفيلد: كنت سأقول ، لقد كبرنا سن الرعب هناك.

بيرت سكالزو: نعم ، أنا أقول لك ، أشعر بأن الجد سيمبسون. لذلك أنا أنظر إلى تصحيح الأخطاء وهناك طرق مختلفة للقيام بتصحيح الأخطاء. يمكن أن تتحدث عن ما نفكر فيه جميعًا من خلال الدخول في مصحح أخطاء والتنقل عبر التعليمات البرمجية. ولكن أيضا ، الناس سوف صك رمز بهم. هذا هو المكان الذي يتم فيه لصق البيانات في التعليمات البرمجية الخاصة بك وربما تقوم بإنتاج ملف إخراج أو ملف تتبع أو شيء ما ، وبالتالي يمكنك كتابة التعليمات البرمجية الخاصة بك. أود أن أعتبر أن تصحيح الأخطاء ، أصعب قليلاً ، طريقة للقيام بذلك ، لكنه مهم. ولكن أيضًا ، حصلنا على البيان الشهير: يمكنك المشاهدة والناس يضعون البيانات فعليًا ورأيت بالفعل أداة حيث - وأداة قاعدة البيانات الخاصة به - حيث إذا كنت لا تعرف كيفية استخدام مصحح الأخطاء ، فستضغط على زر وستلتزم عبارات خلال التعليمات البرمجية الخاصة بك نيابة عنك ومن ثم عند قيامك بالضغط على زر آخر ويقوم بتجريدهم. لأن هذا هو كيف الكثير من الناس تصحيح الأخطاء.

والسبب في أننا نتحدث عن تصحيح مزدوج: أولاً وقبل كل شيء ، وجدنا أشياء تجعل كودنا غير فعال. بمعنى آخر ، هذا يعني عادةً وجود خطأ منطقي أو فقدنا أحد متطلبات العمل ، ولكن ما هو عليه ، هو أن الرمز غير فعال ؛ أنها لا تفعل ما توقعنا أن تفعله. في المرة الأخرى التي نذهب فيها ونقوم بتصحيح الأخطاء ، من أجل الكفاءة ويمكن أن يكون ذلك خطأً منطقيًا ، لكن ما هو عليه الآن ، هو أنني قمت بالشيء الصحيح ، إنه لا يعود بسرعة كافية. الآن ، أوضح هذه النقطة لأن من المحتمل أن يكون المحللون أفضل لهذا السيناريو الثاني وكانوا يتحدثون عن كل من مصحح الأخطاء والمقاطعين. بالإضافة إلى ذلك ، هناك مفهوم تصحيح الأخطاء عن بُعد ؛ هذا أمر مهم لأنه في كثير من الأحيان إذا كنت تجلس على جهاز الكمبيوتر الشخصي الخاص بك ، وكنت تستخدم مصحح أخطاء ، تصل إلى قاعدة بيانات حيث يتم تنفيذ التعليمات البرمجية فعليًا على قاعدة البيانات ، فأنت تقوم فعليًا بما يسمى تصحيح الأخطاء عن بُعد. قد لا تدرك ذلك ، ولكن هذا ما يحدث. وبعد ذلك ، من الشائع جدًا أن يكون لدى نقاط تصحيح الأخطاء هذه نقاط مراقبة ونقاط مراقبة وتخطي بعض الأشياء الأخرى الشائعة ، والتي ستقوم Im بعرضها على لقطة شاشة في لحظة.

الآن ، التوصيف: يمكنك القيام بالتوصيف بطريقتين مختلفتين. سيقول بعض الأشخاص أن عبء العمل يلتقط ويعيد تشغيله حيث يلتقط كل شيء ، وهذا يعتبر مهمًا. لقد كانت تجربتي أكثر من الأفضل إذا تم أخذ عينات منها. لا يوجد سبب للقبض على كل عبارة واحدة ، لأن بعض العبارات قد تعمل بسرعة كبيرة بحيث لا تهتم ، ما تحاول رؤيته حقًا ، حسناً ، ما هي العبارات التي تستمر في الظهور مرارًا وتكرارًا ، لأنها تعمل لفترة طويلة جدًا . لذلك ، قد يعني التوصيف في بعض الأحيان أخذ العينات بدلاً من تشغيل الأمر برمته. عادةً ، ستحصل على نوع من المخرجات التي يمكنك استخدامها ، وقد يكون ذلك مرئيًا داخل بيئة تطوير IDE ، حيث قد يمنحك هذا رسمًا بيانيًا لأداء أسطر التعليمات البرمجية المختلفة ، ولكن لا يزال من الممكن أيضًا يكون ذلك أنه ينتج ملف التتبع.

ظهرت Profilers لأول مرة في عام 1979. لذلك ، كانت هذه موجودة منذ فترة طويلة ، أيضا. كبيرة للعثور على استهلاك الموارد ، أو مشاكل الأداء ، وبعبارة أخرى أن الشيء كفاءة. وبصفة عامة ، منفصلة ومميزة عن المصحح ، على الرغم من أنني عملت مع مصحح الأخطاء التي تفعل كليهما في نفس الوقت. وبينما أعتقد أن المحللون هم الأكثر إثارة للاهتمام من الأدوات ، فإذا شعرت أنه لا يوجد عدد كاف من الأشخاص لتصحيح الأخطاء ، فمن المؤكد أنه ليس هناك ما يكفي من الملفات الشخصية للأشخاص ، لأن واحدًا من أصل عشرة مصحح أخطاء سيقوم بالتشكيل الجانبي ، على ما يبدو. وهذا عار ، لأن التنميط يمكن أن يحدث فرقًا كبيرًا حقًا. الآن ، بلغات قواعد البيانات ، كما تحدثنا عنها سابقًا ، لقد حصلت على SQL - ولقد أجبرنا نوعًا من ربط الوتد المستدير على الفتحة المربعة هنا وأجبرناها على أن تصبح لغة برمجة - و Oracle.Thats PL / SQL - تلك هي اللغة الإجرائية SQL - و SQL Server ، و Transact-SQL ، و SQL-99 ، و SQL / PSM - من أجل ، على ما أعتقد ، الوحدة النمطية للإجراءات المخزنة الخاصة بها. Postgres يعطيها اسمًا آخر ، DB2 ، اسمًا آخر ، Informix ، ولكن النقطة المهمة هي أن الجميع فرضوا تصميمات من نوع 3GL ؛ بمعنى آخر ، بالنسبة إلى الحلقات ، وفي التعريفات المتغيرة وجميع الأشياء الأخرى التي تكون غريبة على SQL ، أصبحت الآن جزءًا من SQL في تلك اللغات. وهكذا ، يجب أن تكون قادرًا على تصحيح PL / SQL أو Transact-SQL تمامًا مثلما تفعل في برنامج Visual Basic.

الآن ، كائنات قاعدة البيانات ، هذا أمر مهم لأن الناس سيقولون ، "حسنًا ، ما الأشياء التي يجب علي تصحيحها في قاعدة بيانات؟" والإجابة هي ، جيدًا ، ما يمكنك تخزينه في قاعدة البيانات كرمز - إذا كنت تقوم بعمل SQL ، أو PL / SQL - و Im تخزين الكائنات في قاعدة البيانات ، من المحتمل أن يكون الإجراء المخزن أو وظيفة المخزنة. ولكن هناك أيضًا مشغلات: المشغل يشبه الإجراء المخزن ، ولكنه يطلق بعض الأحداث. الآن ، سيضع بعض الأشخاص في مشغلاتهم سطرًا واحدًا من التعليمات البرمجية ويدعوون إلى إجراء مخزن حتى يحتفظوا بكافة التعليمات البرمجية والإجراءات المخزنة الخاصة بهم ، ولكن نفس المفهوم: لا يزال المشغل هو ما يبدأ الشيء كله. وبعد ذلك ، مثل Oracle ، لديهم شيء يسمى الحزمة ، وهو يشبه إلى حد ما مكتبة إذا صح التعبير. يمكنك وضع 50 أو 100 عملية مخزنة في مجموعة واحدة ، تسمى الحزمة ، لذلك نوعه مثل المكتبة. هكذا ، هيريس المصحح بالطريقة القديمة ؛ هذه في الواقع أداة ستدخل في الواقع وتلتزم بكل عبارات التصحيح هذه في الكود لك. لذلك ، في كل مكان تشاهده كتلة التصحيح ، لا تقم بإزالة ، بدء تشغيل مصحح الأخطاء التلقائي والتتبع ، كانت جميعها عالقة في بعض الأدوات. والخطوط الموجودة خارج ذلك ، وهي أقلية الكود ، هي طريقة تصحيح الأخطاء غير اليدوية.

وسبب إحضار هذا الأمر هو ، إذا كنت تحاول القيام بذلك يدويًا ، فأنت في الواقع ستكتب رمز تصحيح أكثر لتضعه في كل هذه العبارات أكثر مما تستخدمه في الشفرة. لذا ، على الرغم من أن هذا قد يكون ناجحًا ، وعلى الرغم من أنه أفضل من لا شيء ، فهذه طريقة صعبة للغاية لتصحيح الأخطاء ، خاصةً ، ما إذا استغرق الأمر 10 ساعات لتشغيل هذا الشيء ، وحيث توجد مشكلة في السطر الثالث؟ إذا كنت أقوم بجلسة تصحيح أخطاء تفاعلية ، لكنت أعرف في السطر الثالث - خمس دقائق في ذلك - مهلاً ، هناك مشكلة هنا ، يمكنني إنهاء. ولكن مع هذا ، يجب أن أنتظر حتى يتم تشغيله ، حتى النهاية ، ثم أنظر إلى بعض ملفات التتبع التي ربما تحتوي على كل هذه العبارات ، وحاول العثور على الإبرة في كومة قش. مرة أخرى ، هذا أفضل من لا شيء ، لكنه لن يكون أفضل طريقة للعمل. الآن ، هذا ما سيبدو عليه الملف من الشريحة السابقة ؛ بمعنى آخر ، قمت بتشغيل البرنامج ، وحصلت للتو على مجموعة من العبارات في ملف التتبع هذا وقد أكون أو لا أتمكن من اجتياز هذا البحث والعثور على ما أحتاج إلى العثور عليه. لذا ، مرة أخرى ، لست متأكدًا من أن هذه هي الطريقة التي ترغب في العمل بها.

الآن ، إذا قمت باستخدام شيء مثل Visual Studio لكتابة البرامج أو Eclipse ، فإن لديك مصحح أخطاء تفاعلية - وإذا كنت قد استخدمت مصحح أخطاء وقمت باستخدامها مع لغاتك الأخرى - لم تفكر في استخدامها هنا مع قاعدة البيانات الخاصة بك. وهناك أدوات هناك ، مثل DB Artisan و Rapid SQL لدينا ، وهذه هي Rapid SQL هنا ، والتي لديها مصحح أخطاء ، ويمكنك أن ترى على الجانب الأيسر ، لدي إجراء مخزن يسمى "التحقق من التكرارات". في الأساس ، سيكون الأمر مجرد الذهاب لرؤية ونرى ما إذا كان لدي صفوف متعددة في الجدول تحمل نفس عنوان الفيلم. لذلك ، قاعدة البيانات للأفلام. ويمكنك أن ترى على الجانب الأيمن ، في الثلث العلوي ، حصلت على شفرة المصدر الخاصة بي في الوسط ، وحصلت على ما يسمى متغيرات ساعتي وأواني مكدس الاتصال ، ثم في الجزء السفلي ، حصلت على بعض المخرجات. والأمر المهم هنا هو ، إذا نظرت إلى السهم الأحمر الأول ، وإذا قمت بالماوس فوق أحد المتغيرات ، فيمكنني في الواقع معرفة القيمة الموجودة في هذا المتغير في تلك اللحظة من الزمن ، حيث يتخطى Im الرمز. وهذا مفيد حقًا ، وبعد ذلك يمكنني التنقل في سطر واحد في كل مرة من خلال التعليمات البرمجية ، لا يجب أن أقول تنفيذ ، يمكنني أن أقول خطوة بخطوة ، واسمحوا لي أن أنظر إلى ما حدث ، وخط خطوة أخرى ، ودعني أرى ما حدث ، و ايم القيام بذلك في قاعدة البيانات. وعلى الرغم من أنني جالس على Rapid SQL على جهاز الكمبيوتر الخاص بي وقاعدة البيانات الخاصة بي موجودة في السحابة ، إلا أنه لا يزال بإمكاني القيام بذلك عن بُعد لتصحيح الأخطاء ورؤيته والتحكم فيه من هنا ، وأقوم بتصحيح الأخطاء تمامًا مثل أي لغة أخرى.

الآن ، السهم التالي هناك - يمكنك رؤية السهم الذي يشبه قليلاً وهو يشير إلى اليمين ، نحو ذلك الإخراج من قواعد بيانات إدارة قواعد البيانات (DBMS) ، حيث يكون المؤشر الخاص بي في الوقت الحالي - وبعبارة أخرى ، صعدت Ive ، وهذا هو المكان الفوري في الوقت الحالي. لذلك ، إذا قلت ، "الخطوة مرة أخرى" ، سأذهب إلى السطر التالي. الآن فقط أدناه سترى النقطة الحمراء. حسنًا ، هذه نقطة توقف ، تقول "مرحبًا ، لا أريد التخطي على هذه الخطوط". إذا كنت أرغب فقط في القفز فوق كل شيء والوصول إلى النقطة الحمراء ، فيمكنني الضغط على زر التشغيل وسيتم تشغيل الأمر من هنا إما إلى النهاية ، أو إلى نقطة توقف ، إذا كان هناك أي نقاط توقف ، وبعد ذلك سوف تتوقف واسمحوا لي أن أقوم بالخطوة مرة أخرى. والسبب وراء كل هذا أهمية وقوة هو ، لأنه عندما أفعل كل ذلك ، يحدث ما يحدث في الوسط وحتى القاع - ولكن الأهم من ذلك الوسط - سيتغير ويمكنني رؤية القيم من متغيراتي ، انظر تتبع مكدس مكالماتي ، كما تعلمون ، وهكذا يتم عرض كل هذه المعلومات هناك أثناء التنقل عبر الرمز ، لذلك يمكنني في الواقع أن أرى وأشعر وأحصل على تفهم لما يحدث وكيف يعمل الرمز فعليًا في وقت التنفيذ . وعادةً ما أجد مشكلة ، إذا كانت هناك مشكلة ، أو إذا كنت في حالة جيدة بما يكفي للوقوف عليها.

حسناً ، الآن سوف أتحدث عن أحد الملفات التعريفية ، وفي هذه الحالة ، هذا ملف تعريف يمكنني رؤيته من خلال مصحح أخطاء. تذكر قلت في بعض الأحيان انهم منفصلون وأحيانا يمكن أن يكونوا معا؟ في هذه الحالة ، ومرة ​​أخرى ، يمكنني استخدام Im in Rapid SQL ، وأرى هامشًا ، على الجانب الأيسر ، بجانب أرقام الأسطر. وهذا هو ، هو عدد الثواني أو الدقيقة التي استغرقتها لتنفيذ كل سطر من التعليمات البرمجية ، وأستطيع أن أرى ذلك بوضوح ، كل وقتي يقضي في هذه الحلقة FOR حيث يتم تحديد كل شيء من جدول. وهكذا ، فإن ما يحدث داخل الحلقة FOR أمر ربما أحتاج إلى النظر إليه ، وإذا كان بإمكاني تحسينه ، فسوف يؤدي ذلك إلى تحقيق أرباح. لن أحصل على أي تحسينات من خلال العمل على تلك الخطوط التي لديها 0.90 أو 0.86 ؛ ليس هناك الكثير من الوقت الذي تقضيه هناك. الآن ، في هذه الحالة ، ومرة ​​أخرى ، أنا في Rapid SQL ، ترى كيف يمكنني القيام بالتشكيل الجانبي المختلط مع تصحيح الأخطاء الخاص بي. الآن ، ما اللطيف هو أن Rapid SQL يتيح لك القيام بذلك بالطريقة الأخرى. يسمح لك SQL السريع بقول ، "هل تعرف ماذا؟ لا أريد أن أكون في مصحح الأخطاء ، أريد فقط تشغيل هذا ومن ثم أريد أن أنظر في نفس النوع من المعلومات بيانياً أو بصريًا. "

ويمكنك أن ترى أنه لم يعد في المصحح وأنه يعمل على البرنامج وبعد الانتهاء من التنفيذ ، فإنه يعطيني المخططات لأخبرني بالأشياء حتى أستطيع أن أرى أن Ive حصلت على عبارة واحدة تبدو وكأنها تأخذ معظم الفطيرة إذا نظرت ، فإنني أراها على تلك الشبكة في اتجاه القاع ، السطر 23 ، هناك حلقة FOR مرة أخرى: لا تتردد في تناول معظم الوقت ، فهو في الحقيقة أن أحمر غامق يمضغ كل الرسم البياني الدائري. وهكذا ، هذه طريقة أخرى للقيام بالتوصيف. لقد صادفنا تسمية "محلل الكود" في أداتنا. ولكن في الأساس مجرد ملف تعريف فصلها عن مصحح أخطاء. بعض الناس يحبون أن يفعلوا ذلك بالطريقة الأولى ، بينما يحب البعض القيام بذلك بالطريقة الثانية.

لماذا نفعل التصحيح و التنميط؟ ليس لأننا نرغب في كتابة أكبر رمز في العالم والحصول على زيادة في الأجور - وهذا قد يكون سببنا ، لكن هذا ليس السبب في قيامك بذلك فعلاً - لقد وعدت بأن تقوم بعمل ما بشكل صحيح ، وأن برنامجك سيكون فعالاً. هذا ما سوف تستخدم مصحح الأخطاء ل. بالإضافة إلى ذلك ، المستخدمين النهائيين للأعمال ؛ انهم ليسوا صبورين للغاية: إنهم يريدون النتائج حتى قبل الضغط على المفتاح. كان من المفترض أن تقرأ رأيهم وتفعل كل شيء على الفور. بمعنى آخر ، يجب أن تكون فعالة. وهكذا ، هذا ما سوف نستخدمه منشئ ملفات التعريف. الآن ، بدون هذه الأدوات ، أعتقد حقًا أنك هذا الرجل في بدلة العمل مع القوس والسهم وأنت تطلق النار على الهدف وأنت معصوب العينين. لأنك ستكتشف كيف ينفذ البرنامج من خلال النظر فقط إلى الكود الثابت وكيف ستكتشف الخط الذي هو حيث سيقضي معظم الوقت في التنفيذ ، مرة أخرى ، فقط من خلال النظر في الكود الثابت؟ قد تؤدي مراجعة الشفرة إلى بعض هذه الأشياء أو لا تؤدي إليها ، ولكن لا يوجد ما يضمن أن مراجعة الكود ستجدها كلها. باستخدام مصحح أخطاء ومنشئ ملفات التعريف ، يجب أن تكون قادرًا على العثور على كل هذه الأخطاء.

حسنًا ، سأفعل عرضًا حقيقيًا سريعًا هنا. ليس في نيتي دفع المنتج ، أريد فقط أن أوضح لك كيف يبدو مصحح الأخطاء في كثير من الأحيان سيقول الناس ، "لم أر أحدًا من قبل من قبل". ويبدو جميلًا في الشرائح المفاجئة للشاشة ، ولكن هل يبدو وكأنه في الحركة؟ لذلك ، هنا على شاشتي ، أشغل منتج DB Artisan الخاص بنا ؛ لدينا مصحح أخطاء في هناك كذلك. تم تصميم DB Artisan بشكل أكبر بالنسبة لـ DBAs ، و Rapid SQL هي أكثر للمطورين ، لكنني رأيت مطورين يستخدمون DB Artisan ، و Ive رأيت DBAs يستخدمون Rapid. لذلك ، لا ننشغل المنتج. وهنا ، لدي خيار إجراء تصحيح ، لكن قبل تشغيل التصحيح ، سأقوم بإخراج هذا الرمز لتتمكن من رؤية شكل التعليمات البرمجية قبل أن أبدأ تشغيلها. لذلك ، إليك الرمز نفسه الذي كان موجودًا في لقطة الشاشة ، وهذا هو الاختيار الذي قمت به للتحقق من التكرارات. وأريد تصحيح هذا ، لذلك أنا اضغط التصحيح. والآن ، يستغرق الأمر وقتًا وأنت تقول ، "حسنًا ، لماذا يستغرق الأمر بعض الوقت؟" تذكر تصحيح الأخطاء عن بُعد: لقد حدث التصحيح بالفعل على خادم قاعدة البيانات الخاص بي ، وليس على الكمبيوتر الشخصي. لذلك ، كان عليها الانتقال وإنشاء جلسة هناك ، وإنشاء شيء لتصحيح الأخطاء عن بُعد ، وربط الجلسة بجلسة تصحيح الأخطاء عن بُعد ، وإعداد قناة اتصال.

الآن ، هيريس السهم الخاص بي ، هناك في الأعلى ، في السطر الأول ، وهذا حيث أنا في الرمز. وإذا ضغطت على الرمز الثالث هناك ، والذي يعد خطوة إلى الأمام ، فسترى هذا السهم قد تحرك للتو ، وإذا واصلت الضغط عليه ، فسترى الأمر مستمرًا. الآن ، إذا أردت الانتقال إلى حلقة FOR هذه ، لأني أعلم أن أين تكمن المشكلة ، يمكنني تعيين نقطة توقف. اعتقدت أنني وضعت ذلك. أوه ، أطلقوا النار على أحد مفاتيح التقاط الشاشة الخاصة بي التي تم تعيينها إلى نفس مفتاح مصحح الأخطاء ، وهذا ما تسبب في حدوث الارتباك. حسنًا ، لذلك قمت يدويًا بتعيين نقطة توقف هناك ، لذا بدلاً من القيام بخطوة أو خطوة أو خطوة أو خطوة حتى أصل إلى هناك ، في الواقع يمكنني فقط أن أقول ، "المضي قدمًا وتشغيل هذا الشيء" ، وسوف يتوقف. لاحظ أنه قد نقلني طوال الطريق إلى مكان نقطة الانهيار ، لذلك أنا الآن في حالة خوض إدارة هذه الحلقة ، أستطيع أن أرى ما تم تعيينه على جميع المتغيرات الخاصة بي ، وهي ليست مفاجأة ، لأنني قمت بتهيئة كل منهم ل صفر. والآن ، يمكنني أن أخطو إلى هذه الحلقة وأبدأ في النظر إلى ما يجري داخل هذه الحلقة.

لذلك ، الآن سوف تقوم بعدد محدد من الإيجارات الخاصة بي ، ويمكنني تحريك الماوس فوق هذا الرجل والبحث ، hes two ، اثنان أكبر من واحد ، لذلك من المحتمل أن تقوم بالجزء التالي من هذا الرمز. وبعبارة أخرى ، وجدت شيئا. انا ذاهب للمضي قدما والسماح لهذا المدى. أنا لا أريد أن أذهب إلى كل شيء هنا ؛ ما أريد أن أريكه هو أنه عندما يتم إجراء مصحح الأخطاء ، ينتهي الأمر تمامًا مثل البرنامج العادي. لقد حصلت على نقطة توقف ، لذلك عندما قلت تشغيل ، عاد لتوه إلى نقطة التوقف التالية. إن ترك الأمر يعمل حتى النهاية ، والسبب الذي أريدك أن تراه هو أن مصحح الأخطاء لا يغير سلوك البرنامج: عند تشغيله ، يجب أن أحصل على نفس النتائج بالضبط إذا كنت قد قمت بتشغيله وليس داخل مصحح أخطاء.

ومع ذلك ، سأقوم بتعليق العرض التوضيحي والعودة لأننا نريد التأكد من توفر وقت للأسئلة والأجوبة. وهكذا ، سأفتحها للأسئلة والأجوبة.

إريك كافانا: حسنًا ، روبن ، ربما سؤال منك ثم زوجين من ديز؟

روبن بلور: نعم ، بالتأكيد ، أجد هذا رائعًا ، بالطبع. لقد عملت مع أشياء مثل هذه ، لكنني لم أعمل مع أي شيء مثل هذا في قاعدة البيانات. هل يمكن أن تعطيني فكرة عن ما يستخدمه الناس للملف؟ نظرًا لما إذا كان الأمر كذلك ، فهل يبحثون - لأنني أفترض أنهم - يبحثون في مشكلات الأداء ، فهل سيساعدك ذلك على التمييز بين عندما تستغرق قاعدة البيانات الوقت ومتى يستغرق الرمز وقتًا؟

بيرت سكالزو: أنت تعرف ، هذا سؤال رائع. دعنا نقول أنا أعمل في Visual Basic ، وأنا داخل بلدي Visual Basic Im سوف ندعو Transact-SQL أو PL / SQL. اسمحوا لي أن أفعل PL / SQL ، لأن أوراكل لا يلعب دائما بشكل جيد مع أدوات مايكروسوفت. قد أقوم بتوصيف رمز Visual Basic الخاص بي ، وقد يقول ملف التعريف هناك ، "مهلا ، لقد اتصلت بهذا الإجراء المخزن واستغرق الأمر وقتًا طويلاً." ولكن بعد ذلك يمكنني أن أذهب إلى الإجراء المخزن وأستطيع عمل ملف تعريف قاعدة بيانات على المخزن الإجراء وقل ، "حسنًا ، من بين 100 عبارة موجودة هنا ، هي البيانات الخمسة التي تسببت في المشكلة". وهكذا ، قد تضطر إلى القيام بفريق علامات ، حيث يتعين عليك استخدام ملفات تعريف متعددة.

الفكرة هي أنه إذا تم إخبارك أن مشكلة الأداء موجودة في قاعدة البيانات الخاصة بك ، فقد يساعدك ملف تعريف قاعدة البيانات في العثور على الإبرة الموجودة في كومة قش والتي تكون العبارات الموجودة فيها مشكلة بالفعل. أقول لك شيئًا آخر ظهر بالتوصيف: إذا كان لديك رمزًا يُطلق عليه مليون مرة ، ولكنه لا يستغرق سوى جزءًا صغيرًا من كل مليون مرة ، لكنه يطلق عليه مليون مرة ، ما سيظهره المُنشئ ، ركض هذا الشيء لهذا الكثير من وحدات الوقت. وهكذا في حين أن الكود قد يكون عالي الكفاءة ، يمكنك أن تقول وتقول: "أوه ، كانت تجري هذه الدعوة إلى هذه الشفرة بطريقة متكررة. ربما يجب علينا أن نسميها فقط في كثير من الأحيان ، بدلا من كل مرة نقوم بمعالجة سجل ، "أو شيء من هذا. وهكذا يمكنك في الواقع العثور على أماكن وجود رمز فعال يتم تسميته في كثير من الأحيان ، وهذا يمثل مشكلة في الأداء بالفعل.

روبن بلور: نعم هذا رائع. لقد فعلت هذا أبدا. كما ترى ، بالطبع ، عندما واجهت مشكلات في قاعدة البيانات ، كان الأمر كما لو كنت أتعامل بطريقة أو بأخرى مع قاعدة البيانات أو التعامل مع الكود ؛ لم أتمكن من التعامل مع الاثنين في نفس الوقت. لكن ، مرة أخرى ، لم أفعل - Ive لم يشارك فعليًا في إنشاء التطبيقات التي خزننا فيها الإجراءات ، لذلك أعتقد أن Ive لم يسبق لي أن واجهت في الواقع المشاكل التي كانت تدفعني إلى الوراء ، فكرة أن تقوم بتقسيم الشفرة بين قاعدة البيانات والبرنامج. لكن مع ذلك ، افعل كل شيء - أفترض أن الإجابات ستكون نعم ، لكن هذا جزء من نشاط فريق التطوير ، عندما تحاول بطريقة أو بأخرى إصلاح شيء ما قد تم كسره ، أو ربما تحاول جمع تطبيق جديد معًا. ولكن هل كل هذا يتناسب مع جميع المكونات الأخرى التي أتوقعها في البيئة؟ هل يمكن أن أتوقع أن أتمكن من تجميع هذا مع جميع حزم الاختبار الخاصة بي وجميع تلك الأشياء الأخرى التي كنت سأقوم بها ومع أشياء إدارة المشروع الخاصة بي ، هل هذا هو كل هذا القصاصات معًا؟

بيرت سكالزو: نعم ، يمكن أن تصبح جزءًا من أي عملية منظمة للقيام بجهود البرمجة أو التطوير. والمضحك أنه في الأسبوع الماضي كان لدي عميل كان يبني تطبيق ويب ، وقاعدة بياناته كانت صغيرة وتاريخية ، وبالتالي فإن حقيقة أنهم لم يبرمجوا مبرمجين جيدين أبدًا. حسنًا ، لقد نمت قاعدة البيانات الخاصة بهم على مر السنين ، والآن تستغرق 20 ثانية في صفحة ويب ، بين الوقت الذي تقول فيه "قم بتسجيل الدخول واعطائي بعض البيانات لرؤيتها" وعندما تظهر الشاشة بالفعل ، والآن أصبحت مشكلة في الأداء. وكانوا يعرفون أن المشكلة لم تكن في أي من جافا أو أي من تلك الأماكن الأخرى. لكن لديهم الآلاف من الإجراءات المخزنة ، وعليهم أن يبدأوا في تحديد ملامح الإجراءات المخزنة لمعرفة لماذا تستغرق هذه الصفحة 20 ثانية؟ ووجدنا بالفعل أن لديهم صلة الديكارتية في أحد عباراتهم المختارة ولم يعرفوها.

روبن بلور: نجاح باهر.

بيرت سكالزو: لكن قال لي أحدهم ذات مرة ، "حسنًا ، كيف يمكن أن ينضموا إلى الديكارتي ولا يعرفون ذلك؟" في بعض الأحيان ، يقوم أحد المبرمجين الذين لا يشعرون بالرضا تجاه SQL بعمل شيء مثل إعطائي رابط الديكارتي ، لكن بعد ذلك أعيد إلي السجل الأول فقط ، لذلك أعرف أنني حصلت على شيء ، وأحتاج فقط إلى الأول. وهكذا ، فهم لا يدركون أنهم أعادوا فقط مليار سجل أو أنهم يبحثون عن مليار سجل ، لأنهم حصلوا على السجل الذي كانوا مهتمين به.

روبن بلور: واو ، وأنا أعلم ، أن هذا ما يسمى - حسنًا ، هذا ما كان يدور حوله Dez ، من حيث أشخاص ليسوا ماهرين تمامًا كما ينبغي أن يكونوا ، كما تعلمون. إذا كنت مبرمجًا ، فيجب أن تعرف الآثار المترتبة على إصدار أي أمر. أقصد ، حقًا ، لا يوجد عذر لهذا المستوى من الغباء. أفترض أيضًا أنك ، بطريقة أو بأخرى ، مجرد لغة غير مناسبة فيما يتعلق بهذا ، لأن هذا كله يركز على جانب قاعدة البيانات. هل أنا على صواب في ذلك؟ هل هو نفسه ، أيًا كان ما تستخدمه على جانب الترميز؟

بيرت سكالزو: بالتأكيد ، يمكنك القيام بذلك في فورتران أو سي أو سي + +. في الواقع ، في بعض يونيكس يمكنك حتى القيام بذلك للغات البرمجة النصية الخاصة بهم. أنها توفر فعلا نفس الأدوات. ثم أريد العودة ثانية لما قلته دون عذر. سأمنح المبرمجين استراحة واحدة ، لأنني لا أحب إلقاء المبرمجين تحت الحافلة. ولكن المشكلة هي في الحقيقة البيئة الأكاديمية لأنه عندما تتعلم كيف تكون مبرمجًا ، فإنك تدرس التفكير في كل مرة. لم يتم تعليمك مجموعة التفكير ، وهذا هو ما تعمل لغة الاستعلام الهيكلية ، أو SQL مع المجموعات ؛ لهذا السبب لدينا الاتحاد ، والتقاط المشغل ناقص. وفي بعض الأحيان يكون من الصعب للغاية بالنسبة للشخص الذي لم يفكر أبدًا فيما يتعلق بالمجموعات ، الإقلاع عن التدخين ، والتخلص من المعالجة في وقت واحد والعمل مع مجموعات.

روبن بلور: نعم ، أنا معك في ذلك. أقصد ، الآن ، هذه قضية تعليمية ؛ أعتقد أن هذا يمثل مشكلة تعليمية تمامًا ، وأعتقد أنه من الطبيعي أن يفكر المبرمجون من الناحية الإجرائية. و SQL ليست إجرائية ، لها التصريح. أنت في الواقع تقول فقط ، "هذا ما أريده ولا يهمني كيف تفعل ذلك" ، كما تعلمون؟ في حين أن لغات البرمجة لديك غالبًا ما تدحرجت عن سواعدك وتنتقل إلى التفاصيل حتى إدارة التهم ، بينما تقوم بحلقة. سوء يدا ل-

بيرت سكالزو: لا ، تابع.

نعم ، كنت أود أن أقول إنك طرحت مثالًا آخر على أن أحد المحللين سيكون من الجيد التقاط هذا النوع من المتابعة في معالجة التسجيلات في كل مرة. في بعض الأحيان ، لا يستطيع المبرمج الجيد في منطق السجل في كل مرة معرفة كيفية القيام ببرنامج SQL. حسنًا ، دعنا نقول أنه يصنع حلقتين FOR ويقوم بشكل أساسي بربط ، لكنه يفعل ذلك من جانب العميل. لذا ، فليس له نفس تأثير الصلة ، لكن في القيام بذلك بنفسه ، ومن شأن ملف التعريف أن يكتشف ذلك ، لأنك قد تنفق وقتًا أطول في القيام بالانضمام يدويًا بدلاً من ترك خادم قاعدة البيانات يقوم بذلك نيابة عنك.

روبن بلور: نعم ، سيكون ذلك كارثة. أعني ، كنت فقط سوف تسكع. التهيج دائما سيئة.

على أي حال ، سوء نقل إلى Dez. أنا متأكد من الحصول على بعض الأسئلة المثيرة للاهتمام.

ديز بلانشفيلد: شكرا لك ، نعم ، أنا أفعل. أنا ذاهب للانضمام إليك في عدم رمي المبرمجين تحت الحافلة. أعني ، لقد أمضيت سنوات عديدة في حياتي كوني مشفرًا ، على كل مستوى ، كما تعلمون ، سواء قلت ذلك ، كنت جالسًا على سطر الأوامر لجهاز Unix ، وفي بعض الحالات ، كنت مشتركًا في اثنين من منافذ مختلفة من يونكس من منصة الأجهزة إلى آخر. ويمكنك أن تتخيل التحديات التي واجهناها هناك. لكن الحقيقة هي أن هذه هي بطاقة الخروج من السجن لكل المبرمج والمخططات في العالم. إنه علم صاروخي ، حرفيًا ، أن يكتب ضيقًا في كل مرة ، وفي كل وقت ، هو علم الصواريخ. وقصص مشهورة لأشخاص مثل دينيس ريتشي وبريان كرنهان يعملون على جزء من الكود بشكل مستقل ومن ثم العودة إلى مراجعة مدونة للدردشة عبر القهوة واكتشاف أنهم كتبوا بالضبط نفس الكود ، في نفس البرنامج بالضبط ، بالضبط نفس الطريقة. وفعلوا ذلك في C. ولكن هذا المستوى النقي من البرمجة نادرًا جدًا.

والحقيقة هي أنه على أساس يومي ، هناك 24 ساعة فقط في اليوم ، سبعة أيام في الأسبوع ، وعلينا فقط إنجاز الأشياء. وهكذا ، عندما يتعلق الأمر ليس فقط بالمبرمجين التقليديين ، و DBAs ، والمبرمجين ، والمبرمجين ، ومسؤول النظام ، ومديري الشبكات ، وموظفي الأمن ، وكل شيء على طول الطريق إلى جانب بيانات المواطن هذه الأيام ؛ نسمع ، الجميع يحاولون القيام بعملهم. ولذا أعتقد أن الوجبات السريعة الرائعة من هذا الأمر برمتها هي أنني أحببت عرضك التجريبي وأحببت الوجبات السريعة التي تركتها معنا هناك ، قبل لحظات فقط ، وتحدثت مع روبن حول حقيقة أن هذا له علاقة خاصة - ربما ليس كثيرًا مكانة - ولكن مساحة واسعة ينطبق عليها ، بقدر إصلاح التعليمات البرمجية و SQL وقواعد البيانات. لكنني كنت متحمسًا جدًا لسماعك تقول إنك تستطيع أن تكتسحها بخطًا صعبًا وتجد بعض المشكلات ، لأنك تعلم أن يومنا وعمرنا كانا يعملان دائمًا بأقل تكلفة على كل شيء.

السبب في أنه يمكنك شراء قميص بقيمة 6 دولارات في مكان ما ، هو أن شخصًا ما قام ببناء نظام رخيص بما يكفي لتصنيع وشحن وتسليم وتسويق وبيع التجزئة وتلقي المدفوعات عبر الإنترنت للحصول على هذا القميص البالغ 6 دولارات. وهذا لا يحدث إذا كنت قد دفعت للناس 400000 دولار أمريكي سنويًا لكتابة الكود بالطريقة المثالية ؛ انها مجرد تطور كامل. لذلك ، أعتقد أن أحد هذه الأسئلة ، أنا أحبك حقًا ، لإعطائنا مزيدًا من البصيرة ، ما هو اتساع ونطاق نوع الأشخاص الذين تراهم حاليًا والذين ينشرون هذه الأنواع من الأدوات لملف تعريف رمز والبحث لقضايا الأداء؟ في البداية ، تاريخيا ، من أين أتوا؟ هل كانت المنازل الهندسية الكبيرة؟ ومن ثم ، في المضي قدمًا ، هل هذا صحيح ، هل أنا محق في التفكير في أن عددًا أكبر من الشركات تقوم بتنفيذ هذه الأداة ، أو هذه الأدوات ، لمحاولة مساعدة المبرمجين ، الذين يعرفون من يقومون بإنجاز الأمور فقط لإنهاء المهمة وأخرجه من الباب؟ وأحيانًا نحتاج إلى بطاقة خروج من السجن؟ هل أنا على صواب في التفكير أنه من الناحية التاريخية كان لدينا المزيد من التركيز والتطوير الهندسي؟ هذا الآن ، كان يحصل على أقل ، كما قال روبن ، النهج الأكاديمي ، والآن علم نفسه ، أو الكود واللصق ، أو مجرد بناء الأشياء؟ وهل يتطابق ذلك مع نوع الأشخاص الذين يأخذون المنتج الآن؟

بيرت سكالزو: نعم بالضبط. وسيمنحك Ill مثالًا محددًا للغاية ، فنحن نريد فقط إنجاز المهمة ، لأن رجال الأعمال لا يريدون الكمال. نوعه مثل لعبة الشطرنج المحوسبة: لعبة الشطرنج لا تبحث عن إجابة مثالية ؛ إنه يبحث عن إجابة جيدة بما يكفي خلال فترة زمنية معقولة ، لذلك كيف نبرمج. لكن ما توصلت إليه الدردشة الآن هو أن معظم الناس بدلاً من القول إنهم يريدون منشئ ملفات التعريف كجزء من اختبار الوحدة الخاصة بهم - وهو كيف أفعل ذلك ، لأنني لا أراها مضيعة للوقت - ما يحدث الآن هو أن يتم ذلك في وقت لاحق ، في بعض الأحيان ، أثناء اختبار التكامل أو اختبار الإجهاد ، إذا كنت محظوظًا. ولكن في معظم الأوقات ، جزء من التصعيد ، حيث دخلت بعض الأشياء في الإنتاج ، ركضت لفترة من الوقت ، وربما استمرت لسنوات ، والآن لا تعمل بشكل جيد ، والآن بشكل جيد. ويبدو أن هذا هو السيناريو الأكثر شيوعا الآن.

ديز بلانشفيلد: نعم ، وأعتقد أن مصطلح "الدين الفني" ربما يكون أكثر من مجرد معرفتك به ؛ أنا أعرف روبن وأنا بالتأكيد. أعتقد في هذه الأيام ، لا سيما بالنسبة للنُهُج الضعيفة في التطوير وبناء النظام ، بالنسبة لي ، أن مفهوم الدين الفني الآن أمر حقيقي للغاية ، ونحن في الحقيقة نضعه في الاعتبار في المشروعات. وأنا أعلم ، يعني أننا حصلنا على مشاريعنا الخاصة مثل Media Lens وغيرها ، حيث حصلنا على الترميز بشكل يومي ، وأشياء مختلفة عبر مجموعة Bloor. وكلما تم بناء شيء ما ، نظرنا إليه وننظر إليه دائمًا وننظر إليه دائمًا من وجهة نظر ما سيكلفني إصلاح ذلك الآن ، في مقابل أن أتمكن من الحصول عليه في العلبة و أخرجها إلى هناك ، ثم شاهد ما إذا كانت هذه الأشياء ستتحطم أم لا. وارث هذا الدين التقني الذي أعرفه أن على دائرة العودة لاحقًا وإصلاحه.

أقصد ، لقد فعلت ذلك في الأيام السبعة الأخيرة: كتبت Ive عدة أدوات ونصوص ، كتبت Ive بضع قطع من لغة Python ، وقمت بنشرها في النهاية الخلفية لـ Mongo ، مع التأكد من أنها لطيفة ونظيفة وآمنة ، لكنه يحصل فقط على الاستعلام الذي أحتاجه ، مع العلم أنني بحاجة إلى هذه الوظيفة للعمل ، للوصول إلى اللغز الأكبر ؛ هذا حيث ألم حقيقي. وهكذا تتحمل هذا الدين الفني ، وأعتقد أن هذا ليس الآن مجرد عرضية ، وأعتقد أن هذا جزء من الحمض النووي للتطور الآن. الناس فقط - وليس بشكل مخادع - يقبلون فقط الدين الفني هو نوع عادي من أساليب التشغيل ، وعليهم فقط تحمله. حيث يمكنك تحمل الدين الفني. وأعتقد أن الشيء العظيم حول ما أظهرته لنا في العرض التوضيحي هو أنه يمكنك حرفياً مشاهدة ومتابعة الوقت الذي يستغرقه شيء ما لتشغيله. وربما هذا هو أحد الأشياء المفضلة لدي. أعني ، لقد صممت أدوات إنشاء ملفات تعريف فعلية - اعتدنا على إنشاء أدوات في Sed و Lex و Orc لتشغيل التعليمات البرمجية الخاصة بنا ومعرفة مكان وجود الحلقات ، وقبل توفر أدوات مثل هذه - وعندما قمت بإنشاء تعليمات برمجية للذهاب ومراجعة الرمز الخاص بك ، أنت جيد جدًا في عدم الاضطرار إلى مراجعة الرمز الخاص بك. ولكن هذا ليس هو الحال الآن. مع وضع ذلك في الاعتبار ، هل هناك شريحة سوق معينة تأخذ هذا الأمر أكثر من أي قطاع آخر؟ رؤية ككتلة

بيرت سكالزو: أوه ، نعم ، حصلت على تشبيه لك ، وأظهر لك أن غير المبرمجين يفعلون ذلك طوال الوقت. السبب إذا كنت أعلم من أي وقت مضى مصحح أخطاء وفصلًا دراسيًا أو جلسة عمل ، فاستفسر عن السؤال "حسنًا ، كم من الأشخاص هنا يذهبون إلى Microsoft Word ولا يستخدمون مطلقًا المدقق الإملائي؟" ولم يضع أحد أيديهم ، لأنه لكتابة المستندات ، نعلم جميعًا أننا قادرون على ارتكاب أخطاء باللغة الإنجليزية ، وبالتالي يستخدم الجميع مدقق الإملاء. وقلت ، "حسنًا ، كيف يحدث عندما تكتب في IDE مثل Visual Basic ، فأنت لا تستخدم المصحح؟ إنه نفس الشيء ، مثل المدقق الإملائي. "

ديز بلانشفيلد: نعم ، في الواقع ، هذا تشبيه كبير. لم أفكر حقًا ، يجب أن أعترف أنني في الحقيقة أقوم بشيء مشابه باستخدام عدة أدوات أستخدمها. في الواقع ، واحد ، ODF ، المفضل لدي مع Eclipse هو مجرد قص ولصق الكود هناك والبحث عن الأشياء التي تبرز فقط على الفور ، وأدركت أنني قمت بخطأ مطبعي في بعض مكالمات الفصل. لكن ، ولكن الآن مع هذه الأداة المثيرة للاهتمام ، يمكنك القيام بذلك في الوقت الحقيقي بدلاً من العودة والنظر إليها لاحقًا ، وهو أمر لطيف للغاية أن تجعلها في المقدمة. لكن نعم ، هذا تشبيه كبير لوضع مجرد معالج نصوص ، يسبب تنبيهًا مثيرًا للاستيقاظ ، فقط أدرك أنك قد ارتكبت بعض الأخطاء المطبعية أو حتى خطأ في القواعد ، أليس كذلك؟

بيرت سكالزو: بالضبط.

ديز بلانشفيلد: لذا ، هل ترى المزيد من الارتفاع الآن من أعتقد ، أعني ، السؤال الأخير مني ، قبل أن أذهب إلى سؤال وجواب لدينا ، ربما ، لحضورنا. إذا كنت ستقدم بعض التوصيات حول النهج المتبع في القيام بذلك - على افتراض أن هذا الكلام بلاغية - فهل هذه هي الحالة التي تحصل عليها مبكرًا ونفذت ذلك أثناء تطويرك ، قبل أن تتطور؟ أو هذه هي الحالة التي تحصل فيها على بناء في الغالب ، وتتحرك ، وتبني شيئًا ما ثم تدخل وتثبيته لاحقًا؟ أظن أن حالتها تحصل مبكرًا وتأكد من نظافة الرموز مقدمًا. أم أنها حالة يجب أن يفكروا فيها في هذا الجزء من النشر بعد النشر؟

بيرت سكالزو: من الناحية المثالية ، سيفعلون ذلك مقدمًا ، ولكن نظرًا لأن الجميع في العالم الصاخب ، حيث يتعين عليهم فقط القيام بالأشياء ، فإنهم يميلون إلى عدم القيام بذلك حتى يواجهون مشكلة في الأداء لا يمكنهم حلها عن طريق إضافة المزيد من وحدات المعالجة المركزية والذاكرة إلى الجهاز الظاهري.

ديز بلانشفيلد: بلى. في الواقع ، لقد ذكرت شيئًا مثيرًا للاهتمام ، إذا أمكنني ذلك بسرعة؟ لقد ذكرت من قبل أنه يمكن تشغيل هذا من أي مكان ، ويمكن التحدث إلى قاعدة البيانات في النهاية الخلفية. لذا ، فإن هذا مريح مع نوع المفهوم الثنائي الذي نتحدث عنه الآن ، والسحابة الداخلية / الخارجية ، بمظهر الأشياء أيضًا ، في نهاية اليوم ، إذا كان بإمكانها التحدث إلى النهاية الخلفية ورؤية الكود ، لا يهمه حقا ، هل؟

بيرت سكالزو: بالضبط ، نعم ، يمكنك تشغيل هذا في السحابة.

ديز بلانشفيلد: ممتاز ، لأنني أعتقد أن هذا هو المكان الذي يسير فيه عالمنا الشجاع الجديد. ايريك سأقوم بالرد عليك الآن وأرى أننا وصلنا بعض الأسئلة هنا وأريد أن يظل الحضور معنا ، على الرغم من أننا تجاوزنا الساعة.

إريك كافانا: نعم ، هناك بعض الأشخاص الموجودين هناك ، "سوء" فقط اكتب تعليقًا سريعًا: "بيرت" ، أعتقد أن الاستعارة ، تشبيه القياس باستخدام التدقيق الإملائي ، رائع بصراحة. هذا يستحق المدونة أو المدونين ، بصراحة تامة ، لأنه يمثل طريقة جيدة لتأطير ما يخدعك ، وما مدى قيمته ، وكيف ينبغي أن يكون حقًا أفضل ممارسة لاستخدام مصحح أخطاء على أساس منتظم ، أليس كذلك؟ أراهن أنك تحصل على بعض رؤوس الإيماءات عند رميها للخارج ، أليس كذلك؟

بيرت سكالزو: بالتأكيد ، سبب ما أخبرهم به هو: "لماذا أقوم بإجراء فحص إملائي للمستندات الخاصة بي؟ لا أريد أن أكون محرجًا من الأخطاء الإملائية الغبية. "حسنًا ، لا يريدون أن يشعروا بالحرج بسبب أخطاء الترميز الغبية!

إريك كافانا: حق. نعم فعلا حسنًا ، أيها الناس ، لقد احترقنا لمدة ساعة وخمس دقائق هنا ، بفضل كبير جدًا لكم جميعًا على وقتك واهتمامك. نقوم بأرشفة كل هذه الدردشات على شبكة الإنترنت ، ولا تتردد في العودة في أي وقت والتحقق منها. أفضل مكان للعثور على هذه الروابط هو على الأرجح techopedia.com ، لذا أضف هذا إلى هذه القائمة هنا.

ومع ذلك ، كانوا يودعونك أيها الناس. مرة أخرى ، عمل رائع ، بيرت ، بفضل أصدقائنا من IDERA. حسنا ، أتحدث إليكم في المرة القادمة ، وأتحدث إليكم جيدًا في الأسبوع القادم ، في الواقع. اعتن بنفسك! مع السلامة.