إصدار JavaScript Node.js 16.0 من جانب الخادم

تم إصدار Node.js 16.0، وهو عبارة عن منصة لتشغيل تطبيقات الشبكة في JavaScript. تم تصنيف Node.js 16.0 على أنه فرع دعم طويل المدى، ولكن سيتم تعيين هذه الحالة فقط في أكتوبر، بعد الاستقرار. سيتم دعم Node.js 16.0 حتى أبريل 2023. ستستمر صيانة فرع LTS السابق من Node.js 14.0 حتى أبريل 2023، والعام السابق لآخر فرع LTS 12.0 حتى أبريل 2022. سيتم إيقاف دعم فرع LTS 10.0 خلال 10 أيام.

التحسينات الرئيسية:

  • تم تحديث محرك V8 إلى الإصدار 9.0 (استخدم Node.js 15 الإصدار 8.6)، والذي يسمح بتنفيذ ميزات مثل خاصية "الفهارس" للتعبيرات العادية (تتضمن مصفوفة بمواضع البداية والنهاية لمجموعات التطابقات) ، طريقة Atomics في Node.js 16 .waitAsync (إصدار غير متزامن من Atomics.wait)، دعم استخدام الكلمة الأساسية انتظار في الوحدات النمطية ذات المستوى الأعلى. تم تسريع استدعاءات الوظائف في المواقف التي لا يتوافق فيها عدد الوسائط التي تم تمريرها مع المعلمات المحددة في الوظيفة.
  • تم تثبيت واجهة برمجة تطبيقات Timers Promises، مما يوفر مجموعة بديلة من الوظائف للعمل مع المؤقتات التي تُرجع كائنات Promise كمخرجات، مما يلغي الحاجة إلى استخدام util.promisify(). استيراد {setTimeout} من "المؤقتات/الوعود"؛ وظيفة غير متزامنة run() { انتظار setTimeout(5000); console.log('مرحبا أيها العالم!'); } يجري()؛
  • تمت إضافة تطبيق تجريبي لـ Web Crypto API، وهو مصمم لتنفيذ عمليات التشفير الأساسية على جانب تطبيقات الويب، مثل معالجة تجزئات التشفير، وإنشاء التوقيعات الرقمية والتحقق منها، وترميز البيانات وفك تشفيرها باستخدام طرق تشفير مختلفة، وإنشاء تشفير آمن أرقام عشوائية. توفر واجهة برمجة التطبيقات (API) أيضًا وظائف لإنشاء المفاتيح وإدارتها.
  • تم تحديث N-API (واجهة برمجة التطبيقات لتطوير الوظائف الإضافية) إلى الإصدار 8.
  • تم الانتقال إلى الإصدار الجديد من مدير الحزم NPM 7.10.
  • استقرار تنفيذ فئة AbortController، التي تعتمد على AbortController Web API وتسمح بإلغاء الإشارات في واجهات برمجة التطبيقات المحددة المستندة إلى Promise.
  • تم تثبيت دعم الإصدار الثالث من تنسيق خريطة المصدر، المستخدم لمقارنة الوحدات التي تم إنشاؤها أو معالجتها أو تعبئتها مع كود المصدر الأصلي.
  • للتوافق مع واجهات برمجة تطبيقات الويب القديمة، تمت إضافة أساليب buffer.atob(data) و buffer.btoa(data).
  • بدأ تشكيل التجميعات لأجهزة Apple الجديدة المزودة بشريحة M1 ARM.
  • على نظام التشغيل Linux، تم رفع متطلبات إصدار المترجم إلى الإصدار 8.3 من مجلس التعاون الخليجي.

تذكر أنه يمكن استخدام النظام الأساسي Node.js لصيانة الخادم لتطبيقات الويب ولإنشاء برامج شبكة عميل وخادم عادية. لتوسيع وظائف التطبيقات لـ Node.js ، تم إعداد مجموعة كبيرة من الوحدات النمطية ، حيث يمكنك العثور على وحدات مع تنفيذ HTTP و SMTP و XMPP و DNS و FTP و IMAP و POP3 وخوادم وعملاء ووحدات للتكامل مع أطر الويب المختلفة ومعالجات WebSocket و Ajax وموصلات DBMS (MySQL و PostgreSQL و SQLite و MongoDB) ومحركات القوالب ومحركات CSS وتطبيقات خوارزميات التشفير وأنظمة الترخيص (OAuth) ومحللات XML.

لضمان معالجة عدد كبير من الطلبات المتوازية ، يستخدم Node.js نموذج تنفيذ رمز غير متزامن يعتمد على معالجة الأحداث غير المحظورة وتعريف معالجات رد الاتصال. الطرق المدعومة لتوصيلات تعدد الإرسال هي epoll و kqueue و / dev / poll و select. لتعدد إرسال الاتصال ، يتم استخدام مكتبة libuv ، وهي وظيفة إضافية لـ libev على أنظمة Unix و IOCP على Windows. تُستخدم مكتبة libeio لإنشاء مجموعة مؤشرات ترابط ، ويتم دمج c-ares لإجراء استعلامات DNS في وضع عدم الحظر. يتم تنفيذ جميع استدعاءات النظام التي تسبب الحجب داخل تجمع مؤشرات الترابط ، وبعد ذلك ، مثل معالجات الإشارات ، تنقل نتيجة عملهم مرة أخرى عبر أنبوب غير مسمى (أنبوب). يتم توفير تنفيذ كود JavaScript من خلال استخدام محرك V8 الذي طورته Google (بالإضافة إلى ذلك ، تقوم Microsoft بتطوير نسخة من Node.js مع محرك Chakra-Core).

في جوهره ، يشبه Node.js Perl AnyEvent و Ruby Event Machine و Python Twisted Framework وتطبيق حدث Tcl ، لكن حلقة الحدث في Node.js مخفية عن المطور وتشبه معالجة الأحداث في تطبيق ويب قيد التشغيل في المتصفح. عند كتابة تطبيقات لـ node.js ، تحتاج إلى مراعاة تفاصيل البرمجة المدفوعة بالأحداث ، على سبيل المثال ، بدلاً من تنفيذ "var result = db.query (" select .. ")؛" مع انتظار اكتمال العمل والمعالجة اللاحقة للنتائج ، يستخدم Node.js مبدأ التنفيذ غير المتزامن ، أي يتم تحويل الكود إلى "db.query (" حدد .. "، الوظيفة (النتيجة) {معالجة النتائج}) ؛" ، حيث ينتقل عنصر التحكم على الفور إلى رمز إضافي ، وستتم معالجة نتيجة الاستعلام عند وصول البيانات.

بالإضافة إلى ذلك، يمكن الإشارة إلى أن شركة Deno، التي أسسها منشئ Node.js لتطوير الجيل التالي من منصة Deno، تلقت استثمارات بقيمة 4.9 مليون دولار. يشبه Deno في غرضه Node.js، لكنه يحاول إزالة الأخطاء المفاهيمية التي حدثت في بنية Node.js وتزويد المستخدمين ببيئة أكثر أمانًا. تجدر الإشارة إلى أن حلول أعمال Deno سيتم بناؤها على منتجات مفتوحة تمامًا، ويُنظر إلى نموذج Open Core مع وظائف مدفوعة منفصلة على أنه غير مقبول لمنصة Deno.

المصدر: opennet.ru

إضافة تعليق