البرمجة بالعربي
مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
الـ Bloom Filter: تتأكد إن العنصر مش موجود بذاكرة صغيرة جدًا
لو عندك مليون إيميل وعايز تتأكد بسرعة إن إيميل جديد مش موجود من غير ما تضرب الداتابيز، الـ Bloom Filter بيعمل ده بذاكرة 1.1 ميجا بس. شرح بمثال البواب ثم علميًا، مع كود بايثون شغّال، الأرقام، الـ trade-offs، ومتى لا تستخدمه، مع مصادر.
الـ ReDoS: إزاي تعبير نمطي واحد وقّع Cloudflare 27 دقيقة
سطر regex واحد قادر يرفع استهلاك المعالج إلى 100% ويطفّئ خدمتك عالميًا. المقال للمحترف يشرح التراجع الكارثي (catastrophic backtracking) بمثال بسيط ثم علميًا، مع كود Python يقيس الانفجار الأسّي بالأرقام، حادثة Cloudflare الحقيقية، الحل بمحركات الوقت الخطّي مثل RE2، الـ trade-offs، ومتى لا تشغل بالك، مع مصادر رسمية.
فلتر بلوم: تعرف إن العنصر "أكيد مش موجود" في خانة واحدة
فلتر بلوم يرد على سؤال "العنصر موجود؟" في خانة ذاكرة واحدة بدون ما يلمس القرص. اعرف كيف يعمل بمثال بسيط ثم علميًا، مع كود Python شغّال، معادلة الخطأ الإيجابي بأرقام حقيقية، الـ trade-offs، ومتى لا تستخدمه، مع مصادر.
الـ Integer Overflow: ليه (low + high) / 2 باج في كل بحث ثنائي تقريبًا
سطر رياضي بسيط في قلب البحث الثنائي ظل باجًا خفيًا في المكتبات القياسية عشرين سنة. المقال للمحترف يشرح تجاوز السعة العددية بنظام المتممة الثنائية، بمثال العدّاد، ثم علميًا، مع كود Java يفجّر الخطأ بأرقام دقيقة، الإصلاح، سيناريو واقعي (Ariane 5 وJDK)، وtrade-offs، ومتى لا تشغل بالك، مع مصادر رسمية.
False Sharing: ليه توزيع الشغل على 8 أنوية يخلّي كودك أبطأ
تقدر تكسب سرعة 7 أضعاف في كود متعدد الخيوط بدون ما تغيّر سطر واحد في المنطق. المقال يشرح الـ false sharing على مستوى الـ cache line، بكود Go يقيس الفرق، الحل بالـ padding، والمقايضات، ومتى لا تشغل بالك، بمصادر رسمية.
ReDoS: كيف يعطّل تعبير نمطي واحد خادمك بالكامل
تعبير نمطي واحد فيه كمّيتان متداخلتان قد يحوّل مدخلًا من 30 حرفًا إلى مليار خطوة ويشلّ المعالج عند 100%. اعرف سبب التراجع الكارثي، اقِس المشكلة بكود بايثون شغّال، وأصلحها بـ RE2 أو المجموعات الذرّية، مع حادثة Cloudflare الحقيقية ومصادر رسمية.
جامع القمامة: ليه تطبيقك بيتجمّد فجأة، وإزاي تقيس التوقّف وتقلّله
التوقّف المفاجئ لمئات المللي ثانية في خدمتك غالبًا سببه جامع القمامة وهو بيوقف كل الخيوط عشان ينضّف الذاكرة. المقال يشرح ليه بيحصل بمثال بسيط ثم علميًا، ويديك كود Go تقيس بيه توقّفك الحقيقي وتقلّله بضبط GOGC مع مقايضة الذاكرة، ومتى الموضوع مايستاهلش تعبك، مع مصادر رسمية.
ليه فرز المصفوفة بيخلّي نفس الحلقة أسرع 6 مرات؟ توقّع التفرّع
حلقة واحدة على نفس البيانات تطلع أسرع 6 مرات لو رتّبت المصفوفة قبلها. المقال للمحترف يشرح توقّع التفرّع بمثال عامل التحويلة، ثم تشريح خط الأنابيب والتنفيذ التخميني، مع كود C وقياسات، حل branchless، الـ trade-offs، ومتى متشغلش بالك، مع مصادر.
الـ Bloom Filter: تشيك على مليون عنصر بذاكرة أقل 83 مرة
فحص وجود عنصر في مجموعة مليون عنصر بـ1.2 ميجابايت بدل 100، مقابل 1% إيجابيات كاذبة و0% سلبيات كاذبة. شرح للمحترفين بمثال حارس الحفلة ثم علميًا، مع معادلة الحجم وكود Python شغّال، سيناريوهات Cassandra وChrome وCDN، الـ trade-offs، ومتى لا تستخدمه، مع مصادر.