Vydanie serverovej platformy JavaScript Node.js 13.0

Dostupný uvoľnenie Node.js 13.0, platformy na prevádzku sieťových aplikácií v jazyku JavaScript. Súčasne bola ukončená stabilizácia predchádzajúcej vetvy Node.js 12.x, ktorá bola presunutá do kategórie vydaní s dlhou podporou, pre ktoré sú aktualizácie vydávané počas 4 rokov. Podpora predchádzajúcej LTS vetvy Node.js 10.0 potrvá do apríla 2021, a predpredchádzajúcej LTS vetvy 8.0 do januára 2020.

Hlavné vylepšenia:

  • Motor V8 bol aktualizovaný na verziu 7.8, v ktorej sú implementované nové metódy optimalizácie výkonu, zlepšená deštrukturalizácia objektov, znížená spotreba pamäte a skrátený čas na vykonanie WebAssembly;
  • Predvolene je zahrnutá plná podpora internacionalizácie a Unicode na základe knižníc ICU (International Components for Unicode), ktorá umožňuje vývojárom písať kód, podporujúci prácu s rôznymi jazykmi a lokalitami. Modul full-icu je teraz nainštalovaný predvolene;
  • Stabilizované API Workers Threads, umožňujúce vytvárať viaceré vlákna spracovania udalostí (event loop). Implementácia vychádza z modulu worker_threads, ktorý umožňuje spúšťať JavaScriptový kód v niekoľkých paralelných vláknach. Stabilná podpora API Workers Threads bola taktiež spätne portovaná do LTS vetvy Node.js 12.x;
  • Zvýšené požiadavky na platformy. Pre zostavenie je teraz je potrebné minimálne 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 Python 3. Pri prítomnosti Pythonu 2 a Pythonu 3 sa naďalej používa Python 2, ale bola pridaná možnosť zostavovania pri prítomnosti len Pythonu 3;
  • Starý implementačný HTTP parser („—http-parser=legacy“) bol odstránený. Zavolané a vlastnosti, ako FSWatcher.prototype.start(), ChildProcess._channel, metóda open() v objektoch ReadStream a WriteStream, request.connection, response.connection, module.createRequireFromPath(), boli odstránené alebo presunuté medzi zastarané.
  • Následne vydané aktualizovanie 13.0.1, ktoré okamžite opravilo niekoľko chýb. Okrem iného bola vyriešená probléma s výstupom v npm 6.12.0 varovanie o používaní nepodporovanej verzie.

Pripomíname, že platforma Node.js môže byť využitá ako na serverové spravovanie Web aplikácií, tak aj na vytváranie bežných klientskych a serverových sieťových programov. Pre rozšírenie funkčnosti aplikácií pre Node.js bola pripravená veľká kolekcia modulov, v ktorom nájdete moduly s implementáciou serverov a klientov HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly na integráciu s rôznymi webovými rámcami, spracovateľmi WebSocket a Ajax, konektory k DB (MySQL, PostgreSQL, SQLite, MongoDB), šablonizátory, CSS enginy, implementácie kryptografických algoritmov a systémov autorizácie (OAuth), XML parsery.

Na zabezpečenie spracovania veľkého množstva paralelných požiadaviek využíva Node.js asynchrónny model spúšťania kódu, založený na spracovaní udalostí v neblokujúcom režime a definovaní callback spracovateľov. Ako spôsoby multiplexovania spojení sú podporované metódy ako epoll, kqueue, /dev/poll a select. Na multiplexovanie spojení sa používa knižnica libuv, ktorá je nadstavbou nad libev v systémoch Unix a nad IOCP vo Windows. Na vytvorenie poolu vlákien (thread pool) sa využíva knižnica libeio, na vykonávanie DNS požiadaviek v neblokujúcom režime je integrovaný c-ares. Všetky systémové volania, ktoré spôsobujú blokovanie, sa vykonávajú v rámci poolu vlákien a potom, rovnako ako spracovatelia signálov, prenášajú výsledok svojej práce späť cez anonymný kanál (pipe). Vykonávanie JavaScript kódu je zabezpečené pomocou zapojenia vyvinutého spoločnosťou Google motora V8 (dodatočne Microsoft vyvíja variant Node.js s motorom Chakra-Core).

Vo svojej podstate je Node.js podobný rámcom Perl AnyEvent, Ruby Event Machine, Python Twisted a implementáciu udalostí v Tcl, ale cyklus spracovania udalostí (event loop) v Node.js je skrytý pred vývojárom a pripomína spracovanie udalostí vo webovej aplikácii, ktorá beží v prehliadači. Pri písaní aplikácií pre node.js je potrebné zohľadniť špecifiká programovania orientovaného na udalosti, 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, v Node.js sa používa princíp asynchrónneho vykonávania, t.j. kód sa transformuje na „db.query(„select..“, function (result) {spracovanie výsledku});“, pričom riadenie okamžite prejde na ďalší kód a výsledok požiadavky bude spracovaný na základe prichádzajúcich dát.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster