Vydanie JavaScript Node.js 13.0 na strane servera

K dispozícii uvoľnenie Node.js 13.0,platformy na spúšťanie sieťových aplikácií v JavaScripte. Zároveň bola dokončená stabilizácia predchádzajúcej vetvy Node.js 12.x, ktorá bola presunutá do kategórie dlhodobých podporných vydaní, ktorých aktualizácie vychádzajú 4 roky. Podpora predchádzajúcej vetvy LTS Node.js 10.0 potrvá do apríla 2021 a podpora poslednej vetvy LTS 8.0 do januára 2020.

Hlavné vylepšenia:

  • Motor V8 aktualizovaný na verziu 7.8, ktorá využíva nové techniky optimalizácie výkonu, zlepšuje deštrukciu objektov, znižuje spotrebu pamäte a skracuje čas prípravy na spustenie WebAssembly;
  • V predvolenom nastavení je povolená plná podpora internacionalizácie a Unicode založeného na knižnici ICU (International Components for Unicode), ktorý umožňuje vývojárom písať kód podporný pracovať s rôznymi jazykmi a lokalitami. Modul full-icu je teraz štandardne nainštalovaný;
  • API stabilizované Pracovné vlákna, dovoľovať vytvárať viacvláknové slučky udalostí. Implementácia je založená na module worker_threads, ktorý umožňuje spúšťať kód JavaScript vo viacerých paralelných vláknach. Stabilná podpora pre Workers Threads API bola tiež spätne portovaná do vetvy LTS Node.js 12.x;
  • Požiadavky na platformy sa zvýšili. Teraz zostaviť potrebný aspoň macOS 10.11 (vyžaduje Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Vylepšená podpora pre Python 3. Ak má systém Python 2 aj Python 3, Python 2 sa stále používa, ale bola pridaná možnosť zostavovať, keď je v systéme nainštalovaný iba Python 3;
  • Stará implementácia analyzátora HTTP („—http-parser=legacy“) bola odstránená. Odstránené alebo zastarané volania a vlastnosti FSWatcher.prototype.start(), ChildProcess._channel, metóda open() v objektoch ReadStream a WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • po ukázalo sa aktualizácia 13.0.1, ktorá rýchlo opravila niekoľko chýb. Predovšetkým bol vyriešený problém s npm 6.12.0, ktorý zobrazuje varovanie o použití nepodporovanej verzie.

Pripomeňme, že platformu Node.js možno použiť ako na serverovú podporu webových aplikácií, tak aj na vytváranie bežných klientskych a serverových sieťových programov. Na rozšírenie funkcionality aplikácií pre Node.js veľké množstvo kolekcia modulov, v ktorej nájdete moduly s implementáciou serverov a klientov HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly pre integráciu s rôznymi webovými frameworkami, WebSocket a Ajax handlery, konektory pre DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), šablónové enginy, CSS enginy, implementácie kryptografických algoritmov a autorizačných systémov (OAuth), XML parsery.

Na spracovanie veľkého počtu paralelných požiadaviek používa Node.js asynchrónny model vykonávania kódu založený na neblokujúcom spracovaní udalostí a definovaní obsluhy spätného volania. Podporované metódy pre multiplexné pripojenia zahŕňajú epoll, kqueue, /dev/poll a select. Knižnica slúži na multiplexovanie spojení libuv, ktorá je nadstavbou nad libev na systémoch Unix a cez IOCP na Windows. Na vytvorenie oblasti vlákien sa používa knižnica libeio, na vykonávanie DNS dotazov v neblokovanom režime je integrovaný c-ares. Všetky systémové volania, ktoré spôsobujú blokovanie, sú vykonávané v rámci oblasti vlákien a potom, podobne ako obslužné programy signálov, odovzdávajú výsledok svojej práce späť cez nepomenovanú rúrku. Spustenie kódu JavaScript je zabezpečené pomocou nástroja vyvinutého spoločnosťou Google V8 (Microsoft navyše vyvíja verziu Node.js s jadrom Chakra-Core).

Node.js je vo svojej podstate podobný frameworkom Perl AnyEvent, Ruby Event Machine, Python Twisted и implementáciu udalosti v Tcl, ale slučka udalostí v Node.js je pred vývojárom skrytá a pripomína spracovanie udalostí vo webovej aplikácii spustenej v prehliadači. Pri písaní aplikácií pre node.js je potrebné vziať do úvahy špecifiká programovania riadeného udalosťami, napríklad namiesto vykonania „var result = db.query(“select..“);“ s čakaním na dokončenie práce a následným spracovaním výsledkov využíva Node.js princíp asynchrónneho vykonávania, t.j. kód sa pretransformuje na „db.query(“select..“, funkcia (výsledok) {spracovanie výsledku});“, v ktorej riadenie okamžite prejde na ďalší kód a výsledok dopytu sa spracuje po príchode údajov. .

Zdroj: opennet.ru

Pridať komentár