مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو goroutines بتاعتك بتشتغل صح كل واحدة لوحدها لكن لما تجمع نتيجتهم بيظهر race conditions و sync.Mutex متشعبط في كل دالة، انت بتحارب اللغة. مقال للمتوسط بمثال ماسورة المطبخ للمبتدئ، تعريف علمي للـ CSP من ورقة Hoare 1978، كود Go 1.22 شغّال يجلب 3 APIs بالتوازي في 0.42 ثانية بدل 1.4 ثانية، شرح Buffered vs Unbuffered وفخ الـ deadlock، 4 trade-offs حقيقية، ومتى Channels مش الحل.
لو شغّلت 1000 Goroutine بيكتبوا في slice واحد بدون تنسيق، Go runtime مش بيرفع خطأ. بس الـ data race بيحصل بصمت. Channels بتحل ده بسطر واحد بدل 14 سطر mutex. مقال للمتوسط بمثال خط الإنتاج، تعريف من ورقة CSP لـ Hoare 1978، Worker Pool شغّال على Go 1.22، أرقام مقاسة (142 سطر mutex → 38 سطر channels)، 4 trade-offs، ومتى mutex أحسن من channel.
لو dashboard المشتركين بتاعك بيتقل لما القائمة تعدّي مليون سجل، JavaScript مش بطيئة — انت بتستخدم Array.includes() في مكان مفروض فيه Set.has(). مقال للمبتدئ بمثال دفتر التليفونات بفهرس، تعريف علمي للـ Hash Table من ECMAScript 2025 و V8، كود JavaScript شغّال على Node.js 22، أرقام مقاسة على 5 مليون email (تحسّن 5 مليون ضعف بسطر كود)، الفرق الحقيقي بين Map و Object، 4 trade-offs خفية في الذاكرة و JSON.stringify، ومتى Set مضيعة وقت أصلًا.
لو dashboard بتاعك بيتجمّد 4 ثواني لمّا المستخدم يرفع CSV حجمه 80MB، JavaScript مش بطيء — هو شغّال على thread واحد بيعمل كل حاجة. Web Workers بـ 30 سطر بتنقل العملية الثقيلة لـ background thread فالـ UI يفضل متجاوب 60fps. مقال للمتوسط بمثال مطعم الكاشير الواحد للمبتدئ، تعريف علمي من HTML Living Standard، كود شغّال على Chrome 130 و Vite 5، أرقام مقاسة على CSV 82MB (UI freeze من 4,180ms لـ 18ms)، 4 trade-offs حقيقية، ومتى Web Worker بيكون مبالغة هندسية.
لو for loop فيه setTimeout و var، JavaScript بتطبعلك آخر قيمة 5 مرات. السبب اسمه Closure. مقال للمبتدئ بمثال الكاشير، تعريف من ECMAScript Spec، 3 حلول بكود شغّال على Chrome 130، حالة إنتاج كلّفت 18 ألف دولار، 4 trade-offs، ومتى Closure بتسرّب ذاكرة بدون ما تحس.
لو سيرفرك بيسأل DB كل request "هل العميل ده في القائمة السودا؟" على 8 مليون سجل، أنت بتدفع 12ms لكل طلب. Bloom Filter بيرد على نفس السؤال في 0.4 microsecond، بـ 1.2MB ذاكرة بدل 640MB. مقال للمتوسط بمثال بوّاب الحفلة للمبتدئ، تعريف علمي من ورقة Bloom 1970 وتوثيق Cassandra، كود Python شغّال على mmh3 + bitarray، أرقام مقاسة من API بـ 12K req/s، 4 trade-offs حقيقية، ومتى Bloom Filter بيكون الاختيار الغلط.
لو بتكتب نفس 5 سطور logging قبل وبعد كل function، أنت بتضيف 200 سطر زيادة في ملف فيه 40 function. Decorator واحد بـ 8 سطور بيغطّي كل الـ 40 بدون ما تلمس واحدة فيهم. مقال للمتوسط بمثال أمين فندق للمبتدئ، تعريف علمي من PEP 318، كود شغّال على Python 3.12 لقياس الزمن وللـ Caching والـ Retry، أرقام مقاسة من API بـ 12,000 طلب يومي (latency من 142ms لـ 8ms)، trade-offs حقيقية، ومتى Decorator يبقى اختيار غلط.
لو عندك 50 دالة Python وعايز تضيف Logging و Timing بدون تكرار، Decorators بـ 8 سطور بتعملك ده. مقال للمتوسط بمثال موظف الاستقبال للمبتدئ، تعريف من PEP 318، كود شغّال على Python 3.12، وأرقام مقاسة من خدمة دفع بـ 12 endpoint (MTTD نزل من 4 ساعات لـ 6 دقائق).
لو كاتب 250 unit test وكلها خضراء وحاسس إن الكود متغطّى، الإحساس ده غلط. Property-Based Testing بيولّد 10,000 مدخل عشوائي ويكشف edge cases مفكّرتش فيها. مقال للمحترف بمثال مصنع الزيت للمبتدئ، تعريف علمي من ورقة Claessen و Hughes 2000، كود fast-check 3.19 شغّال على Node.js 22 + Vitest، أرقام من Jane Street ومن fast-check trophies (280+ bug)، 4 trade-offs، ومتى ما يستحقش الاستثمار.