Mood Reklam

Rehber

Node.js ile Sunucu ve API Geliştirme: Mobil Uygulamanın Arkasında Ne Çalışır?

Mobil uygulamanın ve panelin konuştuğu sunucu Node.js ile yazılabilir. Anlık bildirimde ve yoğun küçük isteklerde güçlü, ağır hesapta zayıf yanlarını ve barındırma ihtiyacını özetledik.

· 4 dk okuma · Mood Reklam

Dizüstü bilgisayar ekranında amber grafikler, veri kartları ve modüler alanlar içeren temsili SaaS paneli
Özel yazılım ve SaaS arayüz konsepti — tasarım konsepti.

Telefonunuzdaki sipariş uygulaması “Siparişiniz yola çıktı” bildirimini nereden biliyor? Uygulama bu bilgiyi kendi içinde tutmaz; internet üzerinden bir sunucuya sorar. Mobil uygulama ya da web paneli yaptıracak her işletme bir noktada bu görünmeyen tarafla karşılaşır ve “Sunucuyu Node.js ile yazalım” önerisini duyabilir. Bu yazı, o önerinin ne anlama geldiğini ve ne zaman yerinde olduğunu anlatıyor.

Önce kavram: API ne demek?

API, iki yazılımın birbirine soru sorup cevap almasını sağlayan kapıdır. Telefondaki uygulama “Bu müşterinin açık siparişleri neler?” diye sorar, sunucudaki API veritabanına bakıp listeyi döner. Web paneli, mobil uygulama, hatta kargo ya da e-fatura sağlayıcısı aynı API ile konuşabilir. Dış sistemlere bağlanmayı API entegrasyonu yazısında ayrıca ele aldık; burada API’nin kendisini yazacak ortama bakıyoruz.

Node.js nedir, sunucuda JavaScript’in ne işi var?

Node.js, tarayıcının dili olan JavaScript’i sunucuda çalıştıran bir ortamdır. Kendisi ayrı bir dil değildir; JavaScript’in tarayıcı dışına taşınmış hâlidir. En büyük pratik faydası şudur: Panelin arayüzü zaten JavaScript ya da TypeScript ile yazılıyorsa sunucu tarafı da aynı dille yazılabilir. Aynı ekip iki tarafı birden okuyabilir, veri yapıları iki tarafta ortak tanımlanabilir. Tarayıcı tarafını JavaScript ve TypeScript yazısında anlattık.

Node.js’in iyi olduğu iş türü

Node.js, bir isteğin cevabını beklerken boş durmaz; o sırada başka isteklerle ilgilenir. Teknik adıyla “bloklamayan” bu çalışma biçimi, çok sayıda küçük ve kısa isteğin aynı anda geldiği işlerde avantaj sağlar:

  • Mobil uygulamanın sürekli veri istediği API’ler
  • Canlı sohbet, anlık bildirim ve “şu an kim çevrimiçi” gibi gerçek zamanlı özellikler
  • Saha ekibinin ya da sevkiyat araçlarının konumunu düzenli gönderdiği takip ekranları
  • Başka servislerden veri toplayıp tek cevapta birleştiren ara katmanlar

İskenderun’dan Hatay’ın ilçelerine dağıtım yapan bir firmanın şoförleri teslimat fotoğrafını ve konumunu uygulamadan gönderiyorsa, bu verileri karşılayan sunucu için Node.js doğal adaylardan biridir.

Sınırları: ağır hesap ve paket yükü

Aynı çalışma biçimi bir zayıflık da getirir. Node.js işlerin çoğunu tek bir ana iş parçacığında sırayla yürütür. Uzun süren bir hesap, örneğin büyük bir raporun işlenmesi, o sırada gelen öbür istekleri bekletebilir. Bu yükü ayrı çalışanlara (worker) bölmek mümkündür ama ek tasarım ister. Ağır hesap, büyük veri işleme ya da yapay zekâ modeli çalıştırma işlerinde Python, Go ya da Java daha rahat eder.

İkinci konu paket ekosistemidir. Node.js dünyasında hemen her ihtiyaç için hazır paket bulunur; bu, geliştirmeyi hızlandırır. Ama her paket, birinin bakmayı bırakabileceği bir bağımlılık demektir. Güvenlik güncellemeleri düzenli yapılmayan bir Node.js projesi zamanla kırılgan hâle gelir. Bu yüzden bakımın kimde olacağı konuşulmadan teslim alınmamalıdır.

API’nin kapısını kim tutuyor?

Hangi dille yazılırsa yazılsın, internete açık bir API işletmenizin verisine açılan bir kapıdır. Node.js’te bu kapıyı korumak için hazır araçlar boldur, ama onları kurmak yazılımcının işidir. Teslim almadan önce şunları sorun:

  • Her istek, giriş yapmış ve o veriyi görmeye yetkili bir kullanıcıdan mı geliyor? Bayi yalnızca kendi siparişini görebiliyor mu?
  • Gelen veriler kaydedilmeden önce denetleniyor mu; boş, hatalı ya da kötü niyetli içerik reddediliyor mu?
  • Aynı adresten art arda gelen aşırı istekler sınırlanıyor mu?
  • Bağlantı şifreli (HTTPS) mi ve hatalar kayıt altına alınıyor mu?

Barındırma: Node.js uygulaması nerede yaşar?

Klasik bir PHP sitesi istek geldiğinde çalışır ve işini bitirince durur. Node.js uygulaması ise sürekli açık kalan bir süreçtir; çökerse yeniden başlatılması, sunucu açıldığında kendiliğinden ayağa kalkması gerekir. Bu nedenle genellikle sanal sunucu (VPS), bulut sunucu ya da Node.js destekleyen bir barındırma platformu ister. Bazı cPanel hostingleri Node.js uygulamasına izin verir, ancak kaynaklar ve ayarlar kısıtlıdır; küçük işler için yetebilir, yoğun kullanılan bir mobil uygulama için çoğu zaman yetmez. Kendi sunucusunda çalışan bir Node.js uygulaması için ayrıca bir süreç yöneticisi kurulur; uygulamayı izler, çökerse yeniden başlatır ve kayıtlarını tutar. Teklifte sunucunun kimin adına açılacağı ve erişim bilgilerinin size verilip verilmeyeceği yazmalıdır.

Node.js’i şu durumda seçin, şu durumda seçmeyin

Seçin Başka dile bakın
Arayüz zaten JavaScript ya da TypeScript ile yazılıyor İş, ağır hesap ve büyük rapor üretimi üzerine kurulu
Mobil uygulama ve panel aynı API’yi paylaşacak Elinizde yalnızca klasik paylaşımlı hosting var ve değiştirmek istemiyorsunuz
Canlı bildirim ve anlık güncelleme önemli Yazılımın uzun süre hiç güncellenmeden kalması bekleniyor

Telefon uygulaması ve arkasındaki panel için mobil uygulama sayfasına, yalnızca web tabanlı bir sistem yeterliyse özel yazılım sayfasına bakın. İskenderun’daki ilk görüşmede dil değil iş konuşulur; kapsam yazıya geçtikten sonra sunucu tarafının hangi dille yazılacağına birlikte karar verilir.

Okumaya devam edin

İlgili yazılar

Mood Reklam web sitesinin masaüstünde anasayfası ve telefonda kutu harf hizmet sayfası

Rehber · 4 dk okuma

Flutter ve Dart ile Mobil Uygulama: Tek Kodla İki Mağazaya Çıkmanın Artıları ve Sınırları

“Bir kere yazılır, iki telefonda çalışır” sözü doğru ama eksik. Flutter’ın kendi çizim motoru, Dart dili, eklenti bağıml...

Kâğıda çizilmiş mobil ekran taslakları ve tablette aynı ekranların mor tonlu arayüz tasarımı

Rehber · 4 dk okuma

İskenderun’da Mobil Uygulama Geliştirme: Fikirden Mağazaya Adım Adım Yol Haritası

Mobil uygulama fikrinden mağazadaki uygulamaya giden yol: kullanıcıyı tarif etmek, uygulamanın gerçekten gerekip gerekme...

Bilgisayar ve telefonda açık bir iş takip paneli: sipariş, randevu, teklif ve stok özetleri

Rehber · 4 dk okuma

Java ile Kurumsal Yazılım: Büyük Firmayla Çalışmak İçin Java Şart mı?

Büyük bir kurumun sistemi Java ise sizinkinin de Java olması gerekmez. Java’nın kurumsal tarafta güçlü yanlarını, küçük...

Bilgisayar ve telefonda açık bir iş takip paneli: sipariş, randevu, teklif ve stok özetleri

Rehber · 4 dk okuma

İskenderun’da Yazılım Hizmetleri: Web Sitesi, Mobil Uygulama ve Özel Yazılım Ne Zaman Gerekir?

Web sitesi, işletmeye özel yazılım ve mobil uygulama farklı sorunları çözer. İskenderun’daki işletmeler için hangi ihtiy...

Mood Reklam web sitesinin masaüstünde anasayfası ve telefonda kutu harf hizmet sayfası

Rehber · 4 dk okuma

Mobil Uygulama mı, Web Uygulaması mı? PWA Dâhil Üç Seçeneği Karşılaştırmak

Mağaza uygulaması, web uygulaması ve PWA aynı soruya üç farklı yanıttır. Uygulamaya ve web’e işaret eden durumlar, PWA’n...

Dizüstü bilgisayar ekranında amber grafikler, veri kartları ve modüler alanlar içeren temsili SaaS paneli

Rehber · 4 dk okuma

Yazılım Projesinde Teslim ve Sahiplik: Kaynak Kod, Alan Adı, Sunucu ve Mağaza Hesapları Kimde Kalmalı?

Yazılım işinde en can sıkıcı sorunlar iş birliği bittikten sonra çıkar. Teslim listesi, kaynak kod deposu, işletme adına...

Fiyat ve teklif

Fiyat için bizi arayın.

Fiyatı telefonda veriyoruz. Uygulama yapılacak yerin fotoğrafını ve yaklaşık ölçüsünü önceden gönderirseniz görüşme çok daha kısa sürer; net ölçü gereken işlerde yerinde keşif planlarız.

  • Cephe, vitrin veya aracın fotoğrafı
  • Yaklaşık en ve boy ölçüsü (cm ya da m)
  • Varsa logo ve yazılacak metin
Hemen Ara WhatsApp Teklif Al