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

Mövcuddur buraxın Node.js 13.0, JavaScript-də şəbəkə proqramlarını işə salmaq üçün platformalar. Eyni zamanda, Node.js 12.x-in əvvəlki filialının stabilləşdirilməsi başa çatdırılıb, o, uzunmüddətli dəstək buraxılışları kateqoriyasına keçib, yeniləmələri 4 il müddətinə buraxılıb. Node.js 10.0-ın əvvəlki LTS filialına dəstək 2021-ci ilin aprel ayına qədər, sonuncu LTS filialı 8.0 üçün isə 2020-ci ilin yanvar ayına qədər davam edəcək.

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

  • V8 mühərriki versiyaya yeniləndi 7.8, yeni performans optimallaşdırma üsullarından istifadə edən, obyektin dağıdılmasını təkmilləşdirən, yaddaş istehlakını azaldır və WebAssembly icrası üçün hazırlıq vaxtını azaldır;
  • Beynəlxalqlaşdırma və kitabxana əsaslı Unicode üçün tam dəstək standart olaraq aktivdir ICU (Unicode üçün Beynəlxalq Komponentlər), tərtibatçılara kod yazmağa imkan verir dəstəkləyən müxtəlif dillər və yerlilərlə işləmək. Tam icu modulu indi standart olaraq quraşdırılıb;
  • API sabitləşdi İşçi Mövzuları, imkan verir çox yivli hadisə döngələri yaradın. Tətbiq JavaScript kodunu çoxlu paralel iplərdə işlətməyə imkan verən worker_threads moduluna əsaslanır. Workers Threads API üçün stabil dəstək də Node.js 12.x-in LTS filialına ötürülüb;
  • Platformalara olan tələblər artırılıb. İndi montaj üçün tələb olunur ən azı macOS 10.11 (Xcode 10 tələb olunur), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Python 3 üçün təkmilləşdirilmiş dəstək. Sistemdə həm Python 2, həm də Python 3 varsa, Python 2 hələ də istifadə olunur, lakin sistemdə yalnız Python 3 quraşdırıldıqda qurmaq imkanı əlavə edilib;
  • HTTP analizatorunun köhnə tətbiqi (“—http-parser=legacy”) silindi. Silinmiş və ya köhnəlmiş zənglər və xassələr FSWatcher.prototype.start(), ChildProcess._channel, ReadStream və WriteStream obyektlərində open() metodu, request.connection, respond.connection, module.createRequireFromPath();
  • Təqib çıxdı bir neçə səhvi tez bir zamanda düzəldən 13.0.1 yeniləməsi. Xüsusilə, dəstəklənməyən versiyanın istifadəsi ilə bağlı xəbərdarlıq göstərən npm 6.12.0 ilə bağlı problem həll edildi.

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

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