المدونة
مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
GIL في Python للمحترف: ليه threading مش بيسرّع كودك حتى مع 16 core
لو شغّلت 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.
Speculative Decoding للمحترف: ازاي تخلّي LLM يرد 3x أسرع بدون ما تخسر دقة
لو inference الـ Llama 3 70B بياخد 8 ثواني والمستخدم بيقفل التاب، Speculative Decoding بيقطع الزمن للنص بنفس الموديل ونفس الجودة. الفكرة: موديل صغير سريع بيخمّن، موديل كبير بيتأكد بالتوازي. مقال للمحترف بمثال الكاشير للمبتدئ، التعريف العلمي الدقيق للـ acceptance probability من ورقة DeepMind 2023، كود vLLM 0.6+ شغّال، أرقام مقاسة على H100 (24 → 71 توكن/ثانية)، trade-offs الذاكرة والـ batching، وحالات لا تستخدم فيها التقنية أصلاً.
أتمتة Performance Budget على CI: ارفض أي PR يخفّض الأداء قبل الـ merge
لو تطبيقك بيتقل 80ms كل أسبوع وانت ما تشعرش، السبب مش مهندس عمل غلطة كبيرة، السبب 30 PR كل واحد ضايف ضريبة صغيرة. شرح للمحترف بمثال المطعم للمبتدئ، إعداد Lighthouse CI كامل على GitHub Actions، assertions على LCP و INP و CLS و bundle size، أرقام مقاسة من فريق 12 مطور، trade-offs زمن الـ build و false positives، ومتى لا تستخدمها.
Hybrid Search للمحترف: ادمج BM25 مع Dense Embeddings وارفع دقة الاسترجاع لـ 96%
لو الـ RAG بتاعك بيفشل في الأسئلة اللي فيها رقم منتج أو UUID أو اسم خطأ تقني، Dense search لوحده مش كفاية. Hybrid Search بيدمج BM25 مع Embeddings عبر Reciprocal Rank Fusion ويرفع الاسترجاع من 78% لـ 96% على BEIR. مقال للمحترف بمثال أمين المكتبة للمبتدئ، تعريف علمي للـ RRF، كود Python شغّال على rank_bm25 + sentence-transformers، أرقام مقاسة، trade-offs، وحالات لا تستخدمه فيها.
Bloom Filters بالعربي: ابحث في 100 مليون مفتاح بـ 114MB رام بدل 4GB
لو cache فيه 100 مليون مفتاح وكل request بيدوّر هل المفتاح موجود قبل ما يروح للـ DB، Bloom filter بيخلّيك تجاوب على السؤال ده في 90 نانو ثانية بـ 114MB رام بدل 4GB. مقال للمستوى المتوسط/المحترف بمثال قائمة الفرح، تعريف علمي دقيق، كود Python و Redis شغّال، أرقام مقاسة، trade-offs، وحالات لا تستخدم فيها.
PgBouncer بالعربي: خدّم 10,000 عميل من 100 اتصال DB فقط
لو السيرفر بيتجمد عند 300 اتصال متزامن على PostgreSQL، المشكلة مش في الـ DB. كل اتصال جديد بياكل 10MB رام و3-5ms في الـ handshake. PgBouncer بيخلّي 10,000 عميل يستخدموا 100 اتصال DB بسطر إعداد. شرح للمستوى المتوسط/المحترف بمثال السوبر ماركت، الأوضاع الثلاثة (session/transaction/statement)، إعداد شغّال، أرقام مقاسة، trade-offs، وحالات لا يصلح فيها.
Token Bucket للمحترف: ابنِ Rate Limiter في الذاكرة يخدم 50 ألف طلب/ثانية بدون Redis
لو الـ 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، وحالات لا تستخدمه فيها.
Parallel Tool Use في Claude API للمحترف: نفّذ 5 أدوات في 1.2 ثانية بدل 6
لو الـ agent بتاعك بياخد 6 ثواني علشان يجيب الطقس + سعر السهم + ميعاد الميتنج + بيانات العميل + الفاتورة، المشكلة مش الموديل بطيء. المشكلة إنك بتنده الأدوات تسلسلياً بدل ما توازيها. شرح للمحترف بمثال طلب الكافيه للمبتدئ، تعريف علمي لـ disable_parallel_tool_use ودورة الـ tool_use blocks، كود Python شغّال على Anthropic SDK 0.40+، أرقام مقاسة من إنتاج، trade-offs الذاكرة والتكلفة، وحالات لازم تعطّل التوازي فيها.
Python __slots__: ازاي توفر 60% من ذاكرة الـ instances بسطر واحد
لو سيرفرك Python بيخزن ملايين الـ instances وبتدفع في AWS فاتورة RAM ضخمة، سطر واحد اسمه __slots__ ممكن يقلل الذاكرة 40-60%. مقال للمحترف بمثال درج المكتب للمبتدئ، تعريف علمي دقيق لـ PyDictObject في CPython، كود Python 3.12 شغّال مع أرقام مقاسة بـ pympler، شرح كسر الـ inheritance الكلاسيكي، trade-offs، وحالات لا تستخدمه فيها.
eBPF للمحترف: راقب syscalls على production بدون restart للتطبيق
لو endpoint بياخد 2.4 ثانية والـ APM بيقول DB سليمة وCPU 30%، الزمن المفقود في المسافة بين الـ kernel والـ application thread. eBPF بيريك كل syscall وكل packet بدون restart للتطبيق وبأقل من 1% overhead. مقال للمحترف بمثال sensors المصنع، تعريف علمي دقيق لـ verifier وkprobes وXDP، أوامر bpftrace قابلة للنسخ، أرقام مقاسة من production، trade-offs الصلاحيات، وحالات لا تستخدم فيها eBPF أصلاً.