مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو search box عندك بيرسل request جديد لكل حرف بيكتبه المستخدم، فا الـ 8 أحرف بتولّد 8 طلبات، والسيرفر بيشتغل بنسبة 80% فاضي. الحل سطر واحد اسمه Debounce. مقال للمبتدئ بمثال المصعد، تعريف علمي لـ Debounce و Throttle، كود JavaScript شغّال على Node 22 ومتصفح Chrome، أرقام مقاسة بـ performance.now، الفرق بين الاتنين بمواقف حقيقية، trade-offs، وحالات لا تستخدمهم فيها.
لو الـ API بتاعك بيتعرّض لـ 50 ألف طلب في الثانية ومحتاج تمنع زبون واحد من ابتلاع الموارد، Redis SETEX بيكلّفك 1.2 مللي ثانية لكل طلب من round-trip للشبكة. Token Bucket في الذاكرة بينزّل الزمن ده لـ 78 ميكروثانية. مقال للمحترف بمثال ماكينة الكافيه للمبتدئ، تعريف علمي دقيق، كود Python 3.12 شغّال مع threading.Lock، أرقام مقاسة بـ wrk، الفرق بين Token Bucket و Leaky Bucket و Sliding Window، trade-offs، وحالات لا تستخدمه فيها.
لو خدمة واحدة من 6 microservices بطّأت وفجأة تطبيقك كله بيرد في 8 ثواني بدل 200ms، المشكلة مش الخدمة. المشكلة إن تطبيقك مش عارف يقول "ما تكلمنيش عنها". Circuit Breaker بيحل ده ببنية state machine بثلاث حالات. مقال للمستوى المتوسط بمثال علبة الكهرباء للمبتدئ، تعريف علمي دقيق، كود Python شغّال على pybreaker، أرقام مقاسة من إنتاج 800 req/s، trade-offs، وحالات لا تستخدمه فيها.
لو سيرفرك Python بيخزن ملايين الـ instances وبتدفع في AWS فاتورة RAM ضخمة، سطر واحد اسمه __slots__ ممكن يقلل الذاكرة 40-60%. مقال للمحترف بمثال درج المكتب للمبتدئ، تعريف علمي دقيق لـ PyDictObject في CPython، كود Python 3.12 شغّال مع أرقام مقاسة بـ pympler، شرح كسر الـ inheritance الكلاسيكي، trade-offs، وحالات لا تستخدمه فيها.
لما عميل بيضغط زر الدفع والإنترنت بيقطع، الـ HTTP client بيعمل retry تلقائي والفاتورة بتتخصم مرتين. ده مش bug في كود الدفع، ده غياب لـ Idempotency Key. مقال للمستوى المتوسط بمثال ساعي البريد للمبتدئ، تعريف علمي لـ idempotent operations حسب RFC 9110، كود FastAPI شغّال على Redis مع SETNX lock، أرقام مقاسة قبل وبعد، trade-offs، وحالات لا تستخدمه فيها.
لو دالة JavaScript بترجع دالة تانية، والدالة دي بتفتكر القيم اللي اتعرّفت في الدالة الخارجية بعد ما خلصت تنفيذها، ده مش غلط في المتصفح ولا سحر. ده مفهوم اسمه Closure. شرح للمبتدئ بمثال درج المكتب، تعريف علمي دقيق لـ Lexical Scope والـ scope chain، كود شغّال على Node 22، 3 استخدامات حقيقية (counter, private variables, function factory)، الفخ الكلاسيكي في الـ loops، أرقام استهلاك ذاكرة فعلية، trade-offs، وحالات لا تستخدمها فيها.
لو فتحت الكونسول وكتبت setTimeout مع Promise، رد Promise بيظهر الأول حتى لو setTimeout بصفر مللي ثانية. ده مش غلط في المتصفح. ده ترتيب متدرج جوّا الـ Event Loop. مقال للمبتدئ بمثال طابور المطار، تعريف علمي دقيق لـ Microtask Queue و Macrotask Queue، كود JavaScript شغّال على Node 22 ومتصفح Chrome، أرقام مقاسة، trade-offs، ومتى ما تشغّلش بالك بالموضوع أصلاً.
لو الـ dashboard بتاع متجر إلكتروني عندك بياخد 4 ثواني علشان يعرض أغلى 100 منتج من جدول فيه مليون صف، المشكلة مش في السيرفر ولا الـ index. المشكلة إنك بتسوّر مليون عنصر علشان تاخد منهم 100 بس. Heap بيخلّي نفس النتيجة تطلع في 18 مللي ثانية. مقال للمستوى المتوسط بمثال طوارئ المستشفى، تعريف علمي دقيق لـ Complete Binary Tree و Heap Property، كود Python شغّال على heapq، أرقام مقاسة فعليًا، trade-offs، وحالات لا تستخدمه فيها.
لو dashboard بتاعك بيرجع شاشة فاضية لأن طلب واحد من 8 طلبات API فشل، المشكلة مش في الـ network. المشكلة إنك بتستخدم Promise.all بدل Promise.allSettled. مقال للمستوى المتوسط بمثال البنك للمبتدئ، تعريف علمي دقيق لـ fail-fast vs settle-all، كود JavaScript شغّال على Node 22، أرقام مقاسة من production، trade-offs، ومتى لا تستخدم allSettled أصلاً.