مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو search box بتاعك بيستعلم على DB لكل حرف، الـ p95 latency بيعدّي 200ms على قاموس 5 ملايين كلمة. Trie في الذاكرة بينزّل ده لـ 80 ميكروثانية، 10000x أسرع. مقال للمتوسط بمثال خزانة الكروت للمبتدئ، تعريف علمي لـ rooted tree، كود Python 3.12 شغّال على __slots__، أرقام مقاسة بـ timeit، 4 استخدامات حقيقية، فخ استهلاك الذاكرة، trade-offs، وحالات لا تستخدمه فيها مع المصادر الرسمية.
لو search box بيشتغل بـ LIKE 'q%' على 500 ألف صف، كل ضربة كيبورد بتدفع 4 مللي ثانية في الـ DB. Trie بينزّل الزمن ده لـ 18 ميكروثانية بدون أي DB call. شرح للمستوى المتوسط بمثال القاموس الورقي للمبتدئ، تعريف علمي دقيق للـ k-ary tree و prefix search في O(L)، كود Python 3.12 شغّال في 30 سطر، أرقام مقاسة فعلياً على 500 ألف كلمة، trade-offs الذاكرة، وحالات لا تستخدمه فيها.
لو search box بياخد 80 مللي ثانية يرجّع 10 اقتراحات من 5 مليون كلمة، المشكلة مش السيرفر. المشكلة إنك بتستخدم LIKE 'prefix%' بدل Trie. شرح للمستوى المتوسط بمثال درج المكتبة للمبتدئ، تعريف علمي دقيق لـ Retrieval Tree، كود Python 3.12 شغّال بـ __slots__، أرقام مقاسة بـ timeit على 5 مليون اسم منتج، trade-offs الذاكرة (480MB)، وحالات لا تستخدمه فيها مع Elasticsearch وBK-Tree.
لو function بتاعتك بتلاقي اسم في 1000 صف في ميلي ثانية وبتقع على 10 مليون، المشكلة مش السيرفر — المشكلة إنك ما حسبتش Big O. شرح للمبتدئ بمثال دفتر التليفون، تعريف علمي، 5 درجات تعقيد أساسية، كود Python شغّال يقيس فرق 31,600 ضعف بين Linear و Binary Search، أرقام واقعية، trade-offs، ومتى Big O ما بيهمش.
لو شغّلت 8 threads في Python على CPU بـ 16 core وفوجئت إن الكود ماتسرّعش بل بطئ، السبب اسمه Global Interpreter Lock. مقال للمحترف بمثال الميكروفون الواحد للمبتدئ، تعريف علمي دقيق لـ CPython وbytecode evaluation، كود Python 3.12 شغّال يقيس الفرق بين threading و multiprocessing، أرقام مقاسة فعلياً، نظرة على PEP 703 وفكرة free-threaded Python، trade-offs واضحة، وحالات يبقى فيها threading منطقي رغم الـ GIL.
لو دالة Python واحدة محتاجة logging و retry و cache كل مرة بتشتغل، ومش عايز تلمس جسم الدالة، Decorators بتضيف الثلاثة في 3 سطور فوق التعريف. شرح متوسط بمثال علبة الهدية، تعريف علمي لـ first-class functions و closure، 3 ديكوريترز شغّالين على Python 3.12، أرقام مقاسة، فخ functools.wraps، trade-offs، وحالات لا تستخدمها فيها، مع مصادر رسمية.
لو dict في Python بيلاقي عميل من 50 مليون مفتاح في 180 نانو ثانية، ده مش سحر. ده هيكل اسمه Hash Map مبني على open addressing وperturbation في CPython 3.12. مقال للمستوى المتوسط بمثال خزانة المفاتيح للمبتدئ، تعريف علمي دقيق، كود شغّال يقيس النانو ثانية، أرقام collisions على 50M مفتاح، trade-offs الذاكرة، وحالات لا تستخدم dict فيها.
لو endpoint التسجيل بيعمل SELECT على جدول 10 مليون صف لكل request، الـ DB بياكل 8ms في كل مرة. Bloom Filter بينزّل ده لـ 50 ميكروثانية في 1.2MB ذاكرة بدون lookup للـ DB، مقابل false positive 1%. شرح للمستوى المتوسط بمثال دفتر المدرسة للمبتدئ، تعريف علمي دقيق من ورقة Burton Bloom 1970، رياضة k_optimal، كود Python 3.12 شغّال على mmh3 و bitarray، أرقام مقاسة فعليًا، نمط Bloom-قبل-DB، trade-offs الحذف، وحالات لا تستخدمه فيها.
لو عندك Array فيها مليون رقم وبتدوّر على زوج مجموعهم يساوي قيمة محددة، الكود التقليدي بـ nested loops بياخد 47 ثانية. Two-Pointer بيخلّيها 83 مللي ثانية بدون أي مكتبة. شرح للمبتدئ بمثال رف الكتب، تعريف علمي دقيق، كود Python 3.12 شغّال على Array مليون عنصر، أرقام مقاسة بـ timeit، 3 استخدامات حقيقية (Palindrome، Remove Duplicates، Container With Most Water)، trade-offs، وحالات لا تستخدمها فيها.