Node.js Haqqında Ən Çox Verilən Müsahibə Sualları [2023]
Node.js Haqqında Tez-Tez Verilən Müsahibə Sualları Hansılardır?
Node.js PayPal, Trello, Walmart və NASA kimi bir çox böyük şirkətlərin texnologiyalarının mühüm hissəsidir.
ZipRecruiter-ə görə, ABŞ-da Node.js mühəndisi ildə orta hesabla 116,500 dollar və ya saatda təxminən 56 dollar qazanır.
Əgər siz artıq yeni iş axtaran Node JS mühəndisisinizsə, müsahibəyə hazırlıq vacibdir.
Aşağıdakılar, növbəti müsahibənizdə qarşılaşacağınız ən ümumi Node.js suallarından bəziləridir
Node.js nədir?
Node.js server tərəfində veb proqramlar yaratmaq üçün istifadə edilən yüngül, lakin güclü çərçivədir. Bu çarpaz platforma JavaScript işləmə mühiti Google-un V8 JavaScript mühərrikində qurulub. Onun dizaynı Ruby's Event Machine və Python's Twisted dizaynına bənzəyir.
Niyə Node.js istifadə edirsiniz?
Tərtibatçılara JavaScript-ni arxa dil kimi istifadə etməyə imkan verir. Node.js istifadəçilərə JavaScript kodunu brauzerdən kənarda işlətməyə imkan verir və tərtibatçılar JavaScript-dən proqramın həm ön, həm də arxa tərəfində istifadə edə bilərlər.
Node.js Yüngüldür. Asinxron hadisələrə əsaslanan I/O modeli vasitəsilə Node.js heç bir node I/O-nu birbaşa idarə etməməsini təmin edərək onu səmərəli və yüngül edir.
Node Package Manager (NPM) vasitəsilə tərtibatçıların işini asanlaşdırır. Tərtibatçılar hər şeyi sıfırdan yaratmalı deyil, çünki NPM-də yükləyə və inkişaf zamanı istifadə edə biləcəyiniz kiçik açıq mənbəli proqram modulları var.
Niyə Node.js Single-Threading-dir?
Node.js JavaScript kodunu tək başlıq kimi işlədir. Bu o deməkdir ki, o, bu JavaScript kodunu bir anda icra edir. Bununla belə, libuv kitabxanası vasitəsilə Node.js diskdən faylları oxumaq və şəbəkə sorğuları kimi müxtəlif tapşırıqları yerinə yetirən müxtəlif mövzuları idarə edir.
Node.js paralelliyi necə idarə edir?
Paralellik bir tətbiqin eyni vaxtda birdən çox tapşırığı yerinə yetirdiyi bir vəziyyətdir. Node.js asinxron kodun hadisə növbəsinin sonuna itələndiyi hadisə dövrələrindən istifadə edir. JavaScript tək yivli olsa da, hadisə dövrəsi Node.js-ə I/O tapşırıqlarını sistem nüvəsinə yükləməklə bloklanmayan I/O əməliyyatlarını yerinə yetirməyə imkan verir.
NPM nədir?
800.000-dən çox kod paketi ilə dünyanın ən böyük proqram reyestridir. Node.js quraşdırdığınız zaman Node Package Manager avtomatik quraşdırılır.
Event loop nədir?
JavaScript-in tək yivli olmasına baxmayaraq, hadisə dövrəsi Node.js-ə bloklanmayan I/O əməliyyatlarını yerinə yetirməyə imkan verir. Mümkün olduqda, Node.js əməliyyatları sistem nüvəsinə yükləyir.
Event Emitter nədir?
Bunlar Node.js-də müəyyən əməliyyatın tamamlandığı barədə mesaj göndərdikdən sonra hadisəyə səbəb olan obyektlərdir. JavaScript inkişaf etdiriciləri beləliklə emitentdən hadisələri dinləyən kod yaza bilərlər.
WASI nədir?
Web Assembly System Interface (WASI) API-si WebAssembly System Interface-i həyata keçirir. WASI, sandboxed veb proqramlarına əsas əməliyyat sisteminə giriş imkanı vermək üçün POSIX kimi funksiyalardan istifadə edir.
Nəzarət axını(control flow) nədir?
Tətbiqlərimizdə kod məntiqini və axınını bu şəkildə idarə edirik. If ifadələri dəyişənlərin vəziyyətinə və funksiyaların çıxışlarına əsaslanaraq kodun müəyyən istiqamətə axınına nəzarət edə bilər.
Callback hell nədir?
Qiyamət piramidası olaraq da bilinən geri çağırış cəhənnəmi bir funksiya daxilində çoxlu geri çağırışların yerləşdiyi bir vəziyyətdir. Geri çağırış cəhənnəmi asinxron proqramlaşdırma ilə əlaqələndirilir və kodu başa düşməyi və saxlamağı çətinləşdirir.
Node.js-də middleware nədir?
Orta proqram obyektə cavab vermək, obyekt tələb etmək və tətbiqin sorğu-cavab dövründə növbəti ara proqrama keçmək üçün bütün çıxışı olan bir funksiyadır. Middleware proqramlar, verilənlər və istifadəçilər arasında əlaqə rolunu oynayır.
Node.js streams nədir?
Axınlar massivlər və sətirlərlə müqayisə edilə bilən məlumat toplusudur. Bununla belə, bu axınlar yaddaşa sığmaq məcburiyyətində deyil və eyni vaxtda mövcud ola bilər.
Boru kəməri nədir?
Boru kəməri çoxlu axınların birləşdirilməsi prosesidir. Məsələn, məlumatların bir fayldan digərinə ötürülməsini təmin etmək üçün oxuma və yazma axınlarını birləşdirə bilərsiniz.
Node.js buferləri nədir?
Bufer modulları Node.js parametrində ikili məlumat axınlarını idarə etmək üçün bir yol təklif edir. Node.js-də Bufer qlobal obyektdir; 'tələb' açar sözündən istifadə edərək idxal etməli deyilsiniz.
Bu sintaksisdən istifadə edərək 15 uzunluğunda boş Bufer yarada bilərsiniz;
var buf = Buffer.alloc(15);
Hadisəyə əsaslanan proqramlaşdırma nədir?
Hadisəyə əsaslanan proqramlaşdırmanın nə olduğunu öyrənməzdən əvvəl bu anlayışları başa düşməliyik;
Hadisə mesajı və bildiriş
Prodüser-hadisə mənbəyi, nəşriyyatçı və göndərici
İstehlakçı-hadisə yuvası, abunəçi, qəbuledici və işləyici
Mesaj növbəsi-hadisə növbəsi
Hadisəyə əsaslanan proqramlaşdırma, hadisələrə cavab vermək üçün kodun yazıldığı bir konsepsiyadır. Məsələn, müəyyən bir temperatura çatdıqda sensorların aşkar etdiyi avtomatlaşdırılmış sistemimiz ola bilər.
Bu cür sistemlərdə hadisələrə cavab verən və müvafiq tədbirlərin görülməsini təmin edən hadisə idarəediciləri olacaq.
Test piramidası nədir?
Test piramidası bir tətbiqi tam şəkildə inkişaf etdirmək üçün lazım olan vahid testlərinin, inteqrasiya testlərinin və uçdan-uca testlərin nisbətini göstərir. Test piramidası möhkəm test paketinin hazırlanmasına kömək edir və qiymətləndirmələrin tezliyini və qaydasını müəyyən edir.
Səhv olan ilk geri zəng nədir?
Səhv-ilk geri çağırış xətaları və məlumatları. Səhv obyekti bu cür funksiyalara keçdiyiniz ilk şey, ikincisi isə əlaqəli məlumatlardır. Səhv-ilk geri çağırış sizə xəta obyektini ötürməyə, nəyinsə səhv olub olmadığını yoxlamağa və sonra onu idarə etməyə imkan verir. Heç bir problem aşkar edilmirsə, sonrakı arqumentlərlə davam edirsiniz.
LTS buraxılışları nədir?
Uzunmüddətli dəstək (LTS) tərtibatçılardan geniş dəstək alan proqram təminatı buraxılışıdır. Yalnız 6 aydan 1 ilə qədər dəstək alan adi proqramlardan fərqli olaraq uzadılmış dəstək 2-5 il ola bilər.
URL modulu nədir?
URL modulu veb ünvanını oxuna bilən hissələrə ayıracaq (analiz edəcək). URL modulundan istifadə etmək üçün tələb() metodunu daxil etməlisiniz.
Libuv nədir?
Libuv C proqramlaşdırma dilində yazılmış platformalararası kitabxanadır və asinxron, hadisələrə əsaslanan proqramlaşdırma üslubunu təmin edir. Libuv hadisə dövrəsini və I/O-nun geri çağırışa əsaslanan bildirişlərini təmin edir.
Stublar nədir?
Test stubları əvvəlcədən proqramlaşdırılmış davranışa malik casuslar/funksiyalardır. Stublar mövcud funksiyaları tamamlaya bilər və ya anonim ola bilər.
Siz stublardan istifadə edə bilərsiniz;
Bəzi testlər kod xətalarına görə deyil, şəbəkə bağlantısı xətalarına görə uğursuz olur.
Bir metodun davranışına nəzarət etmək və kodu müəyyən bir yoldan aşağı endirmək istəyirsiniz.
package.json nədir?
Package.json Node.js layihəsinin ürəyidir. Bu fayl NPM-də dərc edilməzdən əvvəl lazım olan layihə haqqında vacib metadata qeyd edir. Package.json NPM-nin skriptləri işə salmaq, asılılıqları quraşdırmaq və paketə giriş nöqtəsini müəyyən etmək üçün istifadə etdiyi layihənin funksional atributlarını müəyyən edir.
.json fayl paketi nədir?
JSON JavaScript Object Notation üçün qısa formadır. Bu, məlumatların daşınması və saxlanması üçün yüngül formatdır və tez-tez məlumatlar veb serverdən veb səhifəyə göndərildikdə istifadə olunur.
Package.json faylı JSON formatında yazılmışdır.
Express.js paketi nədir?
Express.js mobil və veb proqramlar yaratmaq üçün möhkəm funksiyaları olan Node.js çərçivəsidir.
Bu əmrdən istifadə edərək bu minimalist veb çərçivəni quraşdıra bilərsiniz;
npm install express --save
Node.js-də istifadə olunan bəzi çərçivələri qeyd edin.
Express.js
Koa.js
Meteor.js
Socket.io
Nest.js
Sails.js
Total.js
Hapi.js
Node.js-in bəzi vaxt xüsusiyyətlərini qeyd edin
setTimeout/clearTimeout (): Təyin olunmuş vaxtdan sonra kodun icrasını planlaşdıran funksiyadır (milisaniyələrlə ölçülür)
process.nextTick(): Bu, hadisə dövrəsinin növbəti iterasiyasında işə salınması tələb olunan geri çağırış funksiyasını təyin edən funksiyadır.
clearImmediate/setImmediate(): Kod mövcud hadisə dövriyyəsi dövründən sonra yerinə yetirilir
setInterval/clearInterval(): Bu funksiya kod blokunu bir neçə dəfə yerinə yetirmək üçün istifadə olunur
Node.js-də çox istifadə olunan bəzi kitabxanaları qeyd edin
Lodaş
Async
Express.js
Karma
Axios
Grunt
Molekulyar
Buludlu
Mocha
PM2
Xarici kitabxanaları idxal etmək üçün hansı əmrdən istifadə olunur?
"tələb et" əmri. Məsələn, “var http=require (“HTTP”)” HTTP kitabxanasını yükləyəcək.
Geri zənglər nədir?
Bunlar müəyyən tapşırıq tamamlandıqdan sonra çağırılan funksiyalardır. Belə bir parametr proqrama başqa bir kod parçasını işə salmağa və bloklanmanın qarşısını almağa imkan verir.
Modullar hansılardır?
Modullar tərtibatçılara DRY (Özünüzü Təkrar Etməyin) proqramlaşdırma prinsipinə əməl etməyə kömək edən təkrar istifadə edilə bilən JavaScript kodlarıdır. Bu cür modullar həm də mürəkkəb məntiqi kiçik, sadə və idarə oluna bilən hissələrə ayırmağa kömək edir.
I/O terminini necə müəyyən edərdiniz?
I/O giriş/çıxış üçün qısa formadır. Proqramın sistemin şəbəkəsi və diski ilə qarşılıqlı əlaqəsinə aiddir. Verilənlər bazası ilə danışmaq, diskdən məlumat oxumaq/yazmaq və HTTP sorğuları etmək I/O əməliyyatlarına misaldır.
Node.js ilə hansı verilənlər bazası istifadə olunur?
MongoDB
Node.js çıxış kodlarını təsvir edin
Çıxış kodları prosesləri bitirən xüsusi kodlar qrupudur.
Ən çox yayılmış Node.js çıxış kodlarından bəziləri bunlardır;
Handler Run-time xətası
Daxili JavaScript Qiymətləndirmə Uğursuzluğu
Tutulmamış ölümcül istisna
Ölümcül Səhv
Daxili İstisna
İstifadə olunmamış
Node.js-də reaktor nümunəsi nədir?
Node.js-də reaktor nümunəsi I/O əməliyyatlarının bloklanmasının qarşısını almaq üçün istifadə olunur. Reaktor modelində Giriş/Çıxış əməliyyatları ilə əlaqəli idarəedici var.
Reaktor nümunəsi bu nümunəyə uyğundur;
Tətbiq sorğular verir
Hadisə demultiplekseri bu sorğuları toplayır və Hadisə növbələrini formalaşdırır
Libuv, asinxron IO kitabxanası, hadisə demultiplexerini idarə edir.
Node.js-də asinxron və bloklanmayan API-ləri izah edin
Mesaj asinxron arxitektura vasitəsilə göndərildikdə. Server məlumatı saxlayır və tapşırıq tamamlandıqda ona bildiriş göndəriləcək.
Bloklanmayan API-lər mövcud olan məlumatlarla dərhal cavab verir. Bununla belə, o, icraları bloklamır, lakin istəklərə uyğun olaraq işləməyə davam edir.
Node.Js-də V8 mühərrikini izah edin
V8 JavaScript veb brauzerlərdə JavaScript icrasını yaxşılaşdırmaq üçün Chromium və Google Chrome veb brauzerləri üçün hazırlanmışdır. Tərcüməçidən istifadə etmək əvəzinə, V8 daha sürətli JavaScript icra sürətinə nail olmaq üçün JS kodunu daha səmərəli koda çevirir.
Spawn() və fork() arasında fərq edin
Spawn() yeni funksiya yaradır və onu əmr satırından istifadə edərək işə salır. Bu funksiya prosessorda qovşaq modulu yaradır, bundan sonra uşaq qaytarılan məlumatı emal edəndə Node.js onu işə salır.
Fork() artıq mövcud olan spawn() metodunun nümunəsidir. Yumurtlama prosesi hər zaman istənilən vaxt tapşırıqları yerinə yetirən birdən çox aktiv node olacağını təmin edir.
Sinxron və asinxron funksiyalar arasındakı fərq
Sinxron funksiyada kod proqram tərəfindən verilən göstərişlərə əsasən müəyyən ardıcıllıqla yerinə yetirilir.
Asinxron funksiyada kod paralel olaraq icra edilə bilər. Növbəti əməliyyat hətta başqa bir proses işləndiyi halda belə bir parametrdə baş verə bilər.
Node.js layihələrində paketləri necə idarə etmək olar?
Müxtəlif paket quraşdırıcıları Node.js layihələrində paketləri idarə etmək üçün konfiqurasiyalarla gəlir. Bu paketlərin əksəriyyəti npm və ya iplikdən istifadə edir. Xoşbəxtlikdən, hər ikisi genişləndirilmiş funksiyaları olan demək olar ki, bütün JavaScript kitabxanalarına girişi təmin edir.
Nəzarət axını funksiyasını izah edin
Bu, müxtəlif asinxron funksiya çağırışları arasında işləyən kod parçasıdır.
Nəticə
Node.js müsahibəsində qarşılaşacağınız sualların əksəriyyətini əhatə etdik. Bununla belə, siz də Node.js -bildiyinize əmin olmalısınız