ماهو الـ Callback
الـ Callback هو معاودة الاتصال. لفهم المعنى تخيل أنك تتصل على صديقك في الساعة ٨:٠٠ (أي في الحاضر) وتطلب منه جمع بعض من المعلومات, وتخبره بأن يعاود الاتصال عليك بعد أداء مهمته (أي في المستقبل), وحينها يعاود الاتصال عليك ليطلعك على النتائج.
#برمجة
الـ Callback هو معاودة الاتصال. لفهم المعنى تخيل أنك تتصل على صديقك في الساعة ٨:٠٠ (أي في الحاضر) وتطلب منه جمع بعض من المعلومات, وتخبره بأن يعاود الاتصال عليك بعد أداء مهمته (أي في المستقبل), وحينها يعاود الاتصال عليك ليطلعك على النتائج.
#برمجة
ماهو الـ Callback في البرمجة
شفرة برمجية تم توقيتها حتى يتم تنفيذها في المستقبل, ولكن بعد ان تنتهي شفرة اخرى من التنفيذ. هذا ربما يذكرنا بالمستمع للأحداث Listener Event الذي يعتبر جزء من نمط المراقب Observer Pattern, ولكن ضع في الحسبان بإن Callback يعتبر شئ صغير مقارنة به.
#برمجة
شفرة برمجية تم توقيتها حتى يتم تنفيذها في المستقبل, ولكن بعد ان تنتهي شفرة اخرى من التنفيذ. هذا ربما يذكرنا بالمستمع للأحداث Listener Event الذي يعتبر جزء من نمط المراقب Observer Pattern, ولكن ضع في الحسبان بإن Callback يعتبر شئ صغير مقارنة به.
#برمجة
لماذا نحتاج الـ Callback؟
أغلب الأحيان المبرمج يتعامل مع الاتصالات الداخلية أو الخارجية I/O كقواعد البيانات أو الشبكات. مثلاً عندما يطلب بيانات من السيرفر وسيتم توفيرها له في المستقبل! أي أننا نحتاج اليه للتعامل مع الأوضاع الغير متزامنة مع وقتنا الحالي (الـ asynchronous).
#برمجة
أغلب الأحيان المبرمج يتعامل مع الاتصالات الداخلية أو الخارجية I/O كقواعد البيانات أو الشبكات. مثلاً عندما يطلب بيانات من السيرفر وسيتم توفيرها له في المستقبل! أي أننا نحتاج اليه للتعامل مع الأوضاع الغير متزامنة مع وقتنا الحالي (الـ asynchronous).
#برمجة
جحيم الـ Callback
الإكثار من أستخدام الـ Callback يؤدي الى صعوبة قراءة الشفرة البرمجية! وهذا يعني صعوبة الفهم والصيانة والتطوير. وتستطيع التعرف على هذا الجحيم عندما تواجه شفرة برمجية بها الكثير من التداخلات واغلاقات للكثير من الأقواس كما توضح الصورة.
#برمجة
الإكثار من أستخدام الـ Callback يؤدي الى صعوبة قراءة الشفرة البرمجية! وهذا يعني صعوبة الفهم والصيانة والتطوير. وتستطيع التعرف على هذا الجحيم عندما تواجه شفرة برمجية بها الكثير من التداخلات واغلاقات للكثير من الأقواس كما توضح الصورة.
#برمجة
لحسن الحظ لغة الكوتلن توفر مكتبة الـ Kotlin Coroutine كحل ممتاز لعدم الوقوع في هذا الجحيم. فمن الآن سوف تحتاج إلى الكروتينات في برمجة الاندرويد اذا اردت التعامل مع كلاً من: Network, Storage, Location, Camera, Gallery وما الى ذلك من أشياء غير متزامنة مع وقتنا الحقيقي.
#كوتلن
#كوتلن
جاري تحميل الاقتراحات...