JavaScriptYazılım

Node.js Nedir? Nerelerde Kullanılır? 2020

Genel olarak Node.js ‘in bir programlama dili olduğu yanılgısı var. Ancak Node.js bir programlama dili değildir. Peki, bir programlama dili değilse nedir? Node.js açık kaynak kodlu, Twitter ve Aliexpress gibi dünyaca ünlü şirketler tarafından kullanılan, her türlü proje için uyumlu harika bir platformdur. Ve bu platform hangi dili kullanıyor diye merak ediyorsanız tabi ki cevap: JavaScript :) 

Geekler için teknik bir tanım yapmak gerekirse : 
Node.js, Google Chrome’un JavaScript (V8) Motorunu temel alarak JavaScript kodunu makine koduna derleyen sunucu taraflı, ölçeklenebilir ve event-based, non-blocking I/O modeli kullanan günümüzde tercih edilen en popüler teknoloji platformlarından bir tanesidir.

Evet, Node.js tanımında geeklerin bildiği ama konuya pek de yakın olmayanların “bu ne ?” dediği terimler kullandım hadi gelin bu terimlere kısaca göz atalım.

Ölçeklenebilir ne demek? 

node.js scability teknotower
nodejs scability

Şu güzel örnekle çok daha net anlaşılacaktır :

Küçük bir marketiniz olsun. Son zamanlarda marketinizin bulunduğu bölge gelişmeye başladığı için artık marketinize gelen müşteri sayısı artıyor. Marketinizde bulunan 2 kasada da uzun kuyruklar oluşuyor. Haliyle bekleyen müşteriler de bu duruma sinirleniyor ve aldıkları ürünleri bırakıp gidiyorlar. Bu durumu fark ettiniz ve bir şeyler yapmalısınız. Ne yapardınız?

Aklınıza Kasa sayısını artırmak geliyor ve ihtiyacı karşılayacak kadar kasa ekliyorsunuz. İşe yarıyor! Müşteriler bu durumdan memnunlar ve herkes mutlu :) Aradan zaman geçiyor ve bölge kalabalıklaşmaya devam ediyor. Sizin de marketinizde kasa koyacak yer kalmadı. Aynı zamanda, marketinizi fiziksel olarak büyütmenin de bir kalıcı çözüm olmadığı ortada. İşler biraz daha karmaşıklaşıyor!

Müşteriler mutsuz. Yine söylenmeler ve şikayetler artıyor! Neyse ki yeterince paranız var ve bölgede başka bir şube açıyorsunuz. Müşterileriniz artık iki şubenize dağıldığı için her şey tekrar eskiye dönüyor ve rahat bir nefes alıyorsunuz. :)

Bu eğlenceli örnekte, markete kasa eklemek dikey ölçeklendirme oluyor. Yani sistemi rahatlatmak için tek bir makinenin sistem özelliklerine eklemeler yapmak… İkinci bir şube açmak ise yatay ölçeklendirme yani sisteme farklı makineler eklemektir. Kabaca, Dikey : mevcut imkanları iyileştirmek ve geliştirmek. Yatay : sistemi klonlamak denilebilir.

Event-Based ne demek ?

nodejs sensor
nodejs sensor

Kelime anlamı : Olay tabanlı… Yazdığınız bir programın çalışma zamanında, kullanıcı eylemleri (fare tıklamaları, tuşa basma vb.), sensör çıkışları veya diğer programlardan gelen iletiler gibi olaylarla ihtiyacı olduğunda kullandığınız model event-based ‘dir.

Non-Blocking I/O ne demek ?

Tek bir işlemin aynı anda birden fazla istek sunmasına izin verir. Yani, işlemin engellenmesi ve I/O (giriş/çıkış) işlemlerinin tamamlanmasını beklemek yerine, I/O işlemleri sisteme devredilir. Böylece, işlem bir sonraki kod parçasını yürütebilir.

Node.js ile neler yapılabilir ?

Başlarken “… her türlü proje için uyumlu harika bir platformdur …” demiştim. Bunun sebepleri arasında, önceden oluşturulmuş çok sayıda modülünün bulunması da var. NPM ‘de (node package manager – düğüm paketi yöneticisi) herhangi bir şey için hemen hemen her modülü bulabilirsiniz. İstediğiniz projeyi rahatlıkla geliştirebilirsiniz.

Yeni başlayanlar için İnternette biraz araştırma ve uğraş verince yapılabilecek birkaç örnek vermek yararlı olur diye düşündüm. Node.js öğrendikten sonra bu örneklerle kendinizi geliştirmek hem eğlenceli hem de bittiğinde elinizde gerçek projeler bulunmuş olacak.

Çok oyunculu oyun

node.js games teknotower
Node.js games

Node.js , Socket.io ve hayal gücünüzü de kullanarak farklı tarzda oyunlar yapabilirsiniz.

Canınız sıkıldığında kendi yaptığınız oyunu oynamak harika olmaz mıydı? Bence olurdu :)

Müzik çalar

nodejs music player teknotower
Node.js music

NPM, müzik çalar için bir çok modüle sahiptir. Bu modülleri kullanarak hayalinizdeki müzik çaları yapabilirsiniz. Sevdiğiniz müzikleri kendinize ait müzik çalarınızdan dinleyebilirsiniz.

Nesnelerin İnterneti (uzaktan kumandalı araba, PC vb.)

node.js iot teknotower nesnelerin interneti
nodejs iot

Node.js , veri yoğunluğu olan, gerçek zamanlı uygulamalar geliştirmek için biçilmiş kaftandır. IoT içindeki sensörler, işaretçiler ve giyilebilir cihazlar gibi cihazlar büyük talepler oluşturur. Node.js, bu istekleri çok verimli bir şekilde işler. Uzaktan kumandalı araba, giyilebilir cihazlar, akkıllı ev teknolojileri gibi IoT cihazlarını istediğiniz gibi kullanabilirsiniz.

Görüntülü Grup Sohbeti

node.js meet görüntülü sohbet uygulaması teknotower

Ailenizle, arkadaşlarınızla gerçek zamanlı olarak görüntülü sohbet yapabildiğiniz bir web siteniz olsaydı fena olmaz mıydı? :) 

Slayt Gösterisi Sunumu

nodejs-slideshow
nodejs-slideshow

Node.js kullanarak telefonunuzdaki slayt gösterisini yerel ağınızda veya internet sitenizde yayınlayabilirsiniz. Hatta slayt gösterisini telefonunuzdan kontrol edebilirsiniz.

Umarım aradığınız cevapları verebilmişimdir. İlerleyen yazılarımda Angular için Node.js kullanarak API yapacağım. Beraber Node.js kullanımını yakından incelemiş olacağız. TeknoTower platformunda diğer yazılarımda görüşmek üzere.


2 Yorum

  1. Howdy are using WordPress for your site platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you require any coding expertise to make your own blog? Any help would be greatly appreciated!

    1. Hi,
      If you know anything about the coding, this will help you a lot.
      Other way, you will definitely have difficulty.
      But wordpress for everyone.
      You can try it.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu