سنعيد كتابة العلم بأبجدية عربية

  • الرئيسية
  • الفئات
  • الباحثون السوريون TV
  • من نحن
  • اتصل بنا
  • About Us
x
جارِ تحميل الفئات

تصحيح تلقائي لأخطاء فيسبوك البرمجية!

المعلوماتية >>>> برمجيات


تم حفظ حجم الخط المختار

Image: https://blog.tryadhawk.com/wp-content/uploads/2017/08/Facebook-Pixel-Troubleshooting.png

يُعرَّف الخطأ البرمجي بأنَّه ارتكاب هفوات في مرحلة تصميم البرنامج الحاسوبي أو في أثناء كتابته بإحدى لغات البرمجة، وينتج عنه -غالبًا- أداءً سيِّئ أو غير متوقَّع.

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

وبالمقابل؛ قد يكون للأخطاء نتائجٌ خطيرة للغاية، فمثلًا الأخطاء التي شابت برنامج مراقبة جهاز العلاج الإشعاعي (Therac-25) كانت المسؤولة المباشرة عن وفاة بعض المرضى في ثمانينيات القرن العشرين.

وفي عام 1996م، فقدت وكالة الفضاء الأوروبية صاروخ أريان 5 (يعادل مليار دولار أمريكي) بعد أقل من دقيقة من إطلاقه؛ بسبب خلل في برنامج التوجيه الحاسوبي.

لذلك، ولأهمية الموضوع؛ فإنَّ عملية تصحيح الأخطاء جزءٌ أساسي في دورة حياة أيِّ برنامج.

وتهدف شركة فيسبوك -بسبب تلك المخاطر المترتِّبة عن الأخطاء البرمجية- إلى جعل الموقع أكثر استقرارًا وأمنًا؛ لذا قرَّر المهندسون فيها تطوير أداة يمكنها  اكتشاف الأخطاء تلقائيًّا وعرضها على المهندسين والمطوِّرين لإصلاحها، وهذه الأداة تدعى (GetaFix).

وفي الوقت الحالي، تساهم هذه الأداة في استقرار حسابات المستخدمين، وتتعاون (GetaFix) مع أداتين مقدَّمتين من فيسبوك لتحقيق الهدف المبتغى؛ هما:

الأولى تُدعى (Infer): تتولَّى اكتشاف الأخطاء وإصلاحها؛ كالمشاكل الناجمة عن استثناءات المؤشِّرات الفارغة (Null Pointer Exceptions) مثلًا.. أو غيرها من الأخطاء التي تظهر في أثناء التشغيل.
الثانية تُدعى (Sapfix): تصلح الأخطاء المكتشفَة بواسطة الاختبارات الأوتوماتيكية.

مخطَّط توضيحي لمراحل معالجة الأخطاء تلقائيًّا  

Image: https://code.fb.com/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/

الهدف من (Getafix):
السماح لأجهزة الحاسوب بممارسة عمل المبرمجين الروتيني تحت إشراف الإنسان، الذي يقرِّر بدوره متى يحتاج الخطأ إلى علاج معقَّد غير روتيني.
تعمل الأداة بواسطة تطبيق طريقة جديدة للتسلسل الهرمي لآلاف التعديلات البرمجية السابقة المفتعلة من قبل المهندسون البشريون، وكذلك السياق المحيط بالتعديل في الشيفرة البرمجية.
ويمكنها أيضًا تحديد الأماكن الحساسة (critical) في الشيفرة -والتي يمكن أن يحدث فيها خلل برمجي- ما يمكِّنها من تحديد التصحيح المناسب بسرعة أكبر، وبدون وقت حساب طويل.
إنَّ هذا النهج الأكثر كفاءة يجعل من الممكن إضافة الأداة مباشرةً إلى الشيفرة المصدرية الخاصة ببيئة فيسبوك الرسمية، وليس بيئة الاختبار فقط.
ولأنَّ (Getafix) تتعلَّم من تغييرات التعليمات البرمجية السابقة؛ فإَّنها تنتج أيضًا إصلاحات يسْهُل على المهندسين البشريين فهمُها.
مراحل عمل (Getafix):
تتكوَّن من ثلاث مراحل أساسية:
شجرة الاختلافات (Tree Differencer).
نماذج التنقيب (Mine template).
تنفيذ التصحيح (Create Patch).

المرحلة الأولى: شجرة الاختلافات (Tree Differencer):
يكون إنشاء شجرة الاختلافات والتعديلات عن طريق خوارزميات تنقيب تراتُبية، والاستعانة أيضًا بالأداة التي ذكرناها سابقًا، وهي (Infer).
المرحلة الثانية: نماذج التنقيب (Mine template):
وهي نتاج تطبيق خوارزميات التنقيب والتصنيف السابقة؛ إذ يُعتمَد إيجاد نماذج تُستخدم في الكشف عن الأخطاء.
المرحلة الثالثة: تنفيذ التصحيح (Create Patch):
تُؤخَذ فيها الشيفرة البرمجية التي تحتوي على أخطاء، وتُطبَّق نماذج التصحيح التي حصلنا عليها في المرحلة السابقة من أجل تصحيح الخطأ واختيار أفضل نتيجة.

وأخيرًا، نجد أنَّ (Getafix) ساعدت على التقدُّم نحو تحقيق الهدف المتمثِّل في السماح لأجهزة الحاسوب بممارسة الأعمال الروتينية لتحديد الأخطاء، ثمَّ إنَّه لديها القدرة على تحسين جميع جوانب دورة حياة تطوير البرامج؛ بما في ذلك اكتشاف الشيفرات، وجودة الشيفرة، والكفاءة التشغيلية، ويُتوقَّع أيضًا أن تكون قادرة على منع جزء أكبر من حالات فشل إصدارات فيسبوك الجديدة.

المصادر:
هنا

مواضيع مرتبطة إضافية

المزيد >


شارك

تفاصيل

04-04-2019
512 | 3
البوست

المساهمون في الإعداد

ترجمة: Emad Aldeen Moslet
تدقيق علمي: Noor Hassan
مراجعة: Mujeeba Haj Najeeb
تدقيق لغوي: Diana Hayek
تعديل الصورة ونشر: Dima Yazji

تابعنا على الإنستاغرام


من أعد المقال؟

Emad Aldeen Moslet
Noor Hassan
Mujeeba Haj Najeeb
Diana Hayek
Dima Yazji

مواضيع مرتبطة

فوائد الحوسبة الافتراضية

لغةُ "Elixir" البرمجية، مستقبل تطبيقات الويب

تعرف إلى برنامجي "adobe flash builder" و"adobe flash professional"!

كيف تتم صناعة الألعاب؟ (الجزء الأول)

هل يستطيع الحاسوب اختراع أبجدية خاصة به؟

كل ما تحتاج معرفته عن قارئ البصمات الجديد في ال iPhone الجديد

تحديدِ الخياراتِ المُثلى لاتِّخاذِها في الألعاب

باحثون يطورون خوازرمية يمكنها حظر متصيدي الإنترنت

إنترنت مجّاني للجميع!

2 نموذج الشلال

شركاؤنا

روابط مهمة

  • الشركاء التعليميون
  • حقوق الملكية
  • أسئلة مكررة
  • ميثاق الشرف
  • سياسة الكوكيز
  • شركاؤنا
  • دليل الشراكة
جميع الحقوق محفوظة لمبادرة "الباحثون السوريون" - 2019