Örnek sorular
Mobile Networking OfflineZorluk 1
"Offline-first" bir mobil uygulama mimarisinde, UI için kaynak-of-truth olarak ne kabul edilir?
- aCihazdaki yerel veritabanı/store✓
- bUzak sunucu; yani UI her zaman render etmeden önce bir network yanıtı bekler
- cYerel ya da uzak, en son çekilen kopya hangisiyse o, ekrana göre değişir
- dUygulama her açıldığında temizlenip yeniden kurulan bellek-içi bir cache
Açıklama:Offline-first, UI'nin yerel storage'a bağlanması demektir; network katmanı veriyi arka planda bu yerel store'a senkronize eder, böylece uygulama bağlantı olsa da olmasa da kullanılabilir olur.
Mobile Networking OfflineZorluk 2
Bir mobil uygulamada kullanıcı bir aksiyon yaptığında (ör. bir öğeyi tamamlandı işaretlemek), "optimistic update" en iyi neyi tanımlar?
- aSunucu başarılı olabileceğini onaylayana kadar aksiyon devre dışı bırakılır
- bUI, sunucu onaylamadan hemen güncellenir✓
- cUygulama herhangi bir değişikliği göstermeden önce bir loading spinner'ının bitmesini bekler
- dAksiyon sessizce kuyruğa alınır ve kullanıcıya yarın tekrar bakması söylenir
Açıklama:Optimistic update başarıyı varsayar ve UI'yi hemen günceller, anında geri bildirim sağlar; sunucu değişikliği daha sonra reddederse uygulama bunu geri almalıdır.
Mobile Networking OfflineZorluk 2
Kullanıcı bir gönderiye "beğen" dokunuyor; UI anında beğenilmiş gösteriyor (optimistic update). Sunucu isteği ardından hata ile başarısız oluyor. Uygulama ne yapmalı?
- aUI'yi beğenilmiş bırakıp isteği arka planda sonsuza kadar sessizce tekrar denemeli
- bKullanıcı bir şeylerin ters gittiğini fark etsin diye ekranı çökertmeli
- cUI'yi geri almalı ve hata göstermeli✓
- dHerhangi bir gönderi içeriği tekrar gösterilmeden önce kullanıcıdan uygulamayı yeniden başlatmasını istemeli
Açıklama:Altta yatan istek başarısız olduğunda, optimistic değişiklik son bilinen-iyi duruma geri alınmalıdır ve kullanıcı bilgilendirilmelidir ki tekrar deneyebilsin ya da ne olduğunu anlasın.
Mobile Networking OfflineZorluk 2
Aynı not, ikisi de bağlantısızken hem telefonda hem ayrı olarak tablette offline düzenlenmiş. İkisi de tekrar online olduğunda "son-yazan-kazanır" (last-write-wins) stratejisi uygulanıyor. Ne olur?
- aHer iki düzenleme de korunur ve kullanıcıya iki ayrı not olarak gösterilir
- bKullanıcı manuel olarak bir cihazın kopyasını silene kadar uygulama senkronizasyonu reddeder
- cDaha kısa metne sahip düzenleme, daha basit olduğu için otomatik kazanır
- dEn yeni düzenleme diğerinin üzerine yazar✓
Açıklama:Son-yazan-kazanır, çakışmaları zaman damgasıyla çözer: hangi değişiklik daha sonra yapıldıysa diğerinin yerini alır, bu da daha önceki düzenlemenin içeriğinin sessizce kaybolması demektir — bu stratejinin bilinen bir tradeoff'udur.
Mobile Networking OfflineZorluk 1
Mobil bir uygulamada başarısız olan bir network isteği için "retry" (tekrar deneme) mekanizmasının temel amacı nedir?
- aBazı hatalar geçici olduğu için isteği otomatik olarak tekrar denemek✓
- bKullanıcının hesabı için o özelliği kalıcı olarak devre dışı bırakmak
- cUygulamayı offline moda geçirip sunucuyla bir daha hiç iletişim kurmamak
- dO istekle ilgili yerel veriyi silmek, böylece bayat gösterilmesin
Açıklama:Birçok network hatası geçicidir (kaybolan paket, anlık sinyal kaybı), bu yüzden kısa bir bekleme sonrası aynı isteği tekrar denemek kullanıcı müdahalesi olmadan çoğunlukla başarılı olur.
Mobile Networking OfflineZorluk 2
Bir uygulama başarısız isteği her seferinde sabit 1 saniyelik beklemelerle tekrar deniyor: 1sn, 1sn, 1sn, 1sn... Bu sabit-gecikmeli retry'ın exponential backoff'a kıyasla temel dezavantajı nedir?
- aExponential backoff'a göre belirgin biçimde daha fazla cihaz depolama alanı kullanır
- bSunucu zorlanıyorsa, istemciler onu aynı hızda dövmeye devam eder✓
- cÜçüncü parti bir networking kütüphanesi olmadan uygulanamaz
- dKullanıcının her bir retry denemesini manuel olarak onaylamasını gerektirir
Açıklama:Sabit bir retry aralığı sürekli soruna uyum sağlamaz: sunucu (ya da network yolu) bozuksa tüm istemciler onu aynı hızda dövmeye devam eder. Exponential backoff, retry'ları zaman içinde giderek aralar, kesinti sırasında yükü azaltır.