مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو كودك بيتعامل مع 100 عنصر بدون مشاكل وبيتعلق على 100 ألف، المشكلة مش في السيرفر. المشكلة في تعقيد الخوارزمية. شرح Big O للمبتدئ بمثال دفتر التليفونات، تعريف علمي دقيق، كود Python شغّال، أرقام مقاسة، وحالات ما تشغلش بالك بيها فيها.
لو كل ما تحتاج تشغّل شغل بالتوازي بتدخل في زحمة Mutex وLocks، Go بتقدم طريقة أبسط: Goroutines خفيفة جداً وChannels تنقل البيانات بأمان بدون قفل يدوي. شرح متوسط بمثال للمبتدئين، تعريف علمي، كود شغّال، أرقام، trade-offs، وحالات لا تنفع فيها.
لو نفس بيانات المنتج بتتقرأ آلاف المرات في الدقيقة، LRU Cache بسيط بـ JavaScript Map يقلل الضغط على قاعدة البيانات بدون Redis في الحالات الصغيرة.
لو سكربت Node.js بيقرأ ملف كبير أسرع من الكتابة، الذاكرة هتطلع تدريجيًا لحد ما العملية تقع. Backpressure يخلي التدفق تحت السيطرة باستخدام pipeline وdrain.
لو طلب الدفع اتبعت مرتين بسبب timeout، Idempotency Key يمنع تكرار العملية ويرجع نفس الرد بأمان. شرح عملي بمثال Node.js وPostgreSQL.
شرح كامل للـ Event Loop في JavaScript للمستوى المتوسط: ليه Promise بيشتغل قبل setTimeout(0)، الفرق بين Microtask و Macrotask، bug خفي شائع في async/await، قياس فعلي على Chrome، ومتى الفهم ده مهم فعلاً ومتى مش لازم.
لو خدمة خارجية وقعت، السيرفر بتاعك بيقع معاها لأن الـ threads بتتعلق في انتظار رد. Circuit Breaker بيقطع المكالمة فورًا ويحمي مواردك. شرح بمثال عداد الكهرباء، تعريف علمي دقيق، كود Node.js شغّال من 35 سطر، قياس قبل وبعد، ومتى لا تستخدمه.
لو دالة جوّانية في JavaScript بترجع متغير من دالة خارجية انتهت من زمان، ده الـ closure. شرح بمثال الدرج، تعريف علمي، 4 حالات استخدام حقيقية، حالات تسرّب ذاكرة، ومتى ما تستخدمهوش.
لو كل check عندك بيروح لقاعدة البيانات، Bloom Filter يخليك تسأل الذاكرة الأول وتقلل الاستعلامات الفارغة مع فهم واضح لتكلفة الـ false positives.