Merhaba arkadaşlar, bu yazımda sizlere Node.js Nedir? konusundan bahsedeceğim.
Node.js Javascript ile server side tarafında uygulamalar yazmamızı sağlayan, 2009 yılında geliştirilmeye başlanmış bir Javascript Runtime platformudur. V8 isimli Javascript motoru üzerinde çalışır. V8 Google tarafından geliştirilmiş, Chrome tarayıcılarının da üzerinde çalıştığı C ve C++ ve Javascript dilleri ile geliştirilmiş açık kaynak bir motordur.
Node.js Nasıl Ortaya Çıktı?
Node.js, JavaScript kodunun sadece tarayıcılar üzerinde değil, bilgisayar üzerinde de bağımsız bir şekilde çalışmasını sağlayacak uygulama olarak kullanılmak istenmesinden dolayı ortaya çıkmıştır. Böylelikle JavaScript sadece web uygulamaları için kullanılan bir teknoloji olmaktan çıkmış ve programlama dilleri ile aynı kapasiteye ulaşmıştır.
Node.js Avantajları?
- Non-Blocking Teknolojisi
- JavaScript Event Loop
- NPM Paket Yönetimi
Non-Blocking Teknolojisi
Node.js, kaynak kullanımı ve zaman konusunda son derece başarılıdır. I/O ve network işlemleri non-blocking olarak çalıştırılır. Non-Blocking, uygulamalar üzerinde bir işlem yapılırken diğer yapılması istenen işlemler için birbirini beklemez ve bu işlemleri asenkron olarak gerçekleştirir.
JavaScript Event Loop
JavaScript single thread ile çalışır. Uygulamada bulunan tüm işleri tek bir thread koşturur. Yapılması istenen işlemler JavaScript Runtime’ına Event ve Callback’ler ile iletilir. Tüm bunlar bir kuyrukta tutulur ve thread her defasında kuyrukta olan ilk event’i işler. Bu işleme Event Loop adı verilir.
Kompleks ve işlevsel işlemler ile ilgili süreçler API ile sağlanır. Bu yapı; tarayıcı üzerinde Browser API ile sağlanırken, runtime’lar üzerinde nodejs ile sağlanabilir. Bu işlemler API yardımıyla soyutlanarak ortaya çıkmış ve daha yürütülebilir yapının yönetilmesini sağlayan şeye de Event Loop denir.
NPM Paket Yönetimi
Node Package Manager(NPM), topluluk tarafından oluşturulmuş ve birçok problemi çözmeyi sağlayan kütüphanelerin bulunduğu paket yönetim sistemidir. NPM komut satırından çalıştırılabilir ve uygulamalar için bağımlılık yönetimi sağlar. Açık kaynak kodlu geliştiriciler yazılımlarını paylaşmak için NPM kullanırlar.
Node.js Kullanan Bazı Teknoloji Şirketleri
- IBM
- Apple
Node.js performanslı ve gerçek zamanlı veriye dayalı uygulamalar geliştirmek için kullanılabilir.