Konular

Node.js Nedir? Ne İçin Kullanılır?

Web teknolojileri her geçen gün hızlı şekilde gelişiyor ve karşımıza yepyeni kavramlar ve teknikler çıkıyor.

Web geliştirmede en büyük rolü olan teknolojilerden birisi şüphesiz JavaScript.  

Eğer JavaScript konusunda yeni iseniz ve hangi framework ile başlamalıyım diyorsanız En İyi 9 JavaScript Framework isimli yazımızı okumanızı tavsiye ederiz.

Node.js Nedir? Ne İçin Kullanılır?

Bu yazımızda Node.js teknolojisi hakkında bir çok konuyu öğreneceğiz.

Node.js Nedir?

NodeJS, server-side, runtime environment uygulamalar geliştirebileceğimiz, Javascript ile kod geliştirilmesine imkan sağlayan “Google Chrome’un v8 Javascript Engine” üzerinde çalışan bir platformdur.

NodeJS 2009 yılında Joyent firması tarafından geliştirilmiştir. Açık kaynak kodludur. Google’ın V8 Javascript motorunun sunucu(server-side) tarafında çalıştırılması ile üretilmiştir.

V8 Google tarafından geliştirilen, Chrome web browserlarının da üzerinde çalıştığı C, C++ ve javascript dilleri ile kodlanan bir enginedir. Tek amacı Javascript kodunu makine koduna çevirmektir.

Node.js, JavaScript ile server side uygulamalar yazabileceğimiz, Joyent tarafından 2009 yılında geliştirilmeye başlanmış bir Javascript Runtime platformudur.
Node.js hakkında daha fazla bilgi için nodejs.org adresini ziyaret edebilirsiniz.

Node js, V8 isimli bir javascript motoru üzerinde çalışır. 

V8, Google tarafından geliştirilen, Chrome web browserlarının da üzerinde çalıştığı C, C++ ve javascript dilleri ile kodlanan açık kaynak kodlu bir motordur.

JavaScript -> V8(C++) -> Machine Code

V8 Javascript motoru hakkında daha detaylı bilgi almak için aşağıdaki linki tıklayabilirsiniz.
V8.dev

V8 tweetlerini takip etmek için,
@v8js

Node.js Nasıl Çalışır?

Node.js, JavaScript ile yazılmış bir programı çalıştırmak için gerekli olan her şeyi içerir. 

Eğer daha önce Java programlama dili ile kodlama yaptı iseniz işte size görsel olarak daha kolay bir anlatım.

Node.js Nedir? Ne İçin Kullanılır?

Node.js; bir JavaScript kodunu sadece tarayıcılarda değil aynı zamanda bilgisayarınızda bağımsız şekilde çalışacak bir uygulama şeklinde kullanmak istenmesinden ortaya çıkmıştır. 

Böylece JavaScript sadece web uygulamaları için kullanılan bir teknoloji olmaktan çıkmış, Python gibi Java gibi programlama dilleri ile aynı kapasitelere ulaşmıştır.

V8 engine JavaScript kodu makine koduna çevirdiği için uygulamalar çok hızlı performanslara erişebilmektedir. 

Neden Node.js Kullanmak Gerekir?

Çok yaygın şekilde kullanılmasının nedenlerini aşağıdaki gibi özetleyebiliriz.

Neler yapılabilir?

Aşağı yukarı her türlü web uygulamaları geliştirilebilirsiniz. Node JS ölçeklenebilir, olay güdümlü (event-driven) asenkron, non-blocking I/O çalışma modelini kullanır. Bu da yüksek performans ile çalışmasını sağlar.

NodeJS yi cazip yapan bir konu ise IIS, Apache gibi yüksek kaynak tüketen web server kullanmak gerekmiyor. NodeJS de uygulama sunucusunu basit bir şekilde kendimiz yazabiliriz.

Gerçek zamanlı (real time) uygulamalar web soket teknolojisi kullanılarak nodeJS ile performanslı bir şekilde yapılabilir.

Linkedin mobil sunucu tarafında nodejs ye geçtikten sonra sunucu sayısını 30 dan 3 e düşürdüğünü ve bazı işlemlerde 20 kata kadar daha hızlı olduğunu açıklamıştır.

Avantajları?

Eğer projenizin bir front-end kısmı olacaksa, JavaScript kullanmaktan kaçınmanız mümkün değildir. Bu durumda back-end kısmında farklı bir dil kullandığınızda geliştiricilerin birbirinin işini yapması pek kolay olmayabilir. NodeJS ile bütün ürününüzü tek dil ile çıkaracağınız için geliştiriciler arası uyum, anlayış ve işbirliği en üst seviyede oluyor.

Tek bir iş parçacığı (thread) ile bloklanmadan çalışabilme imkanı sunması, onun getirdiği en büyük avantajlardan bir tanesidir çünkü ne kadar çok iş parçacığı (thread) o kadar risk ve yerine göre performans kaybına neden olabilir.

Asenkron mimari günümüz uygulamaları için oldukça uygun. JavaScript’in olay güdümlü (event-driven), asenkron yapısı ise bunu oldukça kolaylaştırıyor. Veritabanı, başka bir web servise erişim vb. konularda, buralardan cevap gelene kadar beklemek yerine yeni istekleri hazırlayabilirsiniz.

Npm package manager sayesinde, node ve npm yükledikten sonra verimli, stabil web servisi geliştirme ortamını bizlere sunmaktadır. Ne yapmak isterseniz isteyin istediğiniz şey büyük ihtimalle modül olarak bulunmaktadır. Npm üzerinden yapacağınız arama ile istediğiniz paketi bulabilir ve kolaylıkla kullanmaya başlayabilirsiniz.

Non-Blocking Teknolojisi

I/O ve network işlemlerini non-blocking olarak çalıştıran Node.js, zaman ve kaynak kullanımı konusunda çok başarılıdır. 

Non-bloking; bir uygulama üzerinde bir işlem yaparken işlemlerin birbiririni beklemediği, asekron olarak gerçekleştiği anlamına gelir. 

JavaScript Event Loop

Eğer 26 dakikanız var ise aşağıdaki videoyu izlemenizi öneriyoruz.

JavaScript tek bir thread ile çalışır. Uygulamadaki tüm işleri tek bir thread koşturur. Yapılması gereken işler JavaScript Runtime’ına Event’ler ve Callback’ler ile iletilir. Tüm bu eventler ve callbackler bir kuyrukta tutulur. Thread her defasında kuyruktaki ilk eventi işler. Bu işleme Event Loop adı verilir.

npm Paket Yönetimi

npm harika bir topluluk tarafından oluşturulmuş, bir çok generik problemi çözen kütüphanelerdir. 

Node.js Nedir? Ne İçin Kullanılır?

npm (Node package manager) geliştirmenizi daha hızlı ve verimli hale getirmek için uygulamalarınızda kullanabileceğiniz paketlere sahiptir.

Npm dünyanın en büyük yazılım kayıt defteridir. 

Npm 800binden fazla kod paketi içerir.

Açık kaynak kodlu geliştiriciler yazılımlarını paylaşmak için npm kullanırlar.

Npm hakkında daha detaylı bilgi almak için
Npmjs.com

Node.js Kullanan Bazı Teknoloji Şirketleri

Bir çok teknoloji devi tarafından kullanılmakta olan bir teknolojidir.

Bir kaç tanesi aşağıdaki gibidir.

  • Apple
  • Google
  • IBM
  • Linkedin
  • Pinterest
  • Paypal
  • Netfilix

Sonuç

Node.js performanslı ve gerçek zamanlı veriye dayalı uygulamalar geliştirmek için kullanılabilecek önde gelen teknolojilerden birisidir. Node JS, büyük ölçekli, ciddi projelerde kullanmak isteyen geliştiriciler için ideal bir platformdur. NodeJS hayatımızı çok kolaylaştıran, servisleri ve web siteleri yazmamızı sağlamaktadır. Projenizi taşımayı düşünüyorsanız, ya da yeni bir projeye başlayacaksanız mutlaka göz atmanızı tavsiye ederim.

Kaynak

Yorumunuzu Ekleyin

Yükleniyor...