Lëshimi i platformës JavaScript në anën e serverit Node.js 13.0

Në dispozicion lirimin Nyja.js 13.0,platforma për ekzekutimin e aplikacioneve të rrjetit në JavaScript. Në të njëjtën kohë, ka përfunduar stabilizimi i degës së mëparshme të Node.js 12.x, i cili është transferuar në kategorinë e lëshimeve të mbështetjes afatgjatë, përditësimet për të cilat lëshohen për 4 vjet. Mbështetja për degën e mëparshme LTS të Node.js 10.0 do të zgjasë deri në prill 2021 dhe mbështetja për degën e fundit LTS 8.0 deri në janar 2020.

Kryesore përmirësime:

  • Motori V8 i përditësuar në version 7.8, i cili përdor teknika të reja të optimizimit të performancës, përmirëson destrukturimin e objekteve, zvogëlon konsumin e kujtesës dhe zvogëlon kohën e përgatitjes për ekzekutimin e WebAssembly;
  • Mbështetja e plotë për ndërkombëtarizimin dhe Unicode të bazuar në bibliotekë është aktivizuar si parazgjedhje ICU (International Components for Unicode), i cili lejon zhvilluesit të shkruajnë kodin mbështetëse punoni me gjuhë dhe lokalitete të ndryshme. Moduli full-icu tani është instaluar si parazgjedhje;
  • API u stabilizua Fijet e punëtorëve, duke lejuar krijoni sythe ngjarjesh me shumë fije. Zbatimi bazohet në modulin worker_threads, i cili ju lejon të ekzekutoni kodin JavaScript në fije të shumta paralele. Mbështetja e qëndrueshme për Workers Threads API është raportuar gjithashtu në degën LTS të Node.js 12.x;
  • Kërkesat për platformat janë rritur. Për tu mbledhur tani требуется të paktën macOS 10.11 (kërkon Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Mbështetje e përmirësuar për Python 3. Nëse sistemi ka të dy Python 2 dhe Python 3, Python 2 përdoret ende, por aftësia për të ndërtuar kur vetëm Python 3 është i instaluar në sistem është shtuar;
  • Implementimi i vjetër i analizuesit HTTP (“—http-parser=legacy”) është hequr. Thirrjet dhe vetitë e hequra ose të vjetruara FSWatcher.prototype.start(), ChildProcess._channel, metoda open() në objektet ReadStream dhe WriteStream, request.connection, answer.connection, module.createRequireFromPath();
  • Në vijim doli përditësimi 13.0.1, i cili rregulloi shpejt disa gabime. Në veçanti, problemi me npm 6.12.0 që shfaq një paralajmërim për përdorimin e një versioni të pambështetur është zgjidhur.

Le të kujtojmë se platforma Node.js mund të përdoret si për mbështetjen e aplikacioneve në ueb nga ana e serverit, ashtu edhe për krijimin e programeve të zakonshme të rrjetit të klientit dhe serverit. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js, një numër i madh i koleksioni i moduleve, në të cilat mund të gjeni module me implementimin e serverëve dhe klientëve HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme ueb, trajtues WebSocket dhe Ajax, lidhës me DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), motorët e shablloneve, motorët CSS, implementimet e algoritmeve kriptografike dhe sistemet e autorizimit (OAuth), analizuesit XML.

Për të trajtuar një numër të madh kërkesash paralele, Node.js përdor një model të ekzekutimit të kodit asinkron bazuar në përpunimin e ngjarjeve jo-bllokuese dhe përcaktimin e mbajtësve të kthimit të thirrjes. Metodat e mbështetura për lidhjet e multipleksimit përfshijnë epoll, kqueue, /dev/poll dhe select. Biblioteka përdoret për lidhje të shumëfishta libuv, e cila është një superstrukturë mbi liroj në sistemet Unix dhe mbi IOCP në Windows. Një bibliotekë përdoret për të krijuar një grup thread libeio, për kryerjen e pyetjeve DNS në modalitetin jo-bllokues është i integruar c-ares. Të gjitha thirrjet e sistemit që shkaktojnë bllokim ekzekutohen brenda grupit të thread dhe më pas, si mbajtësit e sinjalit, kalojnë rezultatin e punës së tyre përsëri përmes një tubi pa emër. Ekzekutimi i kodit JavaScript sigurohet nëpërmjet përdorimit të një motori të zhvilluar nga Google V8 (Përveç kësaj, Microsoft po zhvillon një version të Node.js me motorin Chakra-Core).

Në thelbin e tij, Node.js është i ngjashëm me kornizat Perl AnyEvent, Makina e ngjarjeve rubin, Python Twisted и zbatimi ngjarjet në Tcl, por cikli i ngjarjeve në Node.js është i fshehur nga zhvilluesi dhe i ngjan trajtimit të ngjarjeve në një aplikacion ueb që ekzekutohet në një shfletues. Kur shkruani aplikacione për node.js, është e nevojshme të merren parasysh specifikat e programimit të drejtuar nga ngjarjet, për shembull, në vend që të bëni "var result = db.query("select..");" me pritjen e përfundimit të punës dhe përpunimin e mëvonshëm të rezultateve, Node.js përdor parimin e ekzekutimit asinkron, d.m.th. kodi transformohet në “db.query(“select..”, funksion (rezultat) {rezultat processing});”, në të cilin kontrolli do të kalojë menjëherë në kodin e mëtejshëm dhe rezultati i pyetjes do të përpunohet me mbërritjen e të dhënave. .

Burimi: opennet.ru

Shto një koment