انتشار پلتفرم جاوا اسکریپت سمت سرور Node.js 13.0

در دسترس رهایی node.js 13.0، پلتفرم هایی برای اجرای برنامه های شبکه در جاوا اسکریپت. همزمان، تثبیت شعبه قبلی Node.js 12.x نیز به پایان رسیده است که به دسته انتشارات پشتیبانی طولانی مدت منتقل شده است که آپدیت های آن به مدت 4 سال منتشر می شود. پشتیبانی از شاخه LTS قبلی Node.js 10.0 تا آوریل 2021 و پشتیبانی از آخرین شاخه LTS 8.0 تا ژانویه 2020 ادامه خواهد داشت.

اصلی پیشرفت ها:

  • موتور V8 به نسخه به روز شد 7.8که از تکنیک های جدید بهینه سازی عملکرد استفاده می کند، ساختارشکن را بهبود می بخشد، مصرف حافظه را کاهش می دهد و زمان آماده سازی برای اجرای WebAssembly را کاهش می دهد.
  • پشتیبانی کامل از بین المللی سازی و یونیکد مبتنی بر کتابخانه به طور پیش فرض فعال است ICU (کامپوننت های بین المللی برای یونیکد)، که به توسعه دهندگان امکان نوشتن کد را می دهد حمایت کننده با زبان ها و زبان های مختلف کار کنید. ماژول full-icu اکنون به طور پیش فرض نصب شده است.
  • API تثبیت شد موضوعات کارگری, اجازه می دهد ایجاد حلقه های رویداد چند رشته ای پیاده سازی بر اساس ماژول worker_threads است که به شما امکان می دهد کد جاوا اسکریپت را در چندین رشته موازی اجرا کنید. پشتیبانی پایدار برای Workers Threads API نیز به شاخه LTS Node.js 12.x بکپورت شده است.
  • الزامات برای پلتفرم ها افزایش یافته است. برای مونتاژ الان مورد نیاز است حداقل macOS 10.11 (نیاز به Xcode 10)، AIX 7.2، Ubuntu 16.04، Debian 9، EL 7، Alpine 3.8، Windows 7/2008؛
  • پشتیبانی بهبود یافته از پایتون 3. اگر سیستم دارای هر دو پایتون 2 و پایتون 3 باشد، پایتون 2 همچنان استفاده می شود، اما قابلیت ساخت زمانی که فقط پایتون 3 روی سیستم نصب شده باشد اضافه شده است.
  • پیاده سازی قدیمی تجزیه کننده HTTP ("—http-parser=legacy") حذف شده است. فراخوانی ها و ویژگی های حذف شده یا منسوخ شده FSWatcher.prototype.start()، ChildProcess._channel، open() در اشیاء ReadStream و WriteStream، request.connection، answer.connection، module.createRequireFromPath();
  • بعدی بیرون آمد به روز رسانی 13.0.1 که به سرعت چندین باگ را برطرف کرد. به طور خاص، مشکل npm 6.12.0 با نمایش هشدار در مورد استفاده از نسخه پشتیبانی نشده حل شده است.

به یاد بیاوریم که پلتفرم 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 می‌شود. این کتابخانه برای اتصالات چندگانه استفاده می شود لیبوو، که یک روبنا است لیبو در سیستم های یونیکس و بیش از IOCP در ویندوز. یک کتابخانه برای ایجاد یک Thread Pool استفاده می شود لیبیو، برای انجام پرس و جوهای DNS در حالت غیر مسدود کننده یکپارچه شده است c-ares. تمام فراخوانی‌های سیستمی که باعث مسدود شدن می‌شوند، در داخل thread pool اجرا می‌شوند و سپس، مانند کنترل‌کننده‌های سیگنال، نتیجه کار خود را از طریق یک لوله بدون نام ارسال می‌کنند. اجرای کد جاوا اسکریپت با استفاده از موتور توسعه یافته توسط گوگل تضمین می شود V8 (علاوه بر این، مایکروسافت در حال توسعه نسخه Node.js با موتور Chakra-Core است).

Node.js در هسته خود شبیه به فریمورک ها است Perl AnyEvent, ماشین رویداد روبی, Python Twisted и پیاده سازی رویدادها در Tcl، اما حلقه رویداد در Node.js از برنامه‌نویس پنهان است و شبیه مدیریت رویداد در یک برنامه وب است که در مرورگر اجرا می‌شود. هنگام نوشتن برنامه‌های کاربردی برای node.js، به‌عنوان مثال، به‌جای انجام «var result = db.query («انتخاب.»)»، باید ویژگی‌های برنامه‌نویسی مبتنی بر رویداد را در نظر گرفت. با انتظار برای اتمام کار و پردازش بعدی نتایج، Node.js از اصل اجرای ناهمزمان استفاده می کند، یعنی. کد به "db.query("انتخاب.."، تابع (نتیجه) {result processing}) تبدیل می‌شود، که در آن کنترل بلافاصله به کد بعدی منتقل می‌شود، و نتیجه پرس و جو با رسیدن داده‌ها پردازش می‌شود. .

منبع: opennet.ru

اضافه کردن نظر