مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لما عميل بيضغط زر الدفع والإنترنت بيقطع، الـ 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 أصلاً.
لو سكربتك في Python بيقع OOM وانت بتقرأ ملف log حجمه 10GB، المشكلة مش الملف. المشكلة إنك بتحمّله كله في الذاكرة. Generator بيخلي نفس السكربت يخلّص في 12MB ذاكرة بدل 10GB. مقال للمستوى المتوسط بمثال المخبز للمبتدئ، تعريف علمي دقيق لـ Iterator Protocol وlazy evaluation، كود Python 3.12 شغّال، أرقام مقاسة فعليًا، Generator Pipeline، trade-offs واضحة، وحالات لا تستخدمه فيها.
أول مرة بتشوف دالة JavaScript بتنده نفس اسمها جوّاها، الدماغ بترفض الفكرة. في 7 دقايق هتفهم Recursion بمثال دمى ماتريوشكا، تعريف علمي لـ call stack وbase case، كود factorial وتصفّح مجلدات شغّال على Node 22، الفرق بينه وبين الـ loop، trade-offs، وحالات لا تستخدمه فيها.
لو search box عندك بياخد ثانيتين على كل ضغطة زر وانت بتعمل LIKE 'prefix%' في PostgreSQL على 500 ألف صف، المشكلة مش الـ DB. هياكل البيانات اللي بتستخدمها مش مناسبة لـ prefix search. Trie بيرد في 2 مللي ثانية على نفس الداتا بـ Python خام بدون Redis ولا Elasticsearch. شرح للمستوى المتوسط بمثال دفتر تليفون مرتب، تعريف علمي دقيق، كود شغّال على Python 3.12، أرقام مقاسة فعلياً، trade-offs الذاكرة، ومتى لا تستخدمه.
لو دالة عندك بتحسب نفس النتيجة آلاف المرات على نفس المدخل، الذاكرة أرخص من الـ CPU. Memoization بسطرين كود بيخلي fibonacci(45) ينزل من 8 ثواني لـ 3 ملي ثانية. شرح للمستوى المتوسط بمثال الكاشير، تعريف علمي لـ pure functions و call stack، كود JavaScript شغّال على Node 22، أرقام performance.now مقاسة، trade-offs الذاكرة، وحالات لا تستخدمه فيها.