Node.js Kullanımı :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Node.js Kullanımı

04.04.2015 tarihinde Android Programlama kategorisine eklenmiş, 362 views Kişi Okumuş ve 0 Yorum Yapılmış.

NODE.JS NEDİR?

Node.js Chrome web tarayıcısının da üzerinde çalıştığı gibi, V8 javascript motoru üzerinde çalışan, event-driven, nonblocking I/O modeli kullanan, ölçeklenebilir uygulamalar geliştirmek için dizayn edilmiş bir platformdur. Joyent şirketi tarafından 2009 yılında geliştirilen açık kaynak bir projedir. Burada söz edilen V8 chrome web tarayıcılarının da üzerinde çalıştığı Google tarafından geliştirilen, C/C++ ve Javascript dilleri ile geliştirilen bir platformdur. Yaptığı iş ise Javascript kodunu makine koduna (native machine code) çevirmektir. NodeJs de bu yüksek performanslı Javascript motorunun üzerine inşa edilmiş bir platformdur.

NodeJS platformunda ki mantık her bir olayın sıraya konularak yapılmasıdır. Non-blocking I/O yapısı ile birleşince bu yapı yüksek performanslı uygulamalar çıkarmamıza, düşük özellikli sunucularla bile milyonlarca web istemini (web request) karşılamamıza imkan sağlıyor. Javascript’in doğasında olan asenkron programlama yapısı da bu modele bire bir uyum sağlıyor. Sadece Microsoft tarafında değil daha birçok büyük ölçekle firma tarafından da kullanılmaktadır. Türkiye’deki 8digits node.js teknolojisini kullanan firmalar arasındadır. Aynı zamanda chat uygulamalarında yaygın olarak kullanılmaktadır.

AVANTAJLARI

Daha kolay anlaşılması için günlük hayattan bir örnek vermek gerekirse; BurgerKing’ nin kullandığı çalışma sistemi buna en güzel örnektedir. Tezgahın arkasında hizmet veren çalışanları dikkatli bir şekilde gözlemlersek müşterileri hiç bekletmeden ve arka tarafta bir karışıklık olmadan hızlı bir şekilde çalıştıklarını görürüz. Yani sıradaki kişiye ne istediği sorulur, bu istediği arka tarafa aktarılır ve hemen sıradaki diğer müşteri ile ilgilenilir.

Bu örneği yazılım dünyası için de düşünürsek BurgerKing’de menülerin hazırlanmasını veri tabanından veri çekmeye benzetebiliriz. Veri tabanı işlemleri uygulama açısından bloklayıcı bir işlemdir. Eğer uygulamayı Node.js ile yazarsak veri tabanındaki bloklanma diğer kullanıcılara hizmet vermemizi etkilemeyecektir.

Node.js aynı BurgerKing çalışanı gibi hareket eder. Javascriptin sunduğu ‘event driven’ yapısi sayesinde akışın bloklanma problemi ortadan kalkar. Bunun en güzel yönü ise işlerin sadece bir thread (iş parçacığı) ile gerçekleştirilmesidir. Bu da node.js’nin bize sağladığı en büyük avantajlardan biridir.

Bu sayede popülerliği giderek artan Node.js milyonlara hitap eden web uygulamalarının da dikkatini çekmeyi başardı. Linkedin ve Paypal bunlardan sadece iki tanesidir. Lİnkedin mobil sunucu tarafından Node.js ye geçmeden önce Rails kullanıyordu. Node.js’ye geçtikten sonra:

  • 30 sunucudan 3 sunucuya düşen server maliyeti
  • Bazı işlemlerde 20 kata kadar varan hız artışı
  • Geliştiricilerin tek bir dil üzerinde anlaşabiliyor olması ve backend geliştiricilerinin Javascript geliştirme yeteneklerinin artması gibi avantajlara sahip olmuştur.

Paypal ise direkt olarak ürün ortamını riske etmemek için Node.js’ye geçmeyi göze alamamıştır. Bu yüzden de Java ve Node.js olarak iki platformu aynı anda paralel olarak kullanmaya başlamıştır. Java takımında 5 kişilik bir ekip çalışırken Node.js tarafında 2 kişilik bir ekip çalışmıştır.  Java tarafında hazır olan geliştirme ve çalışma ortamını kurmak NodeJS ekibinin 2 ayını alıyor. Yani 2 ay boyunca java takımı geliştirme yaparken NodeJS takımı sadece gerekli alt yapıyı kurmakla uğraşıyor. 6 ayın sonunda ise NodeJS ekibi java ekibini yakalıyor aynı fonksiyonaliteye sahip uygulamayı geliştirmeyi başarıyorlar. Daha az kişilik bir ekiple 2 aylık gecikmeyle ve aşağıda sıralayacağım farklarla;

  • Neredeyse 2 katı bulan geliştirme hızı
  • %33 oranında daha az satır kodla yazılması
  • %40 oranında daha az dosya ile geliştirilmesi

 

Performans karşılaştırması yapmak gerekirse Node.js uygulamasının Java uygulamasına göre 2 kat daha fazla saniyelik istemi karşılayabildiğini görmüşlerdir. Üstelik Node.js uygulaması tek çekirdekli bir işlemci üzerinden çalışırken Java uygulamasının beş çekirdekli işlemci üzerinden çalıştığı görülmüştür.

Cevap süresinde ise %35 oranında artış tespit edilmiştir. Bu da her bir cevabın yaklaşık 200 ms daha hızlı karşılanmasına karşılık geliyor.

Bu özellikleriyle Node.js web dünyasında hızla yerini almış yeterli olgunluğa ulaşmış, ölçeklenebilirlik açısından nosql veri tabanlarıyla da son derece uyumlu çalışması sebebiyle tercih edilebilecek en uygun geliştirme platformudur.

Ayrıca Node.js bir uygulama dili değil bize çözümler sunan bir geliştirme platformudur.

Node.js ilk çıktığından bugüne kadar büyük bir  hızla gelişmiş ve kullanıcı sayısını sürekli arttırmıştır. Bunu da aşağıdaki grafikte görmek mümkündür.grafik

ÖRNEK:

Node.js hafif ve etkin olmasının sebeplerinden bir tanesi aşağıdaki yaklaşımdır.avantajı

DEZAVANTAJLARI

Henüz çok yeni olduğundan dolayı klasik teknolojilerdeki gibi uygulama geliştirme rahatlığı Node.js dünyasında henüz yok.

NODE.JS’NİN KURULUMU

1.Öncelikle http://nodejs.org/adresinden windows setup’ımızı yüklüyoruz.kurulum2.Sonrasında yükleme tamamlandıktan sonra çift tıklayıp kuruluma başlıyorsunuz. Gelen seçenekleri next diyerek kurulumunuzu tamamlayınız.

3.Kurulum bittikten sonra cmd ile command prompt’u açın. Ancak command prompt’u açarken yönetici ile çalıştır demeyi unutmayın.

4.Aşağıdaki resimdeki yazdığı gibi nodejs’nin kurulduğu klasörden Node.js seçip entere basın.

node25.Şimdi ise artık istediğiniz javascript kodunu server-side olarak deneyebilirsiniz. Eğer takıldığınız bir durum olursa standart komutları görebilmeniz için “.help” yazmanız yeterli. Çıkmak istediğinizde ise “.exit” yazıp çıkabilirsiniz.

6.Şimdi “.exit” yazıp çıkalım. Ve org‘un anasayfasında bulunan örneği deneyelim.kurulumu17.Şimdi herhangi bir klasörde bir JS dosyası oluşturun ve içine yukarıdaki kodu yapıştırın. Kaydettikten sonra açık olan command prompt’a gidip “node C:\Node_Test\IlkDeneme.js” yazıp enter’a bastığınızda command prompt’ta “Server running at http://127.0.0.1:1337/” yazısı çıkacak.

8.Şimdi ise hangi browser’ı kullanıyorsanız onu açıp http://127.0.0.1:1337/ sayfasını açtığınız takdirde görüldüğü üzere Hello World yazısı çıkacak.

9.Eğer hiçbir problem çıkmadan çalıştırdıysanız şuan küçükte olsa bir HTTP Serveryazmış oldunuz demektir.

  1. require komutu birnevi class çağırma olarak görebilirsiniz.require(‘http’) kısmında http library’sini kullanmak istediğimizi belirtiyoruz. Böylelikle server yaratma, çağrı atma, çağrı yönlendirme gibi işlerimizi yapabileceğimiz fonksiyonları getirmiş oluyoruz.
  2. createServer(function (req, res) {” ise yazıldığından da anlaşıldığı üzere http server’ımızı yaratıyoruz. req verisine request’ler, res verisine ise response’lar düşüyor.
  3. Yarattığımız server’a yapılan çağrılarda content-type olarak text/plainolduğunu söylüyoruz. Örneğin bunuapplication/json yaparak bu json verisidir yada application/png diyerek bu bir resimdir diyebilirsiniz.
  4. Burada ise response write yapıp sayfamızın response’unu bitiriyoruz.
  5. İşte burada server’ımızın hangi portu dinleyeceği ve hangi ip’yi kullanacağını belirtiyoruz. Haliyle localde çalışacağımız için buraya “127.0.0.1” yazıyoruz.
  6. Burada ise server’ın çalıştığını ve adresini ekrana basıyoruz.

 

Sultan BULAT – Meryem Gül DEMİR

 

Kaynaklar

http://dergi.bmo.org.tr/sayi-3/nodejs-nedir

http://kodcu.com/2012/08/node-js-nedir-ve-neden-kullanilir-bu-yazimizdan-node-js-teknolojisine-kisa-bir-giris-yapmak-istiyorum-neden-her-gecen-gun-internet-kullanan-kisilerin-sayisi-artiyor-ve-bu-surec-klasik-teknolo/

https://www.udemy.com/nodejs-socketio-ve-redis-kullanarak-real-time-chat-ornegi/

https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/

http://blog.ilkerguller.com/2012/01/nodejs-dersleri-bolum-1-kurulum-ve-ilk.html

 

İlgili Terimler : , ,
Yazar Hakkında

Yazar : Kadriye Kundakci

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin

Sitemizde En Çok Yorumlanan İçerikler

Rating Bar Kullanımı
Rating Bar KullanımıAndroid’de yıldız şeklinde derecelendirme çubuğu olarak kullanılır. Kullanıcı sürükleme
Android Wear Emülatör Kurulumu
Android Wear Emülatör Kurulumu   Android studio da geliştireceğimiz uygulamaların kontrolunü yapmak için emülatör
Resim Galerisi Oluşturma
Resim Galerisi OluşturmaAndroid Programlama – Resim Galerisi Oluşturma Bu yazıda, bir galeri
SQLite Database Browser Kullanımı
SQLite Database Browser KullanımıSQLite Database Browser Kullanımı Merhaba arkadaşlar, Android uygulamaları geliştirirken uygulama üzerindeki

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Ekim 2017
    P S Ç P C C P
    « Kas    
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta