Ukukhishwa kwe-JavaScript Node.js 13.0 eseceleni kweseva

Iyatholakala ukukhululwa I-Node.js 13.0, izinkundla zokuqalisa izinhlelo zokusebenza zenethiwekhi ku-JavaScript. Ngesikhathi esifanayo, ukuzinza kwegatsha langaphambilini le-Node.js 12.x sekuqediwe, okuye kwadluliselwa esigabeni sokukhishwa kokusekelwa kwesikhathi eside, izibuyekezo ezikhishwa iminyaka engu-4. Ukusekelwa kwegatsha langaphambilini le-LTS le-Node.js 10.0 kuzohlala kuze kube ngu-Ephreli 2021, nokusekelwa kwegatsha lokugcina le-LTS 8.0 kuze kube nguJanuwari 2020.

main ukuthuthukiswa:

  • Injini ye-V8 ibuyekezelwe enguqulweni 7.8, esebenzisa amasu amasha okuthuthukisa ukusebenza, ithuthukisa ukucekelwa phansi kwento, inciphisa ukusetshenziswa kwenkumbulo, futhi inciphise isikhathi sokulungiselela ukwenziwa kwe-WebAssembly;
  • Ukwesekwa okugcwele kokwenziwa kwamanye amazwe kanye ne-Unicode esekwe emtatsheni wezincwadi kunikwe amandla ngokuzenzakalela I-ICU (I-International Components for Unicode), evumela abathuthukisi ukuthi babhale ikhodi esekelayo sebenza ngezilimi ezahlukene kanye nezindawo. Imojula ye-icu egcwele manje isifakwe ngokuzenzakalelayo;
  • I-API izinzile Abasebenzi Imicu, ukuvumela dala izihibe zomcimbi ezinezintambo eziningi. Ukuqaliswa kusekelwe kumojuli ye-worker_threads, ekuvumela ukuthi usebenzise ikhodi ye-JavaScript ngemicu eminingi ehambisanayo. Ukusekela okuzinzile kwe-Workers Threads API nakho kubuyiselwe egatsheni le-LTS le-Node.js 12.x;
  • Izimfuneko zamapulatifomu zinyusiwe. Ukuhlangana manje edingekayo okungenani i-macOS 10.11 (idinga i-Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Ukusekelwa okuthuthukisiwe kwePython 3. Uma uhlelo lunakho kokubili i-Python 2 ne-Python 3, i-Python 2 isasetshenziswa, kodwa ikhono lokwakha lapho i-Python 3 kuphela efakwe ohlelweni ingeziwe;
  • Ukuqaliswa okudala komhlahleli we-HTTP (“—http-parser=legacy”) kususiwe. Amakholi asusiwe noma ahoxisiwe kanye nezakhiwo FSWatcher.prototype.start(), ChildProcess._channel, open() indlela ezintweni ze-ReadStream ne-WritStream, request.connection, response.connection, module.createRequireFromPath();
  • Ukulandela waphuma buyekeza i-13.0.1, elungise ngokushesha iziphazamisi ezimbalwa. Ikakhulukazi, inkinga nge-npm 6.12.0 ebonisa isexwayiso mayelana nokusebenzisa inguqulo engasekelwe isixazululiwe.

Masikhumbule ukuthi iplatifomu ye-Node.js ingasetshenziswa kokubili ukusekelwa kweseva yezinhlelo zokusebenza zeWebhu kanye nokudala izinhlelo ezijwayelekile zeklayenti nenethiwekhi yeseva. Ukwandisa ukusebenza kwezinhlelo zokusebenza ze-Node.js, inani elikhulu le ukuqoqwa kwamamojula, lapho ungathola khona amamojula ngokusetshenziswa kwamaseva namakhasimende i-HTTP, i-SMTP, i-XMPP, i-DNS, i-FTP, i-IMAP, i-POP3, amamojula okuhlanganiswa nezinhlaka ezihlukahlukene zewebhu, izibambi ze-WebSocket ne-Ajax, izixhumi ku-DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), izinjini zezifanekiso, izinjini ze-CSS, ukusetshenziswa kwama-cryptographic algorithms nezinhlelo zokugunyaza (OAuth), abahlaluli be-XML.

Ukuze isingathe izicelo eziningi ezifanayo, i-Node.js isebenzisa imodeli yokusebenzisa ikhodi engavumelani esekelwe ekucubunguleni umcimbi ongavimbeli kanye nokuchaza izibambi zokushaya ucingo. Izindlela ezisekelwayo zokuxhumanisa okuningi zifaka phakathi i-epoll, i-kqueue, /dev/poll, nokukhetha. Umtapo wolwazi usetshenziselwa ukuphindaphinda ukuxhumana libuv, okuyi-superstructure ngaphezulu khulula kumasistimu we-Unix nangaphezulu kwe-IOCP ku-Windows. Umtapo wolwazi usetshenziselwa ukwakha i-thread pool libeio, ngokwenza imibuzo ye-DNS kumodi yokungavimbi ihlanganisiwe c-abantu. Zonke izingcingo zesistimu ezibangela ukuvinjwa zenziwa ngaphakathi kwephuli yochungechunge bese, njengezibambi zesignali, zidlulise umphumela womsebenzi wazo ngepayipi elingashiwongo. Ukusetshenziswa kwekhodi ye-JavaScript kuqinisekiswa ngokusetshenziswa kwenjini ethuthukiswe i-Google V8 (Ngaphezu kwalokho, iMicrosoft yenza inguqulo ye-Node.js ngenjini ye-Chakra-Core).

Emgogodleni wayo, i-Node.js ifana nezinhlaka Perl AnyEvent, Umshini Womcimbi weRuby, I-Python Twisted и ukuqaliswa imicimbi ku-Tcl, kodwa iluphu yomcimbi ku-Node.js ifihliwe kunjiniyela futhi ifana nokusingatha umcimbi ohlelweni lokusebenza lwewebhu olusebenza kusiphequluli. Lapho ubhala izinhlelo zokusebenza ze-node.js, kubalulekile ukucabangela imininingwane yohlelo oluqhutshwa umcimbi, isibonelo, esikhundleni sokwenza okuthi “var result = db.query(“select..”);” ngokulinda ukuqedwa komsebenzi kanye nokucutshungulwa okulandelayo kwemiphumela, i-Node.js isebenzisa isimiso sokwenziwa kwe-asynchronous, i.e. ikhodi iguqulelwa ku-"db.query("select..", function (umphumela) {result processing});", lapho ukulawula kuzodlula ngokushesha kukhodi eqhubekayo, futhi umphumela wombuzo uzocutshungulwa njengoba idatha ifika. .

Source: opennet.ru

Engeza amazwana