تمت كتابة هذا المقال بالتعاون مع فيتالي توبوليوك، مهندس برامج في Meta، وشون كيجان، مؤيد المطوّرين في Meta.
في مقابلة اليوم، معنا فيتالي توبوليوك، وهو مهندس برامج في فريق تطبيق Messenger لأجهزة الكمبيوتر في Meta. يعمل فريق فيتالي على إصدار Messenger لأجهزة الكمبيوتر، والذي يمكّنك من إرسال الرسائل النصية وإجراء المكالمات والاتصال مباشرةً من الكمبيوتر.
اسمي فيتالي توبوليوك وأنا أعمل كمهندس برامج في فريق تطبيق Messenger لأجهزة الكمبيوتر. نطوّر إصدارات Windows وmacOS لتطبيق Messenger منذ آخر ثلاث سنوات، وكنا نستخدم في آخر سنتين React Native.
يتم تشغيل التطبيق بدعم من إطار عمل React Native.
تطبيق Messenger لأجهزة الكمبيوتر والمشروعات المشتقة: Work Chat لأجهزة الكمبيوتر وWorkrooms لأجهزة الكمبيوتر.
تم تطوير التطبيق استنادًا إلى إطار عمل Electron والذي شجعنا للغاية في البداية. للأسف، وصلنا لسعة استخدام Electron بشكل سريع للغاية واضطررنا إلى إنفاق الكثير لتلبية متطلبات الأداء والاعتمادية والكفاءة (PRE). بالإضافة إلى ذلك، كان Electron يقيد ميزات التطبيق.
عن طريق الانتقال إلى React Native، حللنا العديد من مشكلات PRE وقمنا بتحسين تجربة المطوّرين إلى حدٍ كبير. سمح لنا React Native بإعادة استخدام 80% من قاعدة الرموز وتحسين الكثير من أدوات قياس PRE. فيما يلي أدناه بعض من التحسينات التي حققناها عن طريق الانتقال إلى استخدام React Native للتطبيق بدون أي استثمار إضافي في PRE مقابل تطبيق Electron الموجود والذي كنا نركز على تحسينات PRE فيه على مدار ثلاثة أشهر:
الوصول أثناء التعطل: -60%
نسبة نجاح التشغيل الكلي: 97% (88% بالنسبة إلى Electron)
زمن الاستجابة عند تشغيل P90 من البداية: -50%
حجم البيانات الثنائية: -80%
الوصول أثناء التعطل: +59%
نسبة نجاح التشغيل من البداية: 99% (95% بالنسبة إلى Electron)
زمن الاستجابة عند تشغيل P90 من البداية: -60%
حجم البيانات الثنائية: -70%
نعم، في Meta، لدينا فرصة لإظهار إمكانية استخدام React Native لتطوير تطبيقات عبر المنصات لأجهزة الكمبيوتر.
أتمنى استبدال React Native بـ Electron في المستقبل، ولكن لكي ينجح ذلك، يجب تحسين إطار العمل لتضمين المزيد من أدوات الإنتاج المتكاملة. على سبيل المثال، لا يستوعب Electron التطبيقات المستندة إلى الويب، ولكنه يحتوي أيضًا على أدوات لتطوير أدوات التثبيت وأدوات التحديث التلقائي والإبلاغ عن الأعطال، وغير ذلك.
نود أن نشكر فيتالي على وقته لإجراء هذه المقابلة. لقد كان من المدهش معرفة كيفية استخدام React لتحسين التطبيقات الكبرى؛ وكيف نتعلم من الأشياء التي نطورها هنا في Meta والمساهمة مرة أخرى في مجتمع React. نأمل أن تكون قد وجدت هذه المقابلة مفيدة وأنها قد أعطتك نظرة ثاقبة حول كيفية استخدام React وجوانب استخدامه في Meta. ابحث عن المزيد من مدونات المقابلات حيث نجتمع مع مهندسي Meta ونستمع إلى أفكارهم حول هذا الموضوع.
React هو أحد أكثر المشاريع مفتوحة المصدر شيوعًا وقد تم تصنيفه طوال الوقت كواحد من أكثر أطر عمل الويب "المحبوبة" على مدار السنوات العديدة الماضية. نعتقد في Meta أن React مكتبة رائعة تساعد المطوّرين في تطوير واجهات المستخدم بسهولة وعلى نطاق واسع. يتم استخدام React من قبل ملايين المطوّرين في جميع أنحاء العالم، وفي كل شيء بدءًا من مواقع الويب البسيطة وحتى تطبيقات المؤسسات، وهي مكتبة مفتوحة المصدر تناسب الجميع.
تُعد هذه المدونة جزءًا من سلسلة Meet the Developers، حيث ندعو مهندسي Meta الذين يستخدمون React بشكل منتظم إلى مشاركة تجاربهم وإخبارنا عن المنتجات المذهلة التي يطورونها. ابحث عن المزيد من مدونات المقابلات حيث نجتمع مع مهندسين آخرين ونستمع إلى أفكارهم حول هذا الموضوع.
للتعرف على المزيد حول Meta Open Source، تفضل بزيارة الموقع مفتوح المصدر أو يمكنك الاشتراك في قناتنا على يوتيوب، أو متابعتنا على تويتر وفيسبوك ولينكدإن.