Mongo - Express-React-Node (MERN)
-
repoya dgidip .com u .dev olarak değişin enter yapın. Afiyet olsun. Bu da böyle bi tırriktir
-
end bunu yazdı
Php lüzumsuz sunucu yükü bence.
Neden böyle bir düşünceye sahipsin hocam merak ettim?
-
dcpromo bunu yazdı
repoya dgidip .com u .dev olarak değişin enter yapın. Afiyet olsun. Bu da böyle bi tırriktir
Süper bilgi teşekkürler hocam
-
EmQceR bunu yazdıdcpromo bunu yazdı
repoya dgidip .com u .dev olarak değişin enter yapın. Afiyet olsun. Bu da böyle bi tırriktir
Süper bilgi teşekkürler hocam
taze geldi bu, yeni ozellik.
ben de youtube'ta gordum sabah saatlerinde.
VsCode-Web instance'i aciyor <3
-
MhmdAlmz bunu yazdıend bunu yazdı
Php lüzumsuz sunucu yükü bence.
Neden böyle bir düşünceye sahipsin hocam merak ettim?
Rakipleriyle kaynak tuketimi ve ziyaretci karsilayabilme kiyaslamasi yaptigimda (benchmark) epey fark ediyor. Ozellikle yuksek trafik karsilanacak dinamik icerikli sistemlerde.
Ha, optimize edilebilir mi? Kesinlikle evet. Ama ileriye donuk ugrastirici ve mide bulandirici buluyorum. Ustelik birebir ayni verimi yakalayamayacaksin yine de.
Bir suru faktor var isin icinde,
Biraz da kisisel bir deyim yani benimkisi.
2011-2016 arasi php yazdim hep, uzun suredir de takip etmiyorum. Muadilleri cok daha keyifli ve verimli geldi hep xD
-
neverland bunu yazdıyolbulucu bunu yazdıcoder2 bunu yazdıyolbulucu bunu yazdı
laravel den yürü ya. gerisi amelasyon
Laravel de Mongo için jenssegers/laravel-mongodb paketini kullanıyoruz, birçok işimizi görüyor ama MySql veya PostgreSql gibi RDMS veritabanlarında olduğu gibi rahat kullanamıyoruz. Tabii veritabanı tasarımı da mükemmel değil ama sık sık raw query yazıyoruz vs
Tamamen konu ile alakalı değil belki ama tecrübei paylaşayım dedim.
ben de relational şeyler için postgres + büyük verilerim için mongo kullanıyorum laravelde. bütün queryleri raw yazıyorum. zaten modele falan da bağlı değil hiç bir şey
hocam o zaman hiç laravel kullanma bana sorarsan.
Php ile yaz ya da slim framework falan kullan, neden dersen laravel bir sürü paket kullanıyor.
gereksiz yük bindiriyor eğer nimetlerinden faydalanmayacaksan
dipnot: php relational db ler ile nodejs nosql db lerle kullanılması taraftarıyım, yapısal ve kolaylık açısından
laravel in hazır olarak sunduğu şeyleri diğer frameworklerde yada dillerde yapmak 1 senemi alır heralde.
bkz: jetstream, telescope, horizon, notifications, events-listeners, cashier, spark
bir de vapor ya da bref kullanırsan lambda da çalıştırıp allahına kadar scale edebiliyosun queue larını (benim projemde baya işime yarıyor, bütün işim arkada veri işlemek)
-
end bunu yazdılazz bunu yazdı
tesekkurler hocam
kodlarını ınceledım
ama mongodan verılerı cekerken hep awaıt kullanmıssın yanlıs hatırlamıyorsam bunu onaylamıyolardı.
bu arada bende yenı basladım sadace aklımda oyle kalmıs emın degılım
E await kullanamazsan veriyi nasıl kullanıcıya ulaştıracaksın hocam?
Promise object istemiyorum ki ben, blog yazılarını istiyorum.
İnsert yaparken kullanmazsın belki ama onda da error handling yapamazsın.
hocam dedıgım gıbı cokda ıyı bıldıgımı zannetmıyorum ama
bu zamana kadar gordugum ınceledıgım tum nodejs kodlarında
Post.find().then((data)=>{ }).catch((err) => console.log(err));bu sekılde kullanmıslar.
-
end bunu yazdıMhmdAlmz bunu yazdıend bunu yazdı
Php lüzumsuz sunucu yükü bence.
Neden böyle bir düşünceye sahipsin hocam merak ettim?
Rakipleriyle kaynak tuketimi ve ziyaretci karsilayabilme kiyaslamasi yaptigimda (benchmark) epey fark ediyor. Ozellikle yuksek trafik karsilanacak dinamik icerikli sistemlerde.
Ha, optimize edilebilir mi? Kesinlikle evet. Ama ileriye donuk ugrastirici ve mide bulandirici buluyorum. Ustelik birebir ayni verimi yakalayamayacaksin yine de.
Bir suru faktor var isin icinde,
Biraz da kisisel bir deyim yani benimkisi.
2011-2016 arasi php yazdim hep, uzun suredir de takip etmiyorum. Muadilleri cok daha keyifli ve verimli geldi hep xD
google misin amk napcan zibilyon ziyaretci karsilamayi ? zaten o seviyeye gelince bootleneckin database falan olacak.
kartımı da hala yollamadın :P
-
lazz bunu yazdı
tesekkurler hocam
kodlarını ınceledım
ama mongodan verılerı cekerken hep awaıt kullanmıssın yanlıs hatırlamıyorsam bunu onaylamıyolardı.
bu arada bende yenı basladım sadace aklımda oyle kalmıs emın degılım
Node.js yapı gereği asenkron bir yapıya sahip. Düz mantıkta kodlar üstten alta sıra dahilinde akmıyorlar. Eğer response time'ı biraz uzun süren ama o datanın da hemen kullanılacağı işler yapılacaksa asenkron yapıya müdahale gerekir. Misal api'den response alman gerekir ya da db den veri alıp işlersin döndürdüğün datayı bir yerlerde kullanman gerekir gibi. Bunlar zaman alan işler olduğu için async yapı o işlemin tamamlanmasını beklemeden diğer işlemleri çalıştıracaktır.
Await eğer bir promise kullanıyorsanız sonuçlanmasını (resolve ya da reject) bekleyerek kalan kısmın öyle işleme alınmasını sağlamakta. Aksi durumda promise ile çalışılıyorsa response alındıktan sonra chain fonksiyon halinde de işlemler sağlabilir.
Birkaç örnek vermek gerekirse;
var str = "Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur."; const calculateWords = (str) => { return new Promise((resolve, reject) => { var map = new Map(); map["count"] = 0; str.split(" ").forEach((data, index, array) => { setTimeout(() => { map["count"] = map["count"] + 1; if (index == array.length-1) resolve(map["count"]); }, 200); }) }) } const print = async () => { let count = await calculateWords(str); console.log(`-- kelime sayısı: ${count}`); console.log(`sayının bir fazlası: ${count + 1}`) } const print2 = () => { calculateWords(str).then(response => { console.log(`--- kelime sayısı: ${response}`); console.log(`sayının bir fazlası: ${response + 1}`) }); } print(); print2(); var map = new Map(); map["count"] = 0; str.split(" ").forEach(data => { setTimeout(() => { map["count"] = map["count"] + 1; }, 200); }) console.log(`---- kelime sayısı: ${map["count"]}`); console.log(`sayının bir fazlası: ${map["count"] + 1}`)Burada problem şudur, mesela calculateWords fonksiyonu temsilen belirli bir süre geçtikten sonra yüklü bir işlem yapan, sonucunda resolve() aracılığıyla işlem sonucunu döndüren bir metot. Bu bir api'den response da olabilirdi ya da farklı bir hesaplama da olabilirdi. 74 kelimeyi ayrı ayrı hesaplamakta ve her hesapta 200ms bekleme süresi bulunmakta.
print() metodunda await sözcüğü ile gelen datayı promise tamamlandıktan sonra bir değişkene alıyoruz. Bu süreçte altta kalan console.log() komutları beklemeye alınıyor. Await ile başlayan satırdaki işlem bittikten sonra işleme alınıyorlar. Await sözcüğünü kullanmak için çalıştığı fonksiyonun async olması şartı var. Bu sebeple async () => {} şeklinde fonksiyonu tanımladık.
print2() metodunda ise dönen promise return'unu then() zincirleme metodu ile alıp data geldikten sonra gelen sonuçla birlikte işleme alıyoruz.
En altta bulunan yalın haldeki kod ise aynı işlemi yapıyor. Yalnız bunu denediğiniz vakit forEach işlemi henüz bitmeden console.log() işlemleri devreye alınacak ve loglarda 0 ve 1 olarak dönecektir. Çünkü forEach zaman alan bir hesaplamaya sahip. Async yapısı nedeniyle node.js i/o bloklamadan, yani diğer işlemin bitmesini beklemeden sıradaki en kısa süren işleme yanıt verdi.
-
lazım olan olur diyerekten şuraya bırakayım
https://github.com/Tuncaysukan/Netfilx_Clone
