Lëshimi i platformës serverike JavaScript Node.js 13.0

I disponueshëm lëshimi Node.js 13.0, platforma për ekzekutimin e aplikacioneve të rrjetit në gjuhën JavaScript. Njëkohësisht ka përfunduar edhe stabilizimi i degës së mëparshme Node.js 12.x, e cila është kaluar në kategorinë e versioneve me mbështetje afatgjatë, për të cilat përditësimet publikohen për 4 vjet. Mbështetja për degën e mëparshme LTS Node.js 10.0 do të vazhdojë deri në prill 2021, ndërsa për degën edhe më të hershme LTS 8.0 deri në janar 2020.

Main përmirësime:

  • Motori V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 7.8, nĂ« tĂ« cilin janĂ« pĂ«rdorur metoda tĂ« reja pĂ«r optimizimin e performancĂ«s, Ă«shtĂ« pĂ«rmirĂ«suar destrukturimi i objekteve, Ă«shtĂ« ulur konsumi i memories dhe Ă«shtĂ« shkurtuar koha e pĂ«rgatitjes pĂ«r ekzekutimin e WebAssembly;
  • Si parazgjedhje Ă«shtĂ« aktivizuar mbĂ«shtetja e plotĂ« pĂ«r internacionalizim dhe Unicode nĂ« bazĂ« tĂ« bibliotekave ICU (International Components for Unicode), qĂ« u lejojnĂ« zhvilluesve tĂ« shkruajnĂ« kod, qĂ« mbĂ«shtet punĂ«n me gjuhĂ« dhe locale tĂ« ndryshme. Moduli full-icu tani Ă«shtĂ« i instaluar si parazgjedhje;
  • ËshtĂ« stabilizuar API Workers Threads, qĂ« lejon pĂ«r tĂ« krijuar cikle shumĂ«fijĂ«she tĂ« pĂ«rpunimit tĂ« ngjarjeve (event loop). Implementimi bazohet nĂ« modulin worker_threads, i cili lejon ekzekutimin e kodit JavaScript nĂ« disa fije paralele. MbĂ«shtetja e qĂ«ndrueshme pĂ«r API Workers Threads Ă«shtĂ« backportuar gjithashtu nĂ« degĂ«n LTS Node.js 12.x;
  • JanĂ« rritur kĂ«rkesat ndaj platformave. PĂ«r kompilim tani kĂ«rkohet tĂ« paktĂ«n macOS 10.11 (kĂ«rkohet Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • ËshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r Python 3. NĂ«se nĂ« sistem janĂ« tĂ« pranishĂ«m Python 2 dhe Python 3, vazhdon tĂ« pĂ«rdoret Python 2, por Ă«shtĂ« shtuar mundĂ«sia e kompilimit edhe kur nĂ« sistem Ă«shtĂ« i instaluar vetĂ«m Python 3;
  • ËshtĂ« hequr implementimi i vjetĂ«r i parser-it HTTP («—http-parser=legacy»). JanĂ« hequr ose janĂ« shpallur tĂ« vjetruara thirrjet dhe vetitĂ« FSWatcher.prototype.start(), ChildProcess._channel, metoda open() nĂ« objektet ReadStream dhe WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • MĂ« pas u publikua pĂ«rditĂ«simi 13.0.1, nĂ« tĂ« cilin menjĂ«herĂ« u korrigjuan disa gabime. NdĂ«r tĂ« tjera, u zgjidh problemi me shfaqjen nĂ« npm 6.12.0 tĂ« paralajmĂ«rimit pĂ«r pĂ«rdorimin e njĂ« versioni tĂ« pambĂ«shtetur.

Kujtojmë se platforma Node.js mund të përdoret si për mbështetjen nga ana e serverit të funksionimit të aplikacioneve Web, ashtu edhe për krijimin e programeve të zakonshme klient-server dhe të rrjetit. Për zgjerimin e funksionalitetit të aplikacioneve për Node.js është përgatitur një koleksion i madh modulesh, ku mund të gjenden module me implementime të serverëve dhe klientëve HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me framework-e të ndryshme web, përpunues WebSocket dhe Ajax, konektorë për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorë shabllonesh, motorë CSS, implementime të algoritmeve kriptografike dhe sistemeve të autorizimit (OAuth), si dhe parserë XML.

Për të përballuar përpunimin e një numri të madh kërkesash paralele, Node.js përdor një model asinkron të ekzekutimit të kodit, i bazuar në trajtimin e ngjarjeve në mënyrë jo-bllokuese dhe në përcaktimin e callback-handlerëve. Si metoda për multipleksimin e lidhjeve mbështeten epoll, kqueue, /dev/poll dhe select. Për multipleksimin e lidhjeve përdoret biblioteka libuv, e cila është një shtresë shtesë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një pool-i fijesh (thread pool) përdoret biblioteka libeio, ndërsa për ekzekutimin e kërkesave DNS në mënyrë jo-bllokuese është integruar c-ares. Të gjitha thirrjet e sistemit që shkaktojnë bllokim ekzekutohen brenda pool-it të fijeve dhe më pas, ashtu si edhe handlerët e sinjaleve, e kthejnë rezultatin e punës së tyre përmes një kanali pa emër (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes përdorimit të motorit V8 (përveç kësaj, Microsoft zhvillon një variant të Node.js me motorin Chakra-Core).

Në thelb, Node.js i ngjan framework-eve Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementimi të ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan trajtimit të ngjarjeve në një aplikacion web që funksionon në shfletues. Gjatë zhvillimit të aplikacioneve për Node.js, duhet të merret parasysh specifika e programimit të orientuar nga ngjarjet; për shembull, në vend të ekzekutimit të «var result = db.query(«select..»);» me pritjen e përfundimit të punës dhe përpunimin pasues të rezultateve, Node.js përdor parimin e ekzekutimit asinkron, pra kodi shndërrohet në «db.query(«select..», function (result) {përpunimi i rezultatit});», ku kontrolli kalon menjëherë te kodi vijues, ndërsa rezultati i kërkesës përpunohet sapo të mbërrijnë të dhënat. .

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster