1. javascripti server tarafında kullanma fikriyle ortaya çıkmış dil.
    paket konusuna oldukça zengin olması, hızlı olması, gibi bir çok artısı vardır.
  2. kütüphaneleri ile pek çok web geliştiricinin gönlünü kazanmış javascript tabanlı sunucu dili. kütüphane desteği ve dokümantasyonu konusunda oldukça başarılı pek çok geliştirici tarafından desteklenmektedir. javascript'in rahatlığını sunucu tarafına taşımayı hedef edinmiş ve -şahsi fikrime göre- -göreceli olarak da olsa- başarılı olmuştur.

    bu dili yazmaya insanları en güzel teşvik eden sistemlerden biri facebook'un satın alıp -nedensiz bir şekilde- kapattığı parse cloud idi.

    express.js benim de bir dönem kullandığım tatlı mı tatlı sade bir kütüphanesiydi.

    hala gelişme sürecinde olan bu dilin en büyük eksiği ise zaman zaman çalışmalarınızda kullandığınız en kilit kütüphanelerinizin yeni sürümlerde desteğini yitirmesidir.
  3. (bkz: event-driven programming)

    single-thread çalıştığı ve type-safe olmayan bir dil (js) kullandığı için yazarken nispeten daha fazla tecrübe ve dikkat gerektiren, özellikle kullandığı event loop'un çalışma mantığının doğru anlaşılması gereken sunucu taraflı programlama dili.

    bu handikaplarına rağmen tercih edilmesinin nedeni (sıklıkla tartışılan) performansı ve nispeten kolay öğrenme eğrisidir. son yıllarda, özellikle yüksek trafik içeren back-end uygulamalarda, hızla yükselen bir trendi vardır.

    zengin paket çeşitliliği, uygulama geliştirme hızını artırdığı gibi kontrolsüzce kullanımı risk yaratmaktadır.
  4. javascript ile server-side uygulamalar yazmaya yarayan platform. ayrica hiz icin chromium v8 motorunu kullanir, asenkron calisir.
    ayrica kendi icerisinde "callback hell" diye bir terim barindirir ki javascript konusunda uzman olmayan kisilere sac bas yoldurur.

    neyse ki ben sevgili breaking bed, bu platformda hayvan gibi 2 tane buyuk api calistiriyorum ve sizlere simdi ogretecegim kendi tekniklerim ile artik kodlariniz en az sekilde karisacak.
    1- callback fonksiyonlara her zaman isim verin, bunlari iceride cagirmaniz gerekmez.
    2- express framework kullanin.
    3- models, controllers diye ayirin uygulamayi. controllers'da logic yapiniz olsun.
    4- suslu parantezlere dikkat edin. onlar tek satir halinde calisiyor.
    5- async.waterfall kullanmayi unutmayin.

    evet bu 5 teknik ile artik node.js platformunda gelistirdiginiz api lar artik daha az calisacak. peki ben ne yaptim?
    1 adet apisi, 1 adet kartli apisi, istanbulun en buyuk alisveris merkezlerinin mobil uygulamarindan birinin apisi.
  5. django'dan sonra bakinca biraz uzayli teknolojisi gibi gorunen framework. python'daki "her seyi yapmanin tercihen tek ve bir etkili yolu olmalidir." olayini ezip gecmisler sanirim. oyle bir kultur olusmus. basit bir web sitesi yapayim dedim, pratik olsun diye. kendimi yapboz yapar gibi hissettim bir an. ordan bir mvc framework, ordan bir orm, oteden frontend yapmak icin bir seyler. giris bariyeri biraz yuksek gibi. javascript ogren, bitince node'u ogren, bitince express/sails ogren, bitince onu ogren... diye gidiyor saniyorum.

    hic dertsiz tasasiz async calisan uygulamalar yazabilmek tav etmedi degil.

    elinde guzel kaynak olan varsa paylasirsa sevinirim.