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?
NodeJS kafama takılan soru
9
●373
- 13-07-2019, 04:28:27Soruları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Üyeliği durdurulduneden saçma olur?benburak adlı üyeden alıntı: mesajı görüntüle
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:46neden saçma olduğunu yazmışsın zatenystr adlı üyeden alıntı: mesajı görüntüle
- 13-07-2019, 04:51:46Üyeliği durdurulduneresinde yazmışımbenburak adlı üyeden alıntı: mesajı görüntüle
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:45uzun 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Üyeliği durdurulduPaylaştığın linklerden ya da neden bahsettiğinden haberin yok sanırım.benburak adlı üyeden alıntı: mesajı görüntüle
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@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
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.