مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو شفت كود فيه دالة بترجّع دالة تانية ولسه فاكرة متغيرات الأولى، اللي بتشوفه ده اسمه Closure. شرح للمبتدئ بمثال خزنة البنك، تعريف علمي من ECMAScript spec، كود JavaScript شغّال يبني عدّاد آمن بـ private state في 12 سطر، الفخ الكلاسيكي var داخل for loop، أرقام مقاسة من Chrome DevTools، 4 trade-offs حقيقية، ومتى لا تستخدم Closure أصلاً.
لو Node.js بتاعك بيستهلك 280MB بعد ساعة وبيوصل 3.8GB بعد 8 ساعات بدون زيادة في الـ traffic، عندك memory leak. شرح للمتوسط للـ V8 Garbage Collector بمثال مكتب الموظفين للمبتدئ، 4 أنماط تسريب شائعة بكود قابل للنسخ، WeakMap و WeakRef لحلها، أرقام مقاسة من إنتاج، 4 trade-offs، ومتى ما تركّزش على الموضوع أصلاً.
لو شغّلت 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)، ومتى لا تستخدم أي منهما أصلاً.
لو search box بتاعك بيرسل طلب لكل حرف بيكتبه المستخدم، تطبيقك بيدفع 9x من الـ bandwidth والـ DB بتسخن من غير سبب. Debounce و Throttle بـ 6 سطور JavaScript بيخفّضوا الطلبات 92%. مقال للمبتدئ بمثال حارس البنك، تعريف علمي دقيق، كود قابل للنسخ، أرقام مقاسة من إنتاج (4.1M طلب يومي → 66K، توفير $298 شهرياً)، 4 trade-offs حقيقية، ومتى لا تستخدم أي منهم.
لو فريقك مكرّر 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، مع المصادر الرسمية.
لو ملف log عندك حجمه 4GB و pandas.read_csv بيقعلك اللابتوب، Python Generators بيعالج نفس الملف بـ 32MB ذاكرة بدلاً من 4.2GB. شرح للمتوسط بمثال المكتبة للمبتدئ، التعريف العلمي للـ lazy evaluation من PEP 255، كود Python 3.12 شغّال على ملف 11 مليون سطر، أرقام مقاسة فعلياً (توفير 99.2% ذاكرة)، 4 trade-offs حقيقية، ومتى لا تستخدم Generator أصلاً.
لو search box عندك بياخد 80ms يكمل كلمة على قائمة كبيرة، المشكلة مش في السيرفر — الخوارزمية بتدور بكل كلمة. Trie بيبحث على مستوى الحروف، فالنتيجة بترجع في أقل من 1ms مهما كان حجم القاموس. مقال للمبتدئ بمثال دفتر التليفون، تعريف علمي للـ Prefix Tree، كود Python شغّال في 50 سطر، أرقام مقاسة على 100,000 كلمة عربية، 4 trade-offs، ومتى لا تستخدمه أصلاً.
لو محتاج تتأكد إن رابط مش موجود في قائمة سوداء فيها مليار URL، تحميل القائمة كلها بيكلّفك 30 جيجا رام. Bloom Filter بيرد على نفس السؤال في 8 ميجا رام و600 نانو ثانية، بمعدل خطأ تحت 1%. مقال للمستوى المتوسط بمثال موظف الحفلة للمبتدئ، تعريف علمي دقيق من ورقة Bloom 1970، كود Python شغّال على mmh3 + bitarray، أرقام مقاسة من Chrome Safe Browsing وApache Cassandra، 4 trade-offs، ومتى لا تستخدمه فيها مع المصادر الرسمية.