Arkadaşlar bu yazımda sizlere Node.js nedir? Node.js neden şu an çok popüler ve Node.js ile neler yapabileceğinizi anlatacağım.
Javascript programlama dili bildiğiniz üzere eskiden sadece istemci tarafında (client-side) çalışan bir dildi. Tarayıcıda çalıştırdığımız Chrome V8 Engine kullanıma sunuldu ve artık sunucu tarafında da (server-side) Javascript dilini kullanabiliyoruz. İşte Javascript dilini sunucu tarafında kullanmamıza olanak sağlayan Chrome V8 Engine, Node.js olarak adlandırılmaktadır.
Node.js temel olarak sunucu tarafında çalışan javascripttir. Javascript temelli olması sebebiyle çok dinamik ve hızlı yapısı vardır.
Javascript dilinin Node.js vasıtasıyla Back-end’e taşınmasıyla artık sadece bir dil bilerek full-stack uygulama geliştirebilirsiniz. Zaten son dönemde artık React gibi Javascript Front-End kütüphane ve framework’leri de ciddi seviyede popüler olmaya başladı.
Örneğin şu an C#, Java, Python, Ruby, Php gibi ekstra bir dil öğrenmeye gerek kalmadan sadece Javascript bilerek Node ve React ile full-stack web uygulamaları geliştirebilirsiniz. Bir startup fikriniz varsa Node ve React ile hızlıca MVP geliştirip yayınlayabilirsiniz.
Peki Javascript ve Node.js Neden bu kadar son dönemde popüler oldu?
Yukarıda stackoverflow platformunun 2020 yılında yaptığı araştırmanın sonuçlarını paylaştım. 57.000 den fazla yazılım geliştiriciye yapılan ankette en çok sevilen ve tercih edilen teknolojilerde Javascript ve Node.js en önlerde gelmekte.
Node.js’in en önemli özelliği asenkron yapıda çalışması ve non-blocking olması. Peki nedir bu asenkron çalışma ve non-blocking?
Asenkron ve non-blocking çalışma mantığını bir restoran örneği ile çok iyi bir şekilde anlayacağınızı düşünüyorum. Bir restorana gittiğinizi düşünün ve sipariş verin. Siz siparişi garsona vereceksiniz, o da aşçıya bildirecek ve aşçı sizin yemeğinizi yapmaya başlayacak. Diyelim ki sizin istediğiniz yemeğin yapılış süresi 30 dk. Bu arada tabi ki restorandaki tek kişi siz değilsiniz. Bir çok kişi aynı anda garsona sipariş verecek ve aşçılar yemekleri yapmaya başlayacak. Eğer garson diğer kişilerin siparişlerini sizin yemeğinizin yapılıp size teslim edilene kadar almasaydı sizden sonra sipariş vermeyi bekleyen insanlar çok zaman kaybetmiş olacaktı. Ama garson siparişi aldı ve ilettti, sonra başkasının siparişini aldı, onu da iletti. Dolayısıyla kimse diğerinin siparişinin bitmesini beklememiş oldu. İş bu sistemde bir kişinin isteği diğerinin işini engellememiş oldu.
Aynı sistem node.js çalışma mantığında da var. Node.js tarafına bir işlem için istek gönderildiğinde node.js onu alıp hemen işleme koyuyor ama diğer işlemi almak için bu işlemin bitmesini beklemiyor. Sırayla istekleri alıyor ve sonuçları beklemeden devam ediyor. Sonuçlar geldikçe iletiyor. Aynı restoran mantığında çalışıyor ve bu durumda bir istek diğer isteğin bitmesini beklemediği için diğer isteği engellememiş oluyor. Hangisi önce biterse o isteğin cevabı geliyor. İşte bu mantığa asenkron çalışma mantığı deniyor ve bir işlem diğer işlemi engellemediği içinde non-blocking oluyor.
Yukarıdaki örnekte asenkron ve senkron çalışmanın arasındaki fark güzel şekilde anlatılmış. Senkron işlemlerde bir işlem diğer işlemleri beklediği için toplam 4 adet işlemin bitmesi 45 sn sürmüş. Ama asenkron yapıda her işlemin başlangıcı diğer işlemin bitişine bağlı olmadığı için 25 sn dürmüş. İşte node.js bu asenkron yapısıyla ciddi bir hız kazanıyor.
Aynı zamanda birden çok kullanıcıya hızlı cevap verebildiği için ölçeklenebilirlik sorununa çözüm sunuyor. Bu da aslında onun popüler olmasının temel nedenlerinde biri. Aynı anda binlerce insanın kullandığı bir sistem geliştiriyorsak node.js çok iyi bir tercih olacaktır.
Peki Python, Asp.Net, Java, Php, Ruby gibi teknolojiler bu ölçeklenebilirlik sorununu çözemiyor mu? Elbetteki çözebiliyor fakat daha maliyetli oluyor. Zaten işte bu yüzden Linkedin, Netflix gibi ciddi kullanıcıları olan büyük şirketler Node.js kullanıyor.
Nodejs’in en büyük avantajlarından bir tanesi de modüler yapısı ve bu yapıyı destekleyen paket yönetim sistemi olan npm (nodejs package manager). Npm’i Node.js projelerinde kullanılmak üzere içerisinde bir çok modül barındıran bir depo gibi düşünebiliriz. Bu modüller open-source geliştiricileri tarafından yazılarak npmjs.com üzerine yüklenmektedir. Npm içerisinde şu an 1 milyondan fazla paket, modül eklenmiş durumda. Bu da aslında popülaritesini gerçekten net olarak gösteriyor.
Bu yazımda sizlere genel itibariyle Node.js hakkında bilgi vermiş oldum ve artık Node.js’in güçlü taraflarını, neden bu kadar popüler olduğunu öğrenmiş oldunuz. Bir sonraki yazımda sizlere Node.js kullanarak nasıl back-end geliştirebileceğinizi ve npm kullanarak modülleri nasıl kullanabileceğinizi anlatacağım. Bir sonraki yazımda görüşmek üzere …
Hiç yorum yok:
Yorum Gönder
Görüş ve Düşüncelerinizi Bizimle Paylaşmayı Unutmayın.