• 13-07-2019, 03:25:08
    #1
    Merhaba arkadaşlar.
    nodeJS 'e başlamayı düşünüyorum.
    serverside tarafında full javascript mi kullanılıyor?
    kafama takılan bazı sorular var:
    NodeJS kurullu bir serverda php kullanabiliyor muyuz? Yoksa sadece javascriptin eline mi bakıyoruz?
    "Sadece port vs tarafı nodeJS ile halledilip geri kalan kısımları php ile kodlamak" diye bir şey var mı?
    Öğrenmek istememdeki amaç yüksek trafikli bir proje yazmayı düşünmemdir. Sizce bildiğim yoldan mı gitmeliyim ya da "NodeJS olmazsa olmaz" mı diyorsunuz?
  • 13-07-2019, 04:15:39
    #2
    serverside da nodejs veya php kullanılabilir ama ikisi birlikte saçma olur sadece node veya sade php ile yüksek trafikli proje yazılabilir
  • 13-07-2019, 04:28:27
    #3
    Sorularına cevap vermeye çalışayım;
    NodeJS kurullu bir serverda php kullanabiliyor muyuz? Yoksa sadece javascriptin eline mi bakıyoruz?
    - Servera PHP kurarsan kullanabilirsin ama işine yarıyorsa yoksa gereksiz olur.
    "Sadece port vs tarafı nodeJS ile halledilip geri kalan kısımları php ile kodlamak" diye bir şey var mı?
    - Şöyle şeyler var socket.io ile birlikte kullananlar var ama backend'i sadece js ile yazacaksan buna gerek yok. Hali hazırdaki php projelerin için nodejs + socket.io gibi bileşenler kurabilirsin.
    Öğrenmek istememdeki amaç yüksek trafikli bir proje yazmayı düşünmemdir. Sizce bildiğim yoldan mı gitmeliyim ya da "NodeJS olmazsa olmaz" mı diyorsunuz?
    - Bu senin projene + yazacağın kodların kalitesine (optimize vs..) + sunucu kurulumu ve yönetimine bağlı. Yarın node js öğrenirsin bu sefer go daha hızlı onamı geçsem dersin Zaten büyük sistemlerde milyonluk kullanıcılı sistemlerden bahsediyorum hiç bir şey tek başına kullanılmaz arka planda iş yapan bir sürü şey vardır.
  • 13-07-2019, 04:28:28
    #4
    Üyeliği durduruldu
    benburak adlı üyeden alıntı: mesajı görüntüle
    serverside da nodejs veya php kullanılabilir ama ikisi birlikte saçma olur sadece node veya sade php ile yüksek trafikli proje yazılabilir
    neden saçma olur?

    Konu sahibine de yanıt olarak; kısaca evet.
    Uzunca;
    PHP 80 portundan çıkıyor. Nodejs'i farklı bir port'dan serve edebilirsin. Örn: 8081.
    Real time operation'ları nodejs socket.io ile hallederken,
    Ana tarafta php'den faydalanabilirsin.

    1 tane projemde, php ana backend işlerini görüyordu (veritabanı haberleşmesi, web service gibi)
    Nodejs ile ise WebRTC kullanarak real time sesli ve görüntülü konuşma; notification ve chat kısımlarını yapmıştım.
    Ayrıca yakın zamanda bu projeye python'u dahil edip image processing işlemlerini deep learning üzerinden oradan halledeceğim.

    Yani demeye çalıştığım; birden fazla backend dilini bir sunucudan verebilirsin. Burada ciddi güvenlik problemleri oluşabilir; ona dikkat etmen lazım.


    Nodejs: Evet tamamen javascript. Asenkron çalışıyor, normal programlama dili mantığı dışında. Malum PHP'de her kullanıcı ayrı thread açılırken Nodejs tek thread üzerinden yürür.
    Yani; tüm user'lar aynı thread'i kullanır. Bu da şu demek oluyor, bir tane nodejs sunucun çökerse tüm kullanıcıların erişimi kesilir. Bu yüzden nodejs için birden fazla bot oluşturan componentler var.
    Böylece biri düştüğü zaman diğerinden devam ediyor.
    Kodlamasında ise tek thread olduğu için herşeyi asenkron yani callback metotlarıyla halletmen lazım. Yani bir metodu çağırdığında "abi sen bunu hallet, işin bitince bana haber ver" demen lazım. (event-driven dediğimiz mevzu)
    Diğer türlü onu bir döngüye vs. sokarsan o bitene kadar diğer işlemler bekler.

    Buradan detayına bakarsın:
    https://www.tutorialspoint.com/nodejs/nodejs_event_loop

    Ayrıca nodejs bidirectional'dır. Diğer programlama dillerinin aksine.
    Yani client request etmeden sunucudan response verebilirsin.
    Bu da socket.io'yu ortaya çıkarmıştır.
    Bunu da kısaca anlatıyım;
    Örneğin bir oyunda (php ile yazdıysan) bir kullanıcı ölüp ölmediğini anlamak için sürekli sunucuya sormak zorundadır. Ben öldüm mü, ben öldüm mü diye.
    Bunu da Polling ya da Long Polling dediğimiz olaylarla yaparız. Yani atıyorum 3-5 saniyede sunucuya bir istek atarız. Bu da işleri sunucu tarafında zorlaştırır.
    Çünkü durmadan istek gelir.
    Nodejs ise bidirectional olduğu için; sunucu direk istemciye sen öldün diyebilir. İstemcinin istek atmasına lüzum yoktur.
    Diğer örnek; bana mesaj var mı, bana mesaj var mı diye sorarsın php'de chat yazdıysan. Nodejs de direk mesajı iletirsin, herhangi bir request'e gerek duymadan.
    PHP'de response verebilmen için illaki bir request gerekir.

    Bi r10+ 'nı alırım, daha da yazmam
  • 13-07-2019, 04:45:46
    #5
    ystr adlı üyeden alıntı: mesajı görüntüle
    neden saçma olur?

    Konu sahibine de yanıt olarak; kısaca evet.
    Uzunca;
    PHP 80 portundan çıkıyor. Nodejs'i farklı bir port'dan serve edebilirsin. Örn: 8081.
    Real time operation'ları nodejs socket.io ile hallederken,
    Ana tarafta php'den faydalanabilirsin.

    1 tane projemde, php ana backend işlerini görüyordu (veritabanı haberleşmesi, web service gibi)
    Nodejs ile ise WebRTC kullanarak real time sesli ve görüntülü konuşma; notification ve chat kısımlarını yapmıştım.
    Ayrıca yakın zamanda bu projeye python'u dahil edip image processing işlemlerini deep learning üzerinden oradan halledeceğim.

    Yani demeye çalıştığım; birden fazla backend dilini bir sunucudan verebilirsin. Burada ciddi güvenlik problemleri oluşabilir; ona dikkat etmen lazım.


    Nodejs: Evet tamamen javascript. Asenkron çalışıyor, normal programlama dili mantığı dışında. Malum PHP'de her kullanıcı ayrı thread açılırken Nodejs tek thread üzerinden yürür.
    Yani; tüm user'lar aynı thread'i kullanır. Bu da şu demek oluyor, bir tane nodejs sunucun çökerse tüm kullanıcıların erişimi kesilir. Bu yüzden nodejs için birden fazla bot oluşturan componentler var.
    Böylece biri düştüğü zaman diğerinden devam ediyor.
    Kodlamasında ise tek thread olduğu için herşeyi asenkron yani callback metotlarıyla halletmen lazım. Yani bir metodu çağırdığında "abi sen bunu hallet, işin bitince bana haber ver" demen lazım.
    Diğer türlü onu bir döngüye vs. sokarsan o bitene kadar diğer işlemler bekler. (event-driven dediğimiz mevzu)

    Buradan detayına bakarsın:
    https://www.tutorialspoint.com/nodejs/nodejs_event_loop

    Ayrıca nodejs bidirectional'dır. Diğer programlama dillerinin aksine.
    Yani client request etmeden sunucudan response verebilirsin.
    Bu da socket.io'yu ortaya çıkarmıştır.
    Bunu da kısaca anlatıyım;
    Örneğin bir oyunda (php ile yazdıysan) bir kullanıcı ölüp ölmediğini anlamak için sürekli sunucuya sormak zorundadır. Ben öldüm mü, ben öldüm mü diye.
    Bunu da Polling ya da Long Polling dediğimiz olaylarla yaparız. Yani atıyorum 3-5 saniyede sunucuya bir istek atarız. Bu da işleri sunucu tarafında zorlaştırır.
    Çünkü durmadan istek gelir.
    Nodejs ise bidirectional olduğu için; sunucu direk istemciye sen öldün diyebilir. İstemcinin istek atmasına lüzum yoktur.
    Diğer örnek; bana mesaj var mı, bana mesaj var mı diye sorarsın php'de chat yazdıysan. Nodejs de direk mesajı iletirsin, herhangi bir request'e gerek duymadan.
    PHP'de response verebilmen için illaki bir request gerekir.

    Bi r10+ 'nı alırım, daha da yazmam
    neden saçma olduğunu yazmışsın zaten
  • 13-07-2019, 04:51:46
    #6
    Üyeliği durduruldu
    benburak adlı üyeden alıntı: mesajı görüntüle
    neden saçma olduğunu yazmışsın zaten
    neresinde yazmışım
    biliyorsan birşey yaz. cevap vermek için yazma.
    yüzlerce integration hakkında döküman var internette.
    neyi saçma?
    projeyi tek bir backend'den handle etmek kadar absürt birşey yok. istediğin kadar dili integrate edebilirsin. yeterli önlemi aldığın sürece.
    varsa fikrin oturalım tartışalım yoksa bu yazıma hiç yanıt verme
  • 13-07-2019, 05:29:45
    #7
    uzun uzun açıklayacak vaktim yok eksileri artılarından çok bunu tartışmak anlamsız olur
    bir iki link bıraktım alta
    https://stackoverflow.com/questions/...61439#18761439
    https://medium.com/@MartinMouritzen/...t-fb12abe955b0
  • 13-07-2019, 05:47:42
    #8
    Üyeliği durduruldu
    benburak adlı üyeden alıntı: mesajı görüntüle
    uzun uzun açıklayacak vaktim yok eksileri artılarından çok bunu tartışmak anlamsız olur
    bir iki link bıraktım alta
    https://stackoverflow.com/questions/...61439#18761439
    https://medium.com/@MartinMouritzen/...t-fb12abe955b0
    Paylaştığın linklerden ya da neden bahsettiğinden haberin yok sanırım.
    Keşke okusaydın ve buradaki tartışma konusuyla bir alakası olmadığını farkedebilseydin.
    Adam iç içe kullanabilir miyim diye sormuş.
    Diğerinde ise nodejs içinde php çalıştırmaktan bahsetmiş.
    Integration'dan anladığın buysa vay haline.
  • 13-07-2019, 13:25:20
    #9
    @ystr; , @UMSGBTM; Yanıtlarınız için teşekkür ederim. tatmin edici oldu. senkron çalışmasını beklemiyorum zaten, entegre çalışması yeterlidir.
    Amaç requestleri ve kaynak tüketimini minimuma indirmek hocam. NodeJS öğrenmeye başlıyorum
    NodeJS i ilk duyduğumda sadece basit bir javascript kütüphanesi olduğunu sanmıştım. Çünkü videoda anlatan kişi kendisi de anlamamış olacak ki öyle diyordu. Haliyle en basitinden client request işlemleri güvenlik açığı oluşturur ve bir gün patlar diye düşünüyordum.
    Bu yüzden pek yanaşmamıştım. Sonra server tarafında kullanıldığını öğrendim falan, öğrenmeye karar verdim. Böyle de bir anım var bu arada