البرمجة القائمة على الأحداث
في برمجة الحاسوب ، تُعدّ البرمجة الموجهة بالأحداث نموذجًا برمجيًا يُحدد فيه مسار البرنامج بناءً على أحداث خارجية . ومن الأمثلة الشائعة على ذلك أحداث واجهة المستخدم من لوحات المفاتيح والفأرات ، ولوحات اللمس وشاشات اللمس ، ومدخلات المستشعرات الخارجية . كما يمكن توليد الأحداث برمجيًا، مثل الرسائل الواردة من برامج أخرى ، أو الإشعارات من سلاسل عمليات أخرى ، أو أحداث الشبكة الأخرى.
تُعد البرمجة القائمة على الأحداث النموذج السائد المستخدم في تطبيقات واجهة المستخدم الرسومية (GUI) وخوادم الشبكة.
في التطبيقات التي تعتمد على الأحداث، توجد عادةً حلقة أحداث تستمع للأحداث ثم تقوم بتشغيل دالة رد نداء عند اكتشاف أحد تلك الأحداث.
يمكن كتابة البرامج التي تعتمد على الأحداث بأي لغة برمجة ، على الرغم من أن المهمة أسهل في اللغات التي توفر تجريدات عالية المستوى .
على الرغم من أنها لا تتناسب تمامًا مع النموذج القائم على الأحداث، إلا أن معالجة المقاطعات ومعالجة الاستثناءات تتشابه في العديد من الجوانب.
من المهم التمييز بين نماذج العمل القائمة على الأحداث ونماذج العمل القائمة على الرسائل (المعروفة أيضًا باسم نماذج العمل القائمة على قوائم الانتظار) : فالخدمات القائمة على الأحداث (مثل AWS SNS ) منفصلة عن مستخدميها، بينما الخدمات القائمة على الرسائل/قوائم الانتظار (مثل AWS SQS ) مرتبطة بمستخدميها. [ 1 ]
حلقة الأحداث
نظرًا لأن حلقة الأحداث التي تسترجع الأحداث وترسلها شائعة بين التطبيقات، فإن العديد من أطر البرمجة توفر تطبيقًا لحلقة الأحداث، ولا يحتاج مطور التطبيق إلا إلى كتابة معالجات الأحداث.
توفر لغة البرمجة RPG ، وهي لغة برمجة مبكرة من شركة IBM ، والتي كان مفهوم تصميمها في الستينيات مشابهًا للبرمجة الموجهة بالأحداث التي تمت مناقشتها أعلاه، حلقة إدخال/إخراج رئيسية مدمجة (تُعرف باسم "دورة البرنامج") حيث تستجيب العمليات الحسابية وفقًا لـ "المؤشرات" ( الأعلام ) التي تم تعيينها في وقت سابق من الدورة.
معالجات الأحداث
تكمن آلية عمل البرنامج في إجراءات معالجة الأحداث. تتولى هذه الإجراءات معالجة الأحداث التي يستجيب لها البرنامج الرئيسي. على سبيل المثال، قد يؤدي النقر بزر الماوس على زر "حفظ" في برنامج بواجهة رسومية إلى تشغيل إجراء لحفظ البيانات في قاعدة البيانات . وقد يؤدي النقر على زر "خروج" إلى تشغيل إجراء للخروج من البرنامج. تستقبل حلقة الأحداث الأحداث من جميع أزرار الأوامر وعناصر واجهة المستخدم الرسومية الأخرى ، وتُرسل إجراء معالجة الأحداث المناسب لكل زر.
يجب ربط إجراءات معالجة الأحداث بأحداث محددة، حتى تتمكن حلقة الأحداث من إرسال الإجراء الصحيح استجابةً للحدث. تُسهّل العديد من بيئات التطوير المتكاملة هذه العملية من خلال تزويد المبرمج بنموذج لمعالجة الأحداث لكل حدث محدد (مثل النقر على زر)، مما يسمح للمبرمج بالتركيز على كتابة كود معالجة الأحداث.
في البرامج التسلسلية، يكون تتبع ترتيب التنفيذ وسجله أمرًا بسيطًا عادةً. أما في البرامج القائمة على الأحداث، فتُنفَّذ معالجات الأحداث بشكل غير تسلسلي استجابةً للأحداث الخارجية. لذا، يتطلب الأمر عنايةً وتخطيطًا خاصين لهيكلة معالجات الأحداث بشكل صحيح لتعمل عند استدعائها بأي ترتيب.
الاستخدامات الشائعة
تستخدم معظم بنى واجهات المستخدم الرسومية الحالية البرمجة القائمة على الأحداث. [ 2 ] يحتوي نظام ويندوز على حلقة الرسائل . يعالج إطار عمل جافا AWT جميع تغييرات واجهة المستخدم على خيط واحد، يُسمى خيط إرسال الأحداث . وبالمثل، تحدث جميع تحديثات واجهة المستخدم في إطار عمل جافا FX على خيط تطبيق جافا FX. [ 3 ]
تعتمد معظم خوادم الشبكة وأطر العمل مثل Node.js أيضًا على الأحداث. [ 4 ]
معالجة المقاطعات والاستثناءات
انظر أيضاً
- تشغيل الأجهزة الطرفية المستقل
- برمجة تدفق البيانات
- أحداث DOM
- بنية تعتمد على الأحداث
- معالجة تدفق الأحداث (مفهوم مشابه)
- لغة وصف الأجهزة
- مقاطعة
- انعكاس التحكم
- برمجيات وسيطة موجهة نحو الرسائل
- نموذج البرمجة
- نمط النشر والاشتراك
- نمط المفاعل
- الإشارات والفتحات - بنية اللغة في إطار عمل Qt
- بنية الأحداث المرحلية (SEDA)
- نظام يعمل بالتوقيت (بنية بديلة لأنظمة الحاسوب)
- التزامن الافتراضي ، نموذج تنفيذ موزع للبرمجة القائمة على الأحداث
مراجع
- ↑ تشاندراسيكاران، بريماناند؛ كريشنان، كارتيك؛ فورد، نيل؛ بايرز، براندون؛ بويز، ألارد (2022). تصميم قائم على المجال باستخدام جافا - دليل عملي . دار نشر باكت. ISBN 9781800564763.
- ↑ سامك، ميرو (1 أبريل 2013). "من نقل ولايتي؟" . دكتور دوبس . تم الاسترجاع في 28 يناير 2018 .
- ↑ فيدورتسوفا، إيرينا (يونيو 2012). "التزامن في JavaFX" . الصفحة الرئيسية لوثائق JavaFX . أوراكل . تم الاطلاع عليه في 4 يناير 2018.
إن مخطط مشهد JavaFX، الذي يمثل واجهة المستخدم الرسومية لتطبيق JavaFX، ليس آمنًا للاستخدام المتزامن، ولا يمكن الوصول إليه وتعديله إلا من خلال سلسلة واجهة المستخدم، والمعروفة أيضًا باسم سلسلة تطبيق JavaFX.
- ↑ البرمجة الموجهة بالأحداث في Node.js.
روابط خارجية
- عرض أنماط التزامن المقدم في مؤتمر Scaleconf
- البرمجة الموجهة بالأحداث: مقدمة، شرح، تاريخ ، شرح من إعداد ستيفن فيرغ
- البرمجة الموجهة بالأحداث ، درس تعليمي من إعداد آلان غولد
- التعاون في الفعاليات ، مقال بقلم مارتن فاولر
- إعادة النظر في تقنية Swing Threading ، مقال بقلم جوناثان سيمون
- أسلوب البرمجة القائم على الأحداث ( مؤرشف بتاريخ 20 فبراير 2005 في أرشيف الإنترنت ) ، مقال بقلم كريس ماكدونالد
- البرمجة الموجهة بالأحداث باستخدام تخصيص القوالب ، مقال بقلم كريستوفر ديغينز
- شيفر، س.؛ فروليتش، ج. هـ. (1994). "مفاهيم وبنية فيستا - بيئة برمجة متعددة الأنماط". وقائع ندوة IEEE لعام 1994 حول اللغات المرئية . ص 40-47 . doi : 10.1109/VL.1994.363642 . ISBN 0-8186-6660-9. S2CID 15927869 .
- البرمجة الموجهة بالأحداث والوكلاء ، الفصل
- موارد LabWindows/CVI
- نظام نشر/اشتراك الأحداث الموزع ، وهو مثال مفتوح المصدر قيد التشغيل على موقعي MSN.com وMicrosoft.com
- نماذج البرمجة
- الأحداث (الحوسبة)
