Lansarea platformei server-side JavaScript Node.js 13.0

Disponibil lansare Node.js 13.0, platforme pentru executarea aplicațiilor de rețea pe JavaScript. În același timp, s-a finalizat stabilizarea versiunii anterioare Node.js 12.x, care a fost mutată în categoria versiunilor cu suport pe termen lung, actualizările pentru acestea fiind lansate timp de 4 ani. Suportul pentru versiunea LTS anterioară Node.js 10.0 va dura până în aprilie 2021, iar pentru versiunea LTS precedentă 8.0 până în ianuarie 2020.

Principalele îmbunătățiri:

  • Motorul V8 a fost actualizat la versiunea 7.8, care include noi metode de optimizare a performanței, îmbunătățirea destructurării obiectelor, reducerea consumului de memorie și scurtarea timpului de pregătire pentru execuția WebAssembly;
  • Suportul complet pentru internaționalizare și Unicode bazat pe biblioteci este activat implicit ICU (Componente Internaționale pentru Unicode), care permite dezvoltatorilor să scrie cod care sprijină
  • lucrul cu diferite limbi și locale. Modulul full-icu este acum instalat implicit; API-ul, permițând Workers Threads
  • permite crearea de bucle de procesare a evenimentelor pe mai multe fire (event loop). Implementarea se bazează pe modulul worker_threads, care permite rularea codului JavaScript în mai multe fire paralele. Suportul stabil pentru API-ul Workers Threads a fost, de asemenea, exportat în versiunea LTS Node.js 12.x; este necesar Cerințele pentru platforme au fost crescut. Pentru compilare este necesar acum
  • cel puțin macOS 10.11 (se necesită Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Suportul pentru Python 3 a fost îmbunătățit. Când există atât Python 2 cât și Python 3 în sistem, Python 2 este folosit în continuare, dar a fost adăugată posibilitatea de compilare cu doar Python 3 disponibil în sistem;
  • A fost eliminată vechea implementare a parser-ului HTTP („--http-parser=legacy”). Au fost eliminate sau transformate în apeluri și proprietăți deprecate FSWatcher.prototype.start(), ChildProcess._channel, metoda open() în obiectele ReadStream și WriteStream, request.connection, response.connection, module.createRequireFromPath(); a fost lansată Următoarea

actualizare 13.0.1, în care au fost corectate câteva erori. Printre acestea, a fost rezolvată problema cu avertismentul privind utilizarea unei versiuni nesuportate în npm 6.12.0. Reamintim că platforma Node.js poate fi utilizată atât pentru întreținerea serverului aplicațiilor web, cât și pentru crearea de programe de rețea client-server obișnuite. Pentru a extinde funcționalitățile aplicațiilor Node.js, a fost pregătită o mare, care poate găsi module pentru implementarea serverelor și clienților HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module pentru integrarea cu diferite framework-uri web, gestionari WebSocket și Ajax, conectori pentru SGBD-uri (MySQL, PostgreSQL, SQLite, MongoDB), motoruri de template-uri, CSS, implementări de algoritmi criptografici și sisteme de autorizare (OAuth), parsere XML.

Pentru a asigura procesarea unui număr mare de cereri paralele, Node.js folosește un model de execuție a codului asincron, bazat pe gestionarea evenimentelor într-un mod non-blocant și definirea gestionatorilor de callback. Ca metode de multiplexare a conexiunilor, sunt susținute metode precum epoll, kqueue, /dev/poll și select. Pentru multiplexarea conexiunilor se folosește biblioteca libuv, care este un strat deasupra libev în sistemele Unix și deasupra IOCP în Windows. Pentru a crea un pool de fire de execuție (thread pool), se folosește biblioteca libeio, pentru a efectua cereri DNS într-un mod non-blocant este integrat c-ares. Toate apelurile de sistem care generează blocare sunt efectuate în interiorul pool-ului de fire și apoi, la fel ca gestionarii de semnale, transmit rezultatul muncii lor înapoi printr-un canal anonimizat (pipe). Executarea codului JavaScript este asigurată prin utilizarea motorului dezvoltat de Google V8 (în plus, Microsoft dezvoltă o variantă Node.js cu motorul Chakra-Core).

În esență, Node.js este similar cu framework-urile Perl AnyEvent, Ruby Event Machine, Python Twisted și implementarea evenimentelor în Tcl, dar ciclul de procesare a evenimentelor (event loop) în Node.js este ascuns de dezvoltator și semează procesarea evenimentelor într-o aplicație web care funcționează în browser. Când scrieți aplicații pentru node.js, trebuie să luați în considerare specificitatea programării orientate pe evenimente, de exemplu, în loc de a executa „var result = db.query(„select..”);” așteptând finalizarea muncii și procesarea ulterioară a rezultatelor, în Node.js se folosește principiul execuției asincrone, adică codul se transformă în „db.query(„select..”, function (result) {procesarea rezultatului});”, unde controlul va trece imediat la codul ulterior, iar rezultatul cererii va fi procesat pe măsură ce datele sosesc.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster