Caching وCDN
في هذا الدرس نتعرّف على الـ cache (مكان سريع يخزّن الإجابات التي حسبناها مسبقًا، حتى لا نكرّر العمل؛ مثل ورقة لاصقة على مكتبك تحمل إجابة وجدتها من قبل). نتعرّف على بضعة أنماط عمل: cache-aside (اقرأ من الـ cache، وإن كان فارغًا فاذهب إلى المصدر واحفظ الإجابة للمرة القادمة)، write-through (كل عملية كت
System Design (التخطيط لكيفية بناء برمجيات كبيرة تخدم أشخاصًا كُثُر) يشبه تخطيط مدينة: طرق، ومخازن، وإشارات مرور، وطواقم صيانة، بحيث تظل المدينة تعمل جيدًا حتى في أكثر ساعات الذروة ازدحامًا.
- Caching
- تخزين إجابات جاهزة في مكان سريع (cache) كي تردّ بسرعة وتتجنّب أداء العمل نفسه مرتين. المهارة الأساسية في هذا الدرس تشمل cache-aside (اقرأ من الـ cache، وإن كان فارغًا فاذهب إلى المصدر واحفظه)، write-through (احفظ في الـ cache والمصدر معًا)، TTL (كم من الوقت تبقى الإجابة "طازجة")، invalidation (التخلّص من البيانات القديمة)، hot keys (عناصر يطلبها الجميع دفعة واحدة)، وCDN (خوادم منتشرة حول العالم تحتفظ بنسخ قريبة من المستخدم).
- Trade-off
- اختيار واعٍ له مكسب وثمن في آنٍ واحد — تمامًا مثل اختيار مسار: الطريق السريع يكلّف رسم عبور، والمجاني يستغرق وقتًا أطول. في المقابلة تشرح للمُقابِل مكسب كل خيار وثمنه.
- مقياس تشغيلي
- رقم يُظهر ما إذا كان القرار يعمل فعلًا حين تكون المنظومة حيّة وتخدم مستخدمين حقيقيين (production). على سبيل المثال: latency (كم من الوقت تستغرق الاستجابة)، error rate (نسبة الطلبات التي تفشل)، queue lag (كم مهمة تنتظر في الطابور)، وcache hit ratio (كم مرة وجدنا إجابة جاهزة). مثل عدّادات لوحة القيادة في السيارة — تخبرك إن كان كل شيء على ما يُرام.