مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو شغّلت PostgreSQL و RocksDB على نفس Samsung 990 Pro NVMe، PostgreSQL بيكتب 78MB/s متواصل و RocksDB بيكتب 340MB/s. الفرق مش في تحسين الكود — الفرق في data structure مختلفة بالكلية. مقال للمحترف بمثال موظف الأرشيف للمبتدئ، تعريف علمي من ورقة Bayer 1972 و O'Neil 1996، benchmark شغّال بـ pgbench و db_bench، أرقام مقاسة، 4 trade-offs (write/read/space amplification + tail latency)، ومتى لا تستخدم أي منهما أصلاً.
لو فريقك مكرّر 8 سطور لـ logging و auth في كل endpoint من 240 endpoint، انت بتدفع 1920 سطر boilerplate قابل يخبّي bugs. Python Decorators بتشيل الكلام ده بسطر واحد فوق كل function. مقال للمحترف بمثال حارس البنك للمبتدئ، تعريف علمي للـ higher-order functions و closures، كود FastAPI شغّال على Python 3.12 مع functools.wraps و contextvars، أرقام مقاسة من إنتاج (1920 سطر اتحوّلوا لـ 38 سطر)، 4 trade-offs حقيقية، ومتى Decorators بتبقى الاختيار الغلط أصلاً.
لو ZSET في Redis فيه 10 مليون عنصر وبترجّع top 100 في 0.3ms، الفضل لـ Skip List مش لشجرة متوازنة. شرح للمحترف بمثال قطار المترو للمبتدئ، تعريف علمي من ورقة Pugh 1990، كود Python في 50 سطر، أرقام مقاسة على Redis 7.2، 4 trade-offs حقيقية، ولماذا Salvatore اختار Skip List مش Red-Black Tree، مع المصادر الرسمية.
لو الـ cache cluster بتاعك بيقع كل ما تضيف سيرفر جديد لأن hash(key) % N بيغيّر مكان كل المفاتيح، Consistent Hashing بيخلّي 2% بس من المفاتيح تتنقل بدل 98%. شرح للمحترف بمثال موزّع البريد للمبتدئ، تعريف علمي دقيق من ورقة Karger 1997، كود Python شغّال يقيس الفرق فعليًا، فكرة virtual nodes ومتى تحتاج 150 vnode لكل سيرفر، أرقام مقاسة، trade-offs، والحالات اللي ما تستخدمهوش فيها.
لو الكود بتاعك بيجيب بيانات من 50 API بـ requests في loop، هتقعد تستنى 18 ثانية مجموعها 99% انتظار شبكة. async/await بسطرين بينزّل الزمن لـ 0.7 ثانية على نفس الـ core. مقال للمحترف بمثال جارسون الكافيه للمبتدئ، تعريف علمي للـ event loop وعلاقته بالـ GIL، كود httpx + asyncio.gather شغّال على Python 3.12، أرقام مقاسة (35x تحسّن، استهلاك CPU أقل من 4%)، الفخ الكلاسيكي في خلط sync مع async، و 3 حالات لازم تستخدم فيها multiprocessing بدل asyncio.
لو شغّلت 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.
لو الـ 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، وحالات لا تستخدمه فيها.
لو سيرفرك Python بيخزن ملايين الـ instances وبتدفع في AWS فاتورة RAM ضخمة، سطر واحد اسمه __slots__ ممكن يقلل الذاكرة 40-60%. مقال للمحترف بمثال درج المكتب للمبتدئ، تعريف علمي دقيق لـ PyDictObject في CPython، كود Python 3.12 شغّال مع أرقام مقاسة بـ pympler، شرح كسر الـ inheritance الكلاسيكي، trade-offs، وحالات لا تستخدمه فيها.
لو نفس الـ loop عندك بياخد 1.9 ثانية مرة و 11.5 ثانية مرة تانية بنفس البيانات، السبب مش cache ولا compiler. السبب وحدة hardware اسمها Branch Predictor جوّا الـ CPU. مقال للمحترف بمثال حارس النادي، تعريف علمي لـ TAGE وspeculative execution، كود C++ شغّال، أرقام perf مقاسة، حل branchless، trade-offs، ومتى لا تشغّل بالك بالموضوع.