IHS Blog

Node.js Nedir ve Neden Kullanmalısınız?

node-js-nedir

JavaScript, dünyadaki en popüler programlama dillerinden biridir. Bugün milyonlarca web sitesine güç veren ve özellikler oluşturmak için geliştiricileri ve tasarımcılar tarafından en çok tercih edilen programlama dillerinden biridir. Programlamada yeniyseniz, JavaScript kolayca öğrenmeye başlayabileceğiniz en iyi programlama dillerinden biridir.

İlk 20 yılında JavaScript, esas olarak istemci tarafı komut dosyası oluşturmak için kullanıldı. JavaScript yalnızca <script></script> etiketi içinde kullanılabildiğinden, geliştiricilerin front-end ve back-end bileşenleri arasında birden çok dilde ve frameworkte çalışması gerekiyordu. Daha sonra JavaScript ile yazılmış bir programı çalıştırmak için gereken her şeyi içeren bir çalışma zamanı ortamı olan Node.js geldi.

Bu makalede Node.js hakkındaki herşeye değinmeye çalışacağız.

 

Node.js Nedir?

Node.js, hızlı ve ölçeklenebilir sunucu ve ağ uygulamaları oluşturmak için tek iş parçacıklı, açık kaynaklı, platformlar arası bir çalışma zamanı ortamıdır. 

V8 JavaScript  motorunda çalışır ve olaya dayalı, engelleme yapmayan G/Ç mimarisini kullanır, bu da onu verimli ve gerçek zamanlı uygulamalar için uygun hale getirir.

 

Node.js Hangi Dilde Yazılmıştır?

Node.js, C, C++ ve JavaScript ile yazılmıştır.

Wikipedia, Node.js’yi “Google’ın V8 JavaScript motorunun paketlenmiş bir derlemesi, libuv platformu soyutlama katmanı ve kendisi esas olarak JavaScript ile yazılmış bir çekirdek kitaplık” olarak tanımlar.

Çalışma zamanı, JavaScript yürütme motoru olan Chrome V8’i dahili olarak kullanır ve ayrıca C++ ile yazılmıştır. Bu, Node.js’nin yeteneklerine dahili sistem işlevlerine erişim (ağ oluşturma gibi) gibi ek kullanım özellikleri ekler.

 

Node.js Mimarisi ve Çalışma Mantığı

Node.js, aynı anda birden fazla istemciyi işlemek için “Tek İş parçacıklı Olay Döngüsü” mimarisini kullanır. Bunun diğer çalışma zamanlarından nasıl farklı olduğunu anlamak için, Java gibi dillerde çok iş parçacıklı eşzamanlı istemcilerin nasıl işlendiğini anlamamız gerekir.

 

 

Çok iş parçacıklı istek-yanıt modelinde, birden çok istemci bir istek gönderir ve sunucu yanıtı geri göndermeden önce her birini işler. Ancak, eşzamanlı çağrıları işlemek için birden çok iş parçacığı kullanılır. Bu iş parçacıkları, bir iş parçacığı havuzunda tanımlanır ve her istek geldiğinde, onu işlemek için ayrı bir iş parçacığı atanır.

Node.js, olay döngüsünü kullanarak gelen istekleri nasıl işler?

Node.js farklı şekilde çalışır. Geçtiği her adıma bir göz atalım:

  1. js, istekleri sunmak için sınırlı bir iş parçacığı havuzunu hazırda tutar.
  2. Bir istek geldiğinde, Node.js onu bir kuyruğa yerleştirir.
  3. Şimdi, tek iş parçacıklı “Olay döngüsü” başlar. Bu olay döngüsü, istekleri süresiz olarak bekler.
  4. Bir istek geldiğinde, döngü onu kuyruktan alır ve bir engelleme giriş/çıkış (G/Ç) işlemi gerektirip gerektirmediğini kontrol eder. Değilse, isteği işler ve bir yanıt gönderir.
  5. İsteğin gerçekleştirilecek bir engelleme işlemi varsa, olay döngüsü, isteği işlemek için dahili iş parçacığı havuzundan bir iş parçacığı atar. Sınırlı sayıda iç iş parçacığı mevcuttur. Bu yardımcı iş parçacığı grubuna işçi grubu denir.
  6. Olay döngüsü, engelleme isteklerini izler ve engelleme görevi işlendikten sonra bunları kuyruğa yerleştirir. Bu şekilde bloke edici olmayan yapısını korur.

Node.js daha az iş parçacığı kullandığından, daha az kaynak/bellek kullanır. Bu da daha hızlı görev yürütme sağlar. Dolayısıyla, amaçlarınız için bu tek iş parçacıklı mimari, çok iş parçacıklı mimariye eşdeğerdir. Yoğun veriye sahip görevlerin işlenmesi gerektiğinde, Java gibi çok iş parçacıklı dilleri kullanmak çok daha mantıklıdır. Ancak gerçek zamanlı uygulamalar için Node.js bariz bir seçimdir.

 

Node.js’nin Özellikleri

Node.js, son birkaç yılda hızla büyüdü. Sağladığı geniş özellik listesi sayesinde geliştiricilerin gözdesi olmuştur. Bu özelliklere göz atalım:

  1. Kolay: Node.js ile geliştirmeye başlamak oldukça kolaydır. Web geliştirmeye yeni başlayanlar için iyi bir tercihtir. Çok sayıda öğretici içerik ve geniş bir toplulukla, kısacası güçlü bir destekle Node.js öğrenmeye başlamak çok kolaydır.
  2. Ölçeklenebilir: Uygulamalar için geniş ölçeklenebilirlik sağlar. Tek iş parçacıklı olan Node.js, yüksek verimle çok sayıda eşzamanlı bağlantıyı işleyebilir.
  3. Hız: Engellenmeyen iş parçacığı yürütme, Node.js’yi daha da hızlı ve verimli hale getirir.
  4. Paketler: İşinizi basitleştirebilecek çok sayıda açık kaynaklı Node.js paketi mevcuttur. Bugün NPM ekosisteminde bir milyondan fazla paket var.
  5. Güçlü Back-end: Node.js, C ve C++ ile yazılmıştır, bu onu hızlandırır ve ağ desteği gibi özellikler ekler.
  6. Çoklu platform: Platformlar arası destek, tümü Node.js kullanarak SaaS web siteleri, masaüstü uygulamaları ve hatta mobil uygulamalar oluşturmanıza olanak tanır.
  7. Sürdürülebilir: Node.js, hem front-end hem de back-end JavaScript ile tek bir dil olarak yönetilebildiğinden, geliştiriciler için kolay bir seçimdir.

 

Node.js Uygulamaları

Node.js, çok çeşitli uygulamalar için kullanılır. Node.js’nin iyi bir seçim olduğu bazı popüler kullanım örneklerini inceleyelim:

  1. Gerçek zamanlı sohbetler: Tek iş parçacıklı eşzamansız yapısı nedeniyle Node.js, gerçek zamanlı iletişimi işlemek için çok uygundur. Kolayca ölçeklenebilir ve genellikle sohbet robotları oluşturmak için kullanılır. Node.js ayrıca çok kişili sohbet ve anında iletme bildirimleri gibi ek sohbet özellikleri oluşturmayı da kolaylaştırır.
  2. Nesnelerin İnterneti:IoT uygulamaları, genellikle çok sayıda istekte yığılabilen küçük veri parçaları gönderdiklerinden, genellikle birden çok sensör içerir. Node.js, bu eşzamanlı istekleri hızlı bir şekilde işleyebildiği için iyi bir seçimdir.
  3. Veri Akışı: Netflix gibi şirketler streaming amacıyla Node.js kullanır. Bunun başlıca nedeni Node.js’nin hafif ve hızlı olması ve bunun yanında Node.js’nin native stream API’sı sağlamasıdır. Bu akışlar, kullanıcıların istekleri birbirine yönlendirmesine izin vererek, verilerin doğrudan nihai hedefine aktarılmasına neden olur.
  4. Karmaşık tek sayfalı uygulamalar (SPA’lar): SPA’larda tüm uygulama tek bir sayfada yüklenir. Bu genellikle belirli bileşenler için arka planda yapılan birkaç istek olduğu anlamına gelir. Node.js’nin olay döngüsü, istekleri engellemeyen bir şekilde işlediği için burada kurtarıcı rol oynar.
  5. REST API tabanlı uygulamalar: JavaScript, sitelerin hem front-end hem de back-end kısmında kullanılır. Böylece, bir sunucu Node.js kullanarak REST API’leri aracılığıyla front-end ile kolayca iletişim kurabilir. Node.js ayrıca, web uygulamaları oluşturmayı daha da kolaylaştıran Express.js ve Koa gibi paketler sağlar.

 

Node.js Bir Programlama Dili mi?

Tek kelimeyle: hayır.

Node.js bir programlama dili değildir. Bunun yerine, JavaScript’i tarayıcının dışında çalıştırmak için kullanılan bir çalışma zamanı ortamıdır.

Node.js bir framework (yazılım uygulamaları geliştirmek için bir platform) değildir. Node.js çalışma zamanı, bir programlama dili (bu durumda JavaScript) üzerine kurulmuştur ve frameworklerin kendisinin çalıştırılmasına yardımcı olur.

Özetlemek gerekirse, Node.js ne bir programlama dili ne de bir frameworktür; kısacası node.js bir çalışma ortamıdır.

Node.js Front-end mi?, Back-end mi?

Geliştiriciler arasında yaygın bir yanılgı, Node.js’nin bir back-end frameworkü olduğu ve yalnızca sunucu oluşturmak için kullanıldığıdır. Bu doğru değil: Node.js hem front-end hem de back-end tarafında kullanılabilir.

Node.js frameworklerinin, esnek ve ölçeklenebilir bir back-end oluşturan geliştiriciler için popüler bir seçim olmasının nedenlerinden biri, olaya dayalı, engelleyici olmayan doğasıdır. Ancak front-end geliştiriciler, Node.js’nin bu faydalarını kendi çalışmalarında da aynı şekilde net bir şekilde göreceklerdir.

Node.js’nin neden hem front-end hem de back-end için çalıştığına bir göz atalım:

  1. YenidenKullanılabilirlik: JavaScript, Express.js ve Meteor.js gibi frameworklerin yardımıyla hem front-end hem de back-end yazmak için kullanılan ortak bir dildir. MERN gibi bazı popüler yığınlar, back-end (bir Node.js frameworkü) olarak Express.js kullanır. Birden çok bileşen, front-end ve back-end arasında da yeniden kullanılabilir.
  2. Üretkenlik ve geliştirici verimliliği: Birden çok dil arasında bağlam değiştirmedeki azalma sayesinde, geliştirici zamandan büyük ölçüde tasarruf edilebilir. JavaScript’i hem back-end hem de front-end için kullanmak, birçok araç her ikisi için de ortak olduğundan verimliliğin artmasını sağlar.
  3. Büyük topluluk: Başarılı bir geliştirme döngüsünün hızında gelişen bir çevrimiçi topluluk faktörleri. Bir soruna takılıp kaldığınızda, birisinin bunu zaten çözmüş ve çözümü Stack Overflow’ta paylaşmış olma ihtimali yüksektir. Node.js, popüler çalışma zamanı ve paketleri söz konusu olduğunda aktif ve meşgul olan bu topluluktan büyük ölçüde yararlanır.

 

Node.js’ye Başlarken

Node.js ile nereden başlayacağınıza karar vermek çok zor olabilir. Neyse ki, kurulumu yeterince basittir ve ardından kendiniz için test denemeleri yapabilirsiniz.

Node.js Nasıl Kurulur

Node.js zaten kuruluysa, bu bölümü geçebilirsiniz.

macOS’ta Node.JS Kurulumu

Mac’te Bash’i Kullanma

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

Mac’te Homebrew kullanma

brew install node

Windows’ta Node.JS Kurulumu

Windows Installer’ı doğrudan nodejs.org web sitesinden indirin .

 

Linux’ta Node.JS Kurulumu

Ubuntu 18.04+ üzerinde, aşağıdaki komutları kullanarak Node’u yükleyebilirsiniz.

sudo apt update

sudo apt install nodejs

Yüklü Node.js Sürümünü Kontrol Edin

Önceki bölümde, Node.js’yi başarıyla kurduk. Kurulu sürümü kontrol ederek doğrulayalım. Terminalde aşağıdaki komutu çalıştırın.

node -v

Ayrıca daha uzun flag aracılığıyla da kontrol edebilirsiniz.

node --version

Sürüm numarası değişse de, buna benzer bir çıktı görmelisiniz.

v14.16.0

NPM Nedir?

NPM , Node.js’nin paket ekosistemidir. 1 milyondan fazla paket ve büyüyen Node.js dünyasındaki tüm açık kaynaklı kütüphanelerin en büyük ekosistemidir. NPM’nin kullanımı ücretsizdir ve binlerce açık kaynak geliştiricisi her gün buna katkıda bulunur.

NPM, kullanıma hazır bir komut satırı yardımcı programıyla birlikte gelir. İhtiyacınız olan paketi aramak için NPM web sitesine gidebilir ve tek bir komut kullanarak kurabilirsiniz. Ayrıca bu komut satırı yardımcı programı aracılığıyla paketinizin sürümlerini yönetebilir, bağımlılıkları gözden geçirebilir ve hatta projelerinizde özel komut dosyaları oluşturabilirsiniz. Şüphesiz, NPM, Node.js topluluğunun en sevilen mülküdür; Node.js, büyük ölçüde mükemmel paket desteği nedeniyle çok sayıda geliştiriciyi kendine çeker.

NPM Paketlerini CLI Üzerinden Yükleme

Node.js’yi kurduğunuzda, NPM otomatik olarak onunla birlikte kurulur. Node.js’nin nasıl kurulacağını önceki bölümlerde ele aldık, şimdi NPM ile bir paket kurma komutuna bir göz atalım:

npm install <package-name>

Evet, bu kadar kolay! Hatta aynı anda birden fazla paket kurabilirsiniz:

npm install <pkg-1> <pkg-2> <pkg-3>

Global bağlamda bir paket kurmak istiyorsanız -g (genel) flagını da belirtebilirsiniz. Bu, paketi makinenizin herhangi bir yerinde kullanmanıza olanak tanır.

Yeni bir uygulamayı başlattığınızda, NPM otomatik olarak tüm NPM paketlerinden oluşan bir package.json dosyası oluşturur. Burada sürümleri, bağımlılıkları ve özel komut dosyalarını belirtebilirsiniz.

publishNPM yardımcı programıyla birlikte gelen , audit, run, ve daha fazlasını içeren uzun bir komut listesi vardır . Bunların nasıl kullanılacağını npm helpkomutu kullanarak kontrol edebilirsiniz.

Popüler Paketler

Bugün Node.js için en popüler paketlerden bazıları şunlardır:

Son olarak;

Özetle, Node.js, birden çok eşzamanlı isteği desteklemesi gereken yüksek ölçekli uygulamalar oluşturmak için kullanılabilecek popüler bir programlama ortamıdır. Tek iş parçacıklı engellemesiz G/Ç, onu hem gerçek zamanlı hem de veri akışı uygulamaları için mükemmel bir seçim haline getirir.

Bunu daha da güçlendirmek için Node.js, aktif geliştiricilerden oluşan devasa bir topluluğa sahiptir ve şu anda bir milyondan fazla paket içeren dünyanın en büyük açık kaynaklı paket deposu NPM’ye sahiptir.

Node.js’yi kullanmaya başlamak kolaydır. Ayrıca nodejs.dev adresindeki resmi Node.js belgelerini ziyaret ederek bilginizi genişletebilirsiniz.

 

Exit mobile version