أهمية مترجم React تكمن في أنه يغير من هو المسؤول عن بعض تحسينات الرسم.
تاريخياً، استخدمت فرق React:
useMemo
useCallback
React.memo
لمنع إعادة الحساب غير الضرورية والتكرار المفرط في إعادة الرسم.
كان ذلك يعمل، لكنه أيضاً أنشأ كوداً صاخباً وهشاً وسهل الخطأ.
ما يغيره المترجم فعلاً
يمكن للمترجم تحليل كود المكونات وتطبيق تحسينات تشبه التذكير تلقائياً عندما يتبع الكود أنماط يمكنه التفكير فيها بأمان.
هذا يعني أن بعض التذكير اليدوي يصبح غير ضروري.
الكلمة المهمة هي بعض.
هذا لا يعني:
- يجب أن تختفي كل
useMemo
- كل
useCallback عفا عليه الزمن
- الأداء أصبح تلقائياً في كل قاعدة كود
تساعد المترجمات فقط حيث يمكنها إثبات أن التحويل آمن.
ما زال يتطلب الحكم
لا يزال تحتاج إلى الحكم الهندسي حول:
- الحسابات المكلفة
- المكتبات الطرف الثالث ذات واجهات برمجة التطبيقات الحساسة للمراجع
- الهويات المستقرة عمداً عبر الحدود
- الكود الذي لا يستطيع المترجم تحسينه بشكل نظيف
لذا يمكن أن يكون الاستنتاج الأكثر صحة هو:
"استخدم عدد أقل من خوارزميات التذكير الدفاعية افتراضياً، وقم بتحليل الأماكن التي لا تزال مهمة."
هذه قاعدة أفضل من "احذف جميع خوارزمياتك."
لماذا لا يزال هذا أمرًا مهمًا
لطالما كان للتذكير اليدوي تكلفة صيانة:
- تصبح مصفوفات الاعتماد قديمة
- يصبح الكود أصعب قراءة
- يقوم المطورون بنقل تحسينات غير مناسبة إلى أماكن لا تحتاجها
إذا كان بإمكان المترجم إزالة جزء من تلك الضريبة، فهذه تحسين حقيقي في كل من سهولة الاستخدام والدقة.
قراءة إضافية