Node.js nədir və ondan niyə istifadə etməlisiniz?

Node.js nədir ?


JavaScript dünyanın ən məşhur proqramlaşdırma dillərindən biridir. Bu gün milyonlarla veb-saytı gücləndirir və veb üçün funksiyalar yaratmaq üçün çox sayda tərtibatçı və dizayneri cəlb etdi. Proqramlaşdırmada yenisinizsə, JavaScript asanlıqla öyrəşəcəyiniz ən yaxşı proqramlaşdırma dillərindən biridir.

İlk 20 ilində JavaScript əsasən müştəri tərəfi skript üçün istifadə edilmişdir. JavaScript yalnız <script> teqi daxilində istifadə oluna bildiyinə görə tərtibatçılar bir çox dildə və frontend və back-end komponentləri arasında çərçivələrdə işləməli idilər. Daha sonra JavaScript-də yazılmış proqramı yerinə yetirmək üçün lazım olan hər şeyi özündə cəmləşdirən Node.js yarandı.

Node.js sürətli və genişləndirilə bilən server tərəfi və şəbəkə proqramları yaratmaq üçün tək yivli, açıq mənbəli, çarpaz platforma işləmə mühitidir. O, V8 JavaScript işləmə mühərrikində işləyir və hadisəyə əsaslanan, bloklanmayan I/O arxitekturasından istifadə edir ki, bu da onu səmərəli və real vaxt proqramları üçün uyğun edir.

Node.js nə ilə yazılıb?


Node.js C, C++ və JavaScript dillərində yazılmışdır.

Wikipedia Node.js-i “Google-un V8 JavaScript mühərrikinin, libuv platformasının abstraksiya qatının və özü əsasən JavaScript-də yazılmış əsas kitabxananın paketləşdirilmiş kompilyasiyası” kimi müəyyən edir.

Runtime daxili olaraq JavaScript icra mühərriki olan Chrome V8-dən istifadə edir və o, həm də C++ dilində yazılmışdır. Bu, daxili sistem funksionallığına (şəbəkə kimi) daxil olmaq kimi Node.js-in repertuarına əlavə istifadə halları əlavə edir.

Node.js Arxitekturası və Necə İşləyir


Node.js eyni anda birdən çox müştərini idarə etmək üçün “Tək Yivli Hadisə Döngəsi” arxitekturasından istifadə edir. Bunun digər iş vaxtlarından nə ilə fərqləndiyini anlamaq üçün çox yivli paralel müştərilərin Java kimi dillərdə necə idarə olunduğunu başa düşməliyik.

Node.js fərqli işləyir. Onun keçdiyi hər bir addıma nəzər salaq:

1.Node.js sorğulara xidmət etmək üçün məhdud mövzu hovuzunu saxlayır.
2.İstənilən sorğu gələndə Node.js onu növbəyə qoyur.
3.İndi tək yivli "Hadisə döngəsi" - əsas komponent - şəkilə daxil olur. Bu hadisə dövrəsi sorğuları qeyri-müəyyən müddətə gözləyir.
4.Sorğu daxil olduqda, döngə onu növbədən götürür və bloklama giriş/çıxış (I/O) əməliyyatını tələb edib-etmədiyini yoxlayır. Əgər yoxsa, sorğunu emal edir və cavab göndərir.
5.Əgər sorğunun yerinə yetirilməsi üçün bloklama əməliyyatı varsa, hadisə dövrəsi sorğunu emal etmək üçün daxili iplik hovuzundan ip təyin edir. Məhdud daxili iplər mövcuddur. Bu köməkçi iplər qrupu işçi qrupu adlanır.
6.Hadisə dövrəsi bloklama sorğularını izləyir və bloklama tapşırığı işləndikdən sonra onları növbəyə qoyur.
7.Node.js daha az yiv-dən istifadə etdiyi üçün daha az resurs/yaddaşdan istifadə edir, nəticədə tapşırığın daha sürətli icrası təmin edilir. Beləliklə, məqsədlərimiz üçün bu tək yivli arxitektura çox yivli arxitekturaya bərabərdir. Intensiv verilənlər tələb edən tapşırıqları emal etmək lazım olduqda, Java kimi çox yivli dillərdən istifadə etmək daha mənalı olur. Ancaq real vaxt tətbiqləri üçün Node.js bariz seçimdir.

Node.js proqramlaşdırma dilidirmi?


Bir sözlə: yox.

Node.js proqramlaşdırma dili deyil. Əksinə, bu, JavaScript-i brauzerdən kənarda işlətmək üçün istifadə olunan  runtime environment dir.Yəni iş vaxtı mühitidir.

Node.js bir framework(çərçivə)deyil. Node.js iş vaxtı proqramlaşdırma dilinin  üzərində qurulub və framework-ün özünü idarə etməsinə kömək edir.

Ümumiləşdirsək, Node.js nə proqramlaşdırma dilidir, nə də framework-dür; onlar üçün bir mühitdir.

Node.js Frontend yoxsa Backend-dir?


Tərtibatçılar arasında yayılmış yanlış fikir ondan ibarətdir ki, Node.js backend framework-dür və yalnız server qurmaq üçün istifadə olunur. Bu doğru deyil: Node.js həm frontend-də, həm də backend-də  istifadə edilə bilər.

Node.js çərçivələrinin çevik və genişlənə bilən backend quran tərtibatçılar üçün məşhur seçim olmasının səbəblərindən biri onun hadisələrə əsaslanan, bloklanmayan təbiətidir. Bununla belə, frontend tərtibatçıları Node.js-in bu üstünlüklərini öz işlərində eyni dərəcədə aydın şəkildə görəcəklər.

Node.js-in nə üçün həm backend, həm də frontend üçün işlədiyinə nəzər salaq:

Yenidən istifadə edilə bilənlik – JavaScript Express.js və Meteor.js kimi çərçivələrin köməyi ilə həm backend, həm də frontend yazmaq üçün istifadə olunan ümumi dildir. MERN kimi bəzi məşhur yığınlar Express.js-dən backend kimi istifadə edir (Node.js çərçivəsi). Frontend və backend arasında çoxlu komponentlər də təkrar istifadə edilə bilər.
Məhsuldarlıq və tərtibatçının səmərəliliyi – Çoxlu dillər arasında kontekst keçidinin azalması sayəsində çoxlu tərtibatçı vaxtına qənaət etmək olar. Həm backend, həm də frontend üçün JavaScript-dən istifadə səmərəliliyin artması ilə nəticələnir, çünki bir çox alətlər hər ikisi üçün ümumidir. Problemdə ilişib qaldığınız zaman, kiminsə onu artıq həll etməsi və həllini Stack Overflow-da paylaşması şansı yüksəkdir. Node.js populyar işləmə müddətinə və paketlərinə gəldikdə aktiv və məşğul olan bu ortaqlıq-dan böyük istifadə edir.