Lëshimi i platformës server-side JavaScript Node.js 13.0

I verfĂŒshĂ«m lĂ«shimi Node.js 13.0, platforma pĂ«r ekzekutimin e aplikacioneve me rrjet nĂ« JavaScript. NĂ« tĂ« njĂ«jtĂ«n kohĂ« Ă«shtĂ« pĂ«rfunduar stabilizimi i degĂ«s sĂ« kaluar Node.js 12.x, e cila Ă«shtĂ« kaluar nĂ« kategorinĂ« e publikimeve me mbĂ«shtetje tĂ« zgjatur, pĂ«r tĂ« cilat pĂ«rditĂ«simet lĂ«shohen pĂ«r 4 vjet. MbĂ«shtetje pĂ«r degĂ«n e kaluar LTS Node.js 10.0 do tĂ« vazhdojĂ« deri nĂ« prill 2021, ndĂ«rsa pĂ«r degĂ«n e LTS-Ă«s sĂ« mĂ«parshme 8.0 deri nĂ« janar 2020.

Ndryshimet kryesore përmirësime:

  • Motor V8 Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 7.8, i cili pĂ«rfshin metoda tĂ« reja pĂ«r optimizimin e performances, pĂ«rmirĂ«sim tĂ« destrukturizimit tĂ« objekteve, zvogĂ«lim tĂ« konsumit tĂ« memories dhe reduktim tĂ« kohĂ«s sĂ« pĂ«rgatitjes pĂ«r ekzekutimin e WebAssembly;
  • PĂ«r defaut, Ă«shtĂ« aktivizuar mbĂ«shtetje e plotĂ« pĂ«r internacionalizimin dhe Unicode bazuar nĂ« bibliotekat ICU (Komponentet NdĂ«rkombĂ«tare pĂ«r Unicode), duke lejuar zhvilluesit tĂ« shkruajnĂ« kod qĂ« mbĂ«shtet pĂ«rpunimin e gjuhĂ«ve dhe lokaliteteve tĂ« ndryshme. Moduli full-icu tani instalohet si parazgjedhje;
  • API Threads tĂ« PunonjĂ«sve Ă«shtĂ« stabilizuar, ĐżĐŸĐ·ĐČĐŸĐ»ŃŃŽŃ‰ĐžĐč pĂ«rdorimi i cikleve tĂ« shumĂ«fishta pĂ«r pĂ«rpunimin e ngjarjeve (event loop). Realizimi Ă«shtĂ« i bazuar nĂ« modulin worker_threads, i cili lejon ekzekutimin e kodit JavaScript nĂ« disa procese paralele. MbĂ«shtetje e qĂ«ndrueshme e API Workers Threads Ă«shtĂ« gjithashtu e pĂ«rfshirĂ« nĂ« degĂ«n LTS tĂ« Node.js 12.x;
  • KĂ«to janĂ« rritur kĂ«rkesat pĂ«r platformat. Tani pĂ«r ndĂ«rtimin Ă«shtĂ« e nevojshme nevojitet nĂ« minimale macOS 10.11 (nevojitet Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • MbĂ«shtetje mĂ« e pĂ«rmirĂ«suar pĂ«r Python 3. NĂ«se nĂ« sistem janĂ« tĂ« pranishĂ«m si Python 2 ashtu edhe Python 3, vazhdon tĂ« pĂ«rdoret Python 2, por tani Ă«shtĂ« e mundur ndĂ«rtimi me praninĂ« vetĂ«m tĂ« Python 3;
  • Zgjidhja e vjetĂ«r e parser-it HTTP («—http-parser=legacy») Ă«shtĂ« hequr. JanĂ« hequr ose klasifikuar si tĂ« pasiperfituar thirrjet dhe pronat FSWatcher.prototype.start(), ChildProcess._channel, metoda open() nĂ« objektet ReadStream dhe WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Pas kĂ«saj u lansua aktualizimi 13.0.1, nĂ« tĂ« cilin janĂ« shĂ«nuar disa gabime. NdĂ«r to, Ă«shtĂ« zgjidhur problemi me shfaqjen e paralajmĂ«rimeve nĂ« npm 6.12.0 pĂ«r pĂ«rdorimin e njĂ« versioni tĂ« papĂ«rshtatur.

Duam të kujtojmë se platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për krijimin e programeve të zakonshme të klientëve dhe serverëve të rrjeteve. Për të rritur funksionalitetin e aplikacioneve për Node.js, është përgatitur një koleksion i madh modulash, ku mund të gjeni module me implementimin e serverëve dhe klientëve HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrimin me framework-e të ndryshme web, trajtesa WebSocket dhe Ajax, lidhës për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), gjenerues të shablloneve, motorë CSS, implementime të algoritmave kripto dhe sistemeve të autorizimit (OAuth), parserë XML.

Për të siguruar përpunimin e një numri të madh kërkesash paralele, Node.js përdor modelin asinkron të ekzekutimit të kodit, të bazuar në përpunimin e ngjarjeve në mënyrë jo bllokuese dhe përcaktimin e trajtesave callback. Si metoda të multiplikimit të lidhjeve, mbështeten metoda si epoll, kqueue, /dev/poll dhe select. Për multiplikimin e lidhjeve përdoret biblioteka libuv, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një grupi thread-ash (thread pool) përdoret biblioteka libeio, për kryerjen e kërkesave DNS në një mod të pa bllokuar të integruar c-ares. Të gjitha thirrjet sistemore që shkaktojnë bllokim ekzekutohen brenda një pooli fshirës dhe pastaj, siç është edhe menaxhimi i sinjaleve, kthejnë rezultatin e punës së tyre përmes një kanali të pa emëruar (pipe). Ekzekutimi i kodit JavaScript sigurohet përmes angazhimit të motorit të zhvilluar nga Google V8 (përveç kësaj, Microsoft zhvillon një variant Node.js me motorin Chakra-Core).

Në thelb, Node.js është e ngjashme me strukturat Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementim Evenimentet në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në aplikacionet web që funksionojnë në shfletues. Kur shkruani aplikacione për node.js, duhet të keni parasysh specifikat e programimit orientuar ndaj ngjarjeve, për shembull, në vend që të realizoni 'var result = db.query('select..');' me pritje për përfundimin e punës dhe përpunimin e rezultateve të mëvonshme, në Node.js përdoret parimi i ekzekutimit asinkron, dmth kodi transformohet në 'db.query('select..', function (result) { përpunimi i rezultatit });' ku kontrolli do të kalojë menjëherë në kodin tjetër, dhe rezultati i kërkesës do të përpunohen sipas ardhjes së të dhënave.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster