جافا سكريبت مع البروميسات
جافا سكريبت مع البروميسات
ملخص:
مقدمة
كتاب «JavaScript with Promises» (في الترجمة الروسية — «جافا سكريبت مع البروميسات») من تأليف دانيال باركر صدر في عام 2015 وسرعان ما احتل مكانة كدليل مضغوط ولكن شامل للبرمجة غير المتزامنة بلغة جافا سكريبت. على الرغم من حجمه الصغير (136 صفحة فقط)، يغطي الكتاب المفاهيم الأساسية للعمل مع البروميسات — من الأساسيات إلى الأنماط المتقدمة. الكتاب موجه لبيئة Node.js، ولكن جميع الأمثلة قابلة للتطبيق أيضًا في جافا سكريبت في المتصفح. بالنسبة للموقع التعليمي pythonlib.ru، ستساعد هذه المراجعة القراء على فهم ما إذا كان الأمر يستحق قضاء الوقت في هذا الكتاب إذا كانوا بالفعل على دراية ببناء جملة JS ولكنهم يريدون فهم البرمجة غير المتزامنة على مستوى عميق.
عن ماذا يتحدث هذا الكتاب
«JavaScript with Promises» ليس مجرد دليل مرجعي لأساليب then و catch و Promise.all. يكشف باركر بشكل متسلسل عن تطور الكود غير المتزامن: من دوال الاسترجاع (callback hell) عبر البروميسات إلى المولدات و async/await (يتم ذكر الأخيرة كاحتمال مستقبلي). ينصب التركيز الرئيسي على:
- إنشاء وتكوين البروميسات؛
- معالجة الأخطاء في السلاسل غير المتزامنة؛
- التنفيذ المتوازي والمتسلسل للمهام؛
- دمج البروميسات مع الكود الحالي القائم على دوال الاسترجاع؛
- اختبار الكود غير المتزامن.
يحتوي كل فصل على أمثلة عملية على Node.js يمكن تشغيلها فورًا. الكتاب مكتوب بإيجاز، دون حشو — كل فقرة تحمل عبئًا دلاليًا.
لمن هذا الكتاب
الكتاب موجه لـ المطورين الذين هم بالفعل على دراية بأساسيات جافا سكريبت (المتغيرات، الدوال، الكائنات) ولديهم خبرة قليلة في العمل مع Node.js. بالنسبة للمبتدئين الذين بدأوا للتو في تعلم JS، سيبدو الكتاب صعبًا بسبب عدم وجود مقدمة في بناء الجملة. ومع ذلك، بالنسبة لأولئك الذين كتبوا بالفعل نصوصًا برمجية بسيطة وواجهوا مشكلة "جحيم دوال الاسترجاع"، سيكون هذا الكتاب منقذًا.
ماذا سيتعلم القارئ
بعد القراءة، ستتمكن من:
- فهم كيف يختلف البروميس عن دالة الاسترجاع العادية ولماذا هذا مهم؛
- إنشاء بروميسات خاصة بك بناءً على عمليات غير متزامنة (قراءة الملفات، طلبات HTTP)؛
- إدارة سلاسل البروميسات، وتجنب التداخل؛
- معالجة الأخطاء بشكل مركزي، دون فقدان السياق؛
- دمج البروميسات باستخدام
Promise.allوPromise.raceوPromise.allSettled؛ - إعادة كتابة الكود القديم القائم على دوال الاسترجاع إلى نمط غير متزامن حديث؛
- اختبار الدوال غير المتزامنة باستخدام الكائنات الوهمية والمؤقتات المزيفة.
نقاط القوة في الكتاب
أول ما يلفت الانتباه هو التنظيم. باركر لا يقفز من موضوع إلى آخر، بل يبني سلمًا منطقيًا: من البسيط إلى المعقد. ثانيًا — التوجه العملي. تقريبًا كل مثال يمكن نسخه وتشغيله لرؤية النتيجة. ثالثًا — التركيز على معالجة الأخطاء. في المشاريع الحقيقية، هذا الموضوع هو الذي يثير معظم الأسئلة، ويخصص له المؤلف فصلًا كاملاً. أخيرًا، الكتاب لم يصبح قديمًا: على الرغم من ظهور async/await منذ عام 2015، تظل البروميسات هي الأساس، وفهم بنيتها الداخلية ضروري للاستخدام الصحيح لبناء الجملة الحديث.
لمن يُوصى به
أوصي بهذا الكتاب:
- لمطوري الواجهة الأمامية الذين يرغبون في كتابة كود غير متزامن نظيف بدون دوال استرجاع؛
- لمطوري الواجهة الخلفية على Node.js الذين يعملون مع نظام الملفات أو قواعد البيانات أو API؛
- للمدرسين الذين يبحثون عن مادة مضغوطة لدورة تدريبية حول JS غير المتزامن؛
- لكل من ينتقل من لغات أخرى (مثل Python) إلى جافا سكريبت ويريد فهم خصوصية البرمجة غير المتزامنة.
إذا كنت تستخدم async/await بثقة بالفعل ولا تخطط لدعم المشاريع القديمة، فقد يكون الكتاب