البرمجة القائمة على الأحداث

في برمجة الحاسوب ، تُعدّ البرمجة الموجهة بالأحداث نموذجًا برمجيًا يُحدد فيه مسار البرنامج بناءً على أحداث خارجية . ومن الأمثلة الشائعة على ذلك أحداث واجهة المستخدم من لوحات المفاتيح والفأرات ، ولوحات اللمس وشاشات اللمس ، ومدخلات المستشعرات الخارجية . كما يمكن توليد الأحداث برمجيًا، مثل الرسائل الواردة من برامج أخرى ، أو الإشعارات من سلاسل عمليات أخرى ، أو أحداث الشبكة الأخرى.

تُعد البرمجة القائمة على الأحداث النموذج السائد المستخدم في تطبيقات واجهة المستخدم الرسومية (GUI) وخوادم الشبكة.

في التطبيقات التي تعتمد على الأحداث، توجد عادةً حلقة أحداث تستمع للأحداث ثم تقوم بتشغيل دالة رد نداء عند اكتشاف أحد تلك الأحداث.

يمكن كتابة البرامج التي تعتمد على الأحداث بأي لغة برمجة ، على الرغم من أن المهمة أسهل في اللغات التي توفر تجريدات عالية المستوى .

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

من المهم التمييز بين نماذج العمل القائمة على الأحداث ونماذج العمل القائمة على الرسائل (المعروفة أيضًا باسم نماذج العمل القائمة على قوائم الانتظار) : فالخدمات القائمة على الأحداث (مثل AWS SNS ) منفصلة عن مستخدميها، بينما الخدمات القائمة على الرسائل/قوائم الانتظار (مثل AWS SQS ) مرتبطة بمستخدميها. [ 1 ]

حلقة الأحداث

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

توفر لغة البرمجة RPG ، وهي لغة برمجة مبكرة من شركة IBM ، والتي كان مفهوم تصميمها في الستينيات مشابهًا للبرمجة الموجهة بالأحداث التي تمت مناقشتها أعلاه، حلقة إدخال/إخراج رئيسية مدمجة (تُعرف باسم "دورة البرنامج") حيث تستجيب العمليات الحسابية وفقًا لـ "المؤشرات" ( الأعلام ) التي تم تعيينها في وقت سابق من الدورة.

معالجات الأحداث

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

يجب ربط إجراءات معالجة الأحداث بأحداث محددة، حتى تتمكن حلقة الأحداث من إرسال الإجراء الصحيح استجابةً للحدث. تُسهّل العديد من بيئات التطوير المتكاملة هذه العملية من خلال تزويد المبرمج بنموذج لمعالجة الأحداث لكل حدث محدد (مثل النقر على زر)، مما يسمح للمبرمج بالتركيز على كتابة كود معالجة الأحداث.

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

الاستخدامات الشائعة

تستخدم معظم بنى واجهات المستخدم الرسومية الحالية البرمجة القائمة على الأحداث. [ 2 ] يحتوي نظام ويندوز على حلقة الرسائل . يعالج إطار عمل جافا AWT جميع تغييرات واجهة المستخدم على خيط واحد، يُسمى خيط إرسال الأحداث . وبالمثل، تحدث جميع تحديثات واجهة المستخدم في إطار عمل جافا FX على خيط تطبيق جافا FX. [ 3 ]

تعتمد معظم خوادم الشبكة وأطر العمل مثل Node.js أيضًا على الأحداث. [ 4 ]

معالجة المقاطعات والاستثناءات

انظر أيضاً

مراجع

  1. تشاندراسيكاران، بريماناند؛ كريشنان، كارتيك؛ فورد، نيل؛ بايرز، براندون؛ بويز، ألارد (2022). تصميم قائم على المجال باستخدام جافا - دليل عملي . دار نشر باكت. ISBN 9781800564763.
  2. سامك، ميرو (1 أبريل 2013). "من نقل ولايتي؟" . دكتور دوبس . تم الاسترجاع في 28 يناير 2018 .
  3. فيدورتسوفا، إيرينا (يونيو 2012). "التزامن في JavaFX" . الصفحة الرئيسية لوثائق JavaFX . أوراكل . تم الاطلاع عليه في 4 يناير 2018. إن مخطط مشهد JavaFX، الذي يمثل واجهة المستخدم الرسومية لتطبيق JavaFX، ليس آمنًا للاستخدام المتزامن، ولا يمكن الوصول إليه وتعديله إلا من خلال سلسلة واجهة المستخدم، والمعروفة أيضًا باسم سلسلة تطبيق JavaFX.
  4. البرمجة الموجهة بالأحداث في Node.js.