NodeJS Ad?m 1 – NodeJS Nedir?

Ad?m Ad?m Nodejs yaz?lar?m?z?n ilkinde sizlere birka n bilgi ile beraber nodejs’in ne oldu?undan bahsedece?im.

Frontend & Backend Kavram?

Yazd???m?z uygulamalar yksek ihtimalle ok kullan?c?l? uygulamalard?r. oklu kullan?c?l? uygulamalar genelde Sunucu(Server)/?stemci(Client) mant??? ile yaz?l?r. Sunucu yani evrim ii al??an, tm verilerin tutuldu?u merkezi bir sistem. ?stemci yani bu merkezi sisteme ba?l? al??an merkezi sisteme veri iletimi yapan, kullan?c?yla etkile?imi sa?layan yan program.

serverside-clientside

Gnmz modern uygulamalar da bu istemci genelde taray?c?d?r(browser). Taray?c? zerinden kullan?lan uygulamalar genelde Web Uygulamas? olarak adland?r?l?r. Kullan?c? uygulamay? kullanmak istedi?inde taray?c?dan sunucuya bir istek gnderir, sunucu iste?e gre uygulama ierisinde kendi anlayaca?? blmleri i?leyerek kullan?c?ya uygun ?kt?y? retir ve taray?c?ya gnderir. Taray?c? ald??? ?kt?y? kendi ierisinde yorumlar ve kullan?c?ya uygun ?kt?y? retir. Sonra kullan?c? gerekti?i yerde tekrar sunucuya istek gnderir, tekrar cevap gelir Genel olarak taray?c? bazl? Sunucu/?stemci mimarisi basit anlat?mla bu ?ekilde al???r.

Burada nemli bir k?s?m sunucunun kendi anlad??? k?s?mlar? yani sunucu tabanl? diller(C#, Java, Php, Python, Ruby…) ile yaz?lm?? k?s?mlar? al??t?rmas?, taray?c?n?n da kendi anlad??? yani taray?c? dilleri(HTML,Css,Javascript, Dart… ) ile yaz?lm?? k?s?mlar? al??t?rmas?d?r. Sunucu taraf?nda al??an koda Backend, taray?c? zerinde al??an koda Frontend denir. Web uygulamar? yazarken Backend ve Frontend kodlar? ayn? proje ierisinde kullan?r?z. Hangi i? mant??? hangi k?s?mda al??acaksa ona gre ya Backendde yada Frontendde yaz?l?r.

unofficial_javascript_logo_2-svg

Javascript

Frontend dillerinden en nemlilerinden bir tanesi Javascripttir. Web taray?c?lar?n?n etkin bir ?ekilde kullan?lmas? iin geli?tirilmi?tir. Kullan?c?yla etkile?imin art?r?lmas?, i? yknn sunuculardan istemcilere ta??nmas?, daha grsel animasyonlu web siteleri/ web uygulamalar? geli?tirilmesi gibi kullan?m alanlar? vard?r. 1995 y?llar?nda ?kt?. Java diliyle isim benzerli?i d???nda hibir alakas? yoktur. Javasvript standartlar? Ecma International firmas? taraf?ndan ECMASCRIPT standartlar?yla belirlenir. Gnmzde kullan?lan ECMASCRIPT standard? 5.1 srmdr. Ve bu standart Javascript 1.8.1 ile desteklenmektedir. Ancak ?u aralar ECMASCRIPT 6 standard? zerinde al??malar devam etmektedir.

Javascript prototip bazl? nesne ynelimli programlama, fonksiyonel programlama, imparatif programlama paradigmalar?n? destekler. Genellikle taray?c?larda kullan?l?r. Google?n Chrome taray?c?s?n? ve bu taray?c? ierisindeki V8 Javascript motorunu geli?tirmesiyle Javascript performans?nda ve geli?imde byk ykseli?ler oldu. Bu Javascript motorunun gc sayesinde daha nce yap?lamayan birok uygulama yap?ld?. Ve ilk defa Javascript frontendden ?karak Backend taraf?na gei? yapt? ve Nodejs do?du.

node_js_logo

NodeJS

NodeJs 2009 y?l?nda Joyent firmas?nda al??an Ryan Dahl taraf?ndan geli?tirilen Javascript al??ma Ortam?d?r.(Javascript Runtime Enviroment). Joyent firmas?n?n deste?i ve V8 motorunun gc ile Dahl Javascripti Backend k?sm?na ta??d?.

Nodejs backend taraf?nda al??an, javascript tabanl? scriptleri yorumlanabilen ve al??t?rabilen, h?zl?, leklenebilir network uygulamalar? geli?tirmeyi sa?layan bir al??ma zaman? ortam?d?r(runtime enviroment).

Javascriptin backende(server side) ta??nmas? ile developerlar tek dil bilerek hem frontend hem backend kod yazabilir hale geldiler. Frontend de kullan?lan javascript ktphanelerinden baz?lar? backend taraf?nda kullan?labilir hale geldi.

Javascriptin do?al Non Block mimarisi sayesinde backend taraf?nda leklenebilir uygulamalar daha kolay bir ?ekilde yaz?labilir hale geldi. Nodejsin leklenebilir uygulamalardaki ba?ar?s? sayesinde kullan?c? say?s? milyonlarla ifade edilen byk siteler nodejs kullanmaya ba?lad?. stelik bunu single thread olarak yapabiliyor.

leklenebilirlik, bir uygulaman?n ayn? anda birden ok kullan?c?ya tak?lmadan cevap verebilir halde olmas?d?r.

Peki bunu nas?l ba?ar?yor? Nodejs olay bazl?(event-driven) Non-Blocking yap?s?n? Event loop denilen bir mimariyle sa?l?yor. (?lerde detay?na girece?iz.) Bu mimariyle tek bir thread(single thread) ile asenkron al??abilmektedir.

Bunlar?n d???nda Nodejsin en byk avantajlar?ndan bir taneside modler yap?s? ve bu yap?y? destekleyen paket ynetim sistemi: npm(nodejs package manager). Nodejs npm ve npm yi destekleyen topluluk sayesinde hemen hemen her i?imizi paketler sayesinde halledebiliyoruz. ?uan npm zerindeki paket say?s? yakla??k 250000 civar?nda. E okadar paket ierisinde mutlaka i?imize yarayan bir paket vard?r :). Tabi bu kadar paket Nodejsin arkas?nda ok byk bir toplulu?un oldu?unuda gsteriyor. Bu kadar byk bir toplulu?un ierisinde sorunlar? zmekte kolay.

Bir sonraki yaz?m?zda rnek kodlara ba?layaca??z ve ilk uygulamalar?m?z yazaca??z.

“NodeJS Ad?m 1 – NodeJS Nedir?” için 4 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir