Server tərəfdən JavaScript Node.js 14.0 buraxılışı

Baş verdi buraxın Node.js 14.0, JavaScript-də şəbəkə proqramlarını işə salmaq üçün platformalar. Node.js 14.0 uzunmüddətli dəstək şöbəsidir, lakin bu status sabitləşmədən sonra yalnız oktyabr ayında təyin ediləcək. Node.js 14.0 dəstəklənəcək həyata keçirilsin 2023-cü ilin aprel ayına qədər. Node.js 12.0-ın əvvəlki LTS filialına texniki qulluq 2022-ci ilin aprelinə qədər və sonuncu LTS 10.0 filialından əvvəlki ildən 2021-ci ilin aprelinə qədər davam edəcək. 13.x səhnələşdirmə filialına dəstək bu ilin iyun ayında başa çatacaq.

Əsas irəliləyişlər:

  • Tez və ya müəyyən hadisələr baş verdikdə yaratmaq qabiliyyəti sabitləşdi diaqnostik hesabatlar, qəzalar, performansın pisləşməsi, yaddaş sızması, ağır CPU yükü, gözlənilməz səhv çıxışı və s. kimi problemlərin diaqnozuna kömək edən hadisələri göstərən.
  • Eksperimental API dəstəyi əlavə edildi Async Yerli Yaddaş geri çağırışlar və vədlər əsasında işləyicilərlə asinxron vəziyyət yaratmaq üçün istifadə edilə bilən AsyncLocalStorage sinifinin tətbiqi ilə. AsyncLocalStorage sizə veb sorğusu işlənərkən məlumatları saxlamağa imkan verir ki, bu da digər dillərdə yerli iplik yaddaşını xatırladır.
  • Yükləyərkən eksperimental xüsusiyyət haqqında xəbərdarlıq mesajı silindi modullar ECMAScript 6 idxal və ixrac hesabatlarından istifadə etməklə qoşulmuş və ixrac edilmişdir. Eyni zamanda, ESM modullarının tətbiqi özü eksperimental olaraq qalır.
  • V8 mühərriki versiyaya yeniləndi 8.1 (1, 2, 3), yeni performans optimallaşdırmalarını və yeni məntiqi birləşmə operatoru "???" (sol operand NULL və ya qeyri-müəyyəndirsə, sağ operandı qaytarır və əksinə), "?." operatoru bütün xassələr və ya zənglər zəncirinin birdəfəlik yoxlanılması üçün (məsələn, ilkin yoxlamalar olmadan “db?.istifadəçi?.ad?.uzunluq”), lokallaşdırılmış adların əldə edilməsi üçün Intl.DisplayName metodu və s.
  • Streams API-lərinin ardıcıllığını yaxşılaşdırmaq və Node.js-in əsas hissələrinin davranışındakı fərqləri aradan qaldırmaq məqsədi daşıyan Streams API-nin yenidən nəzərdən keçirilməsi həyata keçirilib. Məsələn, http.OutgoingMessage-in davranışı stream.Writable-a yaxındır, net.Socket isə stream.Duplex-ə bənzəyir. AutoDestroy seçimi defolt olaraq "true" olaraq təyin olunub, yəni başa çatdıqdan sonra "_destroy" çağırılır.
  • Eksperimental API dəstəyi əlavə edildi MƏN İDİM (WebAssembly Sistem İnterfeysi), əməliyyat sistemi ilə birbaşa qarşılıqlı əlaqə üçün proqram interfeyslərinin təmin edilməsi (fayllar, yuvalar və s. ilə işləmək üçün POSIX API).
  • üçün artan tələblər minimal versiyalar tərtibçilər və platformalar: macOS 10.13 (High Sierra), GCC 6, Windows daha yeni 7/2008R2.

Yada salaq ki, Node.js platforması həm Veb proqramların server tərəfindən dəstəklənməsi, həm də adi müştəri və server şəbəkə proqramlarının yaradılması üçün istifadə edilə bilər. Node.js üçün proqramların funksionallığını genişləndirmək üçün çoxlu sayda modulların toplusu, burada HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverlərinin və müştərilərinin həyata keçirilməsi modulları, müxtəlif veb çərçivələri ilə inteqrasiya modulları, WebSocket və Ajax işləyiciləri, DBMS (MySQL, PostgreSQL, SQLite) üçün birləşdiricilər tapa bilərsiniz. , MongoDB ), şablon mühərrikləri, CSS mühərrikləri, kriptoqrafik alqoritmlərin tətbiqi və avtorizasiya sistemləri (OAuth), XML təhlilçiləri.

Çoxlu sayda paralel sorğuları idarə etmək üçün Node.js bloklanmayan hadisə emalına və geri çağırış işləyicilərini müəyyən etməyə əsaslanan asinxron kod icra modelindən istifadə edir. Əlaqələrin multipleksləşdirilməsi üçün dəstəklənən üsullara epoll, kqueue, /dev/poll və select daxildir. Kitabxana multipleks əlaqə üçün istifadə olunur libuv, üzərində bir üst quruluşdur libev Unix sistemlərində və Windows-da IOCP üzərində. Bir mövzu hovuzu yaratmaq üçün kitabxana istifadə olunur libeio, bloklanmayan rejimdə DNS sorğularını yerinə yetirmək üçün inteqrasiya olunub c-ares. Bloklamaya səbəb olan bütün sistem çağırışları ip hovuzu daxilində yerinə yetirilir və sonra, siqnal işləyiciləri kimi, öz işlərinin nəticəsini adı açıqlanmayan boru vasitəsilə geri ötürür. JavaScript kodunun icrası Google tərəfindən hazırlanmış mühərrikdən istifadə etməklə təmin edilir V8 (Bundan əlavə, Microsoft şirkəti Chakra-Core mühərriki ilə Node.js versiyasını hazırlayır).

Özündə Node.js çərçivələrə bənzəyir Perl AnyEvent, Ruby Hadisə Maşın, Python Twisted и həyata keçirilməsi Tcl-də hadisələr, lakin Node.js-də hadisə dövrəsi tərtibatçıdan gizlədilir və brauzerdə işləyən veb proqramda hadisələrin idarə edilməsinə bənzəyir. node.js üçün ərizələr yazarkən, məsələn, “var nəticə = db.query(“seç..”);” yerinə yetirmək əvəzinə, hadisəyə əsaslanan proqramlaşdırmanın xüsusiyyətlərini nəzərə almaq lazımdır. işin tamamlanmasını və nəticələrin sonradan işlənməsini gözləməklə, Node.js asinxron icra prinsipindən istifadə edir, yəni. kod “db.query(“seç..”, funksiya (nəticə) {nəticənin işlənməsi});” çevrilir, burada idarəetmə dərhal sonrakı koda keçəcək və sorğunun nəticəsi məlumat gəldikdən sonra emal ediləcək. .

Mənbə: opennet.ru

Добавить комментарий