29 Temmuz 2012 Pazar

NodeJS Nedir?



NodeJS için genel bir tanıtım yazısı hazırlamakla başlamak istedik. İçeriklerimizi olabildiğince Türkçe hazırlamaya özen gösterdik. Bazı kelimelerin google aramalarında daha faydalı olabilmesi ya da Türkçe karşılığı olmaması nedeniye olduğu gibi kullanıldık.


NodeJS, event tabanlı olarak sunucu üzerinde javascript çalıştırmayı sağlayan bir yapıdır. 


Google chrome'un da javascript derlemekte kullandığı yine google tarafından geliştirilmiş olan V8 motoru üzerinde çalışmaktadır. 


I/O ve network işlemlerini non-blocking olarak yaptığı için kaynak yönetimi gibi konularda diğer yazılım dillerine ve platformlarına göre daha farklı bir konumdadır ve bu özellik NodeJS'in temelini oluşturan bir yapıdır. Bu da NodeJS için performans odaklı olmasını sağlar.


Multi-Thread bir yapı gibi düşünülebilir ama aslında tek bir thread ile yönetilmektedir bu tarz işlemler. İşlem sırasına alıp sırayla işlemleri yapar ve geri yanıt döner. Buradaki non-blocking özelliğini  sağlayabilmek için (neredeyse) tamamen asenkron bir iletişim kullanmaktadır. NodeJS'in mimarisinde event-loop şeklinde bir yaşam döngüsü vardır. Çalıştırdığımızda eventleri dinlemek için sürekli olarak bir döngüdedir. Bir event yakalanırsa gerek işlemi yapıp sıradaki event'i beklemeye devam eder.


Altyapısını V8'den alan NodeJS ekosisteminde hemen hemen her gün yeni çıkan paketler ile istediğiniz özellikleri üstüne ekleyip NodeJS'in yeteneklerini genişletebiliyoruz.


V8'den kısaca bahsetmek gerekirse, Google tarafında C/C++ ile geliştirilen bir javascript derleyicisidir. Sanırım ortak bir kanıdır, C/C++ dillerinin diğer platfrom ve dillere göre hızlı olduğu. Aynı görevi karşılayan, C/C++ ile javascript ile yazılmış olan iki proje arasında 300-350 kat hız farkı olduğu yapılan testlerde ortaya çıkmıştır. Kısacası, NodeJS'in üstünde çalıştığı V8 ki C/C++ kullanmasına rağmen performans konusunda o kadar çok emek vermiş ki inanılmaz derecede hız kazanabiliyor.

Hiç yorum yok:

Yorum Gönder