مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو دالة عندك بتحسب نفس النتيجة آلاف المرات على نفس المدخل، الذاكرة أرخص من الـ CPU. Memoization بسطرين كود بيخلي fibonacci(45) ينزل من 8 ثواني لـ 3 ملي ثانية. شرح للمستوى المتوسط بمثال الكاشير، تعريف علمي لـ pure functions و call stack، كود JavaScript شغّال على Node 22، أرقام performance.now مقاسة، trade-offs الذاكرة، وحالات لا تستخدمه فيها.
لو نفس الـ loop عندك بياخد 1.9 ثانية مرة و 11.5 ثانية مرة تانية بنفس البيانات، السبب مش cache ولا compiler. السبب وحدة hardware اسمها Branch Predictor جوّا الـ CPU. مقال للمحترف بمثال حارس النادي، تعريف علمي لـ TAGE وspeculative execution، كود C++ شغّال، أرقام perf مقاسة، حل branchless، trade-offs، ومتى لا تشغّل بالك بالموضوع.
لو بتعمل lookup على قاعدة بيانات فيها مليار صف لكل request وبتدفع ثمنها latency و RAM، Bloom Filter بيقفلك 99% من الـ lookups دي قبل ما توصل للـ DB أصلاً، بـ 11 ميجابايت ذاكرة فقط. شرح للمستوى المتوسط بمثال حارس الحفلة، تعريف علمي، كود Python شغّال، أرقام مقاسة، trade-offs، ومتى لا تستخدمه.
لو ضفت سيرفر تاسع لـ Redis cluster من 8 سيرفرات وفجأة الـ DB قعت تحت موجة طلبات، المشكلة مش السكيل. المشكلة إنك بتستخدم hash(key) % N. مقال للمحترف بمثال شركة الشحن، تعريف علمي دقيق لـ Hash Ring، كود Python شغّال يقيس الفرق فعلًا، شرح virtual nodes، أرقام Discord وDynamoDB، trade-offs واضحة، وحالات لا تستخدمه فيها.
لو الـ search box عندك بيرسل طلب لكل حرف والنتايج بترجع متلخبطة لأن الطلب رقم 3 وصل بعد رقم 7، المشكلة مش fetch ولا debounce. الحل اسمه AbortController. مقال للمستوى المتوسط بمثال الطباخ، تعريف علمي دقيق لـ Signal Pattern، كود JavaScript قابل للنسخ، أرقام مقاسة، trade-offs، ومتى لا تستخدمه.
لو endpoint الشراء بتاعك خصم آخر قطعة لاتنين عملاء في نفس الثانية، الكود مش غلط. خيطين تنفيذ قروا الرقم في نفس النانوثانية. شرح Race Conditions للمستوى المتوسط بمثال آخر تذكرة في الحفلة، تعريف علمي لـ Critical Section و Mutual Exclusion، كود Python threading قابل للنسخ يعيد إنتاج المشكلة، 4 حلول عملية مع أرقام مقاسة (Mutex، Atomic، Optimistic، SELECT FOR UPDATE)، trade-offs، وقاعدة قرار سريعة.
لو شفت دالة JavaScript بترجع دالة تانية لسه بتقرا المتغيرات بعد ما الدالة الأم خلصت، ده مش بَج. ده Closure. مقال للمبتدئ بمثال خزنة البنك، تعريف علمي دقيق لـ lexical scope، كود Node 24 شغّال، استخدام في private state وعدّاد لكل مستخدم، أرقام ذاكرة مقاسة، trade-offs الـ memory leak الكلاسيكي، وحالات لا تستخدمه فيها فعلاً.
لو كودك بيرد في 30ms على 500 صف وبيقعد 8 ثواني على 50 ألف صف، المشكلة مش السيرفر. المشكلة في Big O بتاع الخوارزمية. شرح للمبتدئ بمثال دفتر التليفون، تعريف علمي دقيق، كود Python شغّال يقارن O(n²) مع O(n)، أرقام timeit مقاسة، trade-offs الذاكرة، وحالات لا تشغل بالك بـ Big O فيها.
لو عميلك ضغط زرّ الدفع مرّتين بسبب بطء النت، البنك ممكن يخصم منه المبلغ مرّتين. Idempotency Key بيخلّي السيرفر يرفض النسخة الثانية ويرجّع نتيجة الأولى — بسطر واحد على قاعدة البيانات. مقال للمستوى المتوسط بمثال شركة دفع، تعريف علمي، كود Express + PostgreSQL شغّال، أرقام إنتاج، trade-offs، وحالات ما تستخدمهوش فيها.