شرح المفهوم
تساعدك "أساسيات وقت تشغيل JavaScript: منظور الأداء" على التفكير في السرعة والهدر قبل أن يصبح الكود فوضويًا أو بطيئًا. لا يهدف هذا الدرس إلى التحسين الدقيق لكل شيء. بدلاً من ذلك، يعلمك ملاحظة العادات الشائعة التي تؤثر على الأداء، مثل استدعاءات الشبكة المتكررة، والعمل الإضافي داخل الحلقات، والانتظار غير الضروري في الكود غير المتزامن. ستنظر في مثال صغير غير متزامن، وتفكر في تكلفة تشغيله، وتجري تحسينات عملية تحافظ على قابلية قراءة الكود. بحلول النهاية، يجب أن تكون قادرًا على شرح ليس فقط ما يفعله الكود، بل أيضًا لماذا يكون إصدار واحد أخف وأكثر كفاءة من الآخر.
أين تضع الكود
- ابدأ بالمتغيرات والمدخلات. استخدم بناء جملة المتصفح أو Node.js بوضوح.
- أضف منطق المعالجة في القسم الأوسط.
- اختتم بالمخرجات والتحقق السريع.
مرجع الأوامر
- شغّل المثال مرة واحدة، ثم حدّد الأجزاء التي تمثل عمل شبكة والأجزاء التي تمثل معالجة محلية.
- أضف إجراء حماية صغيرًا واحدًا، مثل فحص الاستجابة، دون جعل الدالة أصعب في المتابعة.
- قارن بين إصدار مهدر وإصدار أنظف، واشرح أين تم إزالة العمل غير الضروري.
- صف سببًا عمليًا واحدًا لأهمية الأداء هنا، مثل التغذية الراجعة الأسرع أو عدد أقل من الطلبات المتكررة.
دليل خطوة بخطوة
- شغّل المثال ولاحظ ما يحدث عند نجاح الطلب.
- حدّد السطر الذي يبدأ فيه الانتظار غير المتزامن والسطر الذي تُستخدم فيه البيانات المُرجعة.
- أضف تحسينًا واحدًا يجعل التدفق أكثر كفاءة أو أمانًا، مثل التحقق من الاستجابة قبل التحليل.
- اختبر مسارًا طبيعيًا ومسار فشل واحدًا لترى كيف تتصرف الدالة تحت كلا الشرطين.
- اختتم بتلخيص ما تغير ولماذا الإصدار المحدّث أنسب للمشاريع الحقيقية.
تمارين تطبيقية
- حدّث المثال بحيث يستخرج الأسماء التي تحتاجها فقط بدلاً من تمرير كائنات المستخدم الكاملة في كل مكان.
- أنشئ دالة ثانية تعيد استخدام البيانات المحملة دون إجراء استدعاء جلب إضافي.
- أعد كتابة المثال بهيكل مختلف قليلاً واشرح أي إصدار ستحتفظ به للصيانة طويلة الأمد.
تحديات برمجية
- أعد هيكلة نص برمجي صغير غير متزامن يكرر نفس الطلب أكثر من مرة بحيث يتم جلب البيانات مرة واحدة فقط.
- حسّن مثالًا يبدو بطيئًا عن طريق إزالة خطوة غير ضرورية واحدة مع الحفاظ على سهولة فهم النتيجة.
مهام تمرين صغيرة
- أضف فحص استجابة واحدًا.
- أعد تسمية دالة واحدة لتتناسب بشكل أفضل مع ما ترجعه.
- اكتب جملة واحدة تشرح من أين تأتي التكلفة الرئيسية لهذا النص البرمجي.
خطأ شائع
Skipping input validation or mixing logic/output in one unstructured block.
تحدٍ مصغّر من الواقع
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.