yoklateknik mülakat

Mobil Mobile State Data Mülakat Soruları

75 doğrulanmış Mobil Mobile State Data mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Mobile State DataZorluk 1
Mobil uygulama mimarisinde, bellek-içi (local) state ile kalıcı (disk) state arasındaki temel fark nedir?
  • aBellek-içi state süreç sonlandığında kaybolur; kalıcı state ise depolamaya yazılır ve yeniden başlatmalara dayanır
  • bBellek-içi state okuması her zaman kalıcı state'ten yavaştır, çünkü disk depolama rastgele erişim için optimize edilmiştir
  • cKalıcı state yalnızca sayısal değerler tutabilir, bellek-içi state ise uygulamanın tanımladığı her tür veriyi tutabilir
  • dBellek-içi state cihazdaki farklı uygulamalar arasında otomatik paylaşılır, kalıcı state ise tek bir uygulamaya özel kalır
Açıklama:Bellek-içi state, çalışan sürecin bir parçası olarak RAM'de yaşar; süreç sonlandığında bu bellek geri alınır ve değer kaybolur. Kalıcı state ise bir dosyaya, veritabanına ya da key-value deposuna yazılır; böylece uygulama yeniden başladığında ya da cihaz yeniden açıldığında geri okunabilir. Bellek genelde diskten yavaş değil hızlıdır (b). Kalıcılık yalnızca sayı değil, serileştirilebilir her veriyi tutabilir (c). Kalıcı depolama varsayılan olarak uygulamaya özeldir, otomatik paylaşılmaz (d).
Mobile State DataZorluk 2
Bir ekranda kullanıcının arama sorgusu yazdığı bir metin alanı ve kullanıcının kaydettiği favori öğelerin listesi var. Bunlardan hangisi genellikle kalıcı olmak yerine yalnızca bellek-içi state olmalıdır?
  • aFavori öğeler listesi, çünkü favoriler uygulama bir sonraki açılışta kaybolmalıdır
  • bArama alanına o an yazılmış metin, çünkü yalnızca aktif arama sırasında önem taşır
  • cHem arama metni hem favoriler listesi, çünkü tüm UI state'i anında diske yazılmalıdır
  • dHiçbiri, çünkü kullanıcının oluşturduğu her state veri kaybını önlemek için kalıcı hale getirilmelidir
Açıklama:Arama metni, o anki etkileşime bağlı geçici bir girdidir; kullanıcı ekrandan ayrıldığında yarım yazılmış metni hatırlamanın genelde bir anlamı yoktur, bu yüzden yalnızca bellekte tutmak uygundur. Favori öğeler ise oturumlar arası kalıcı olması beklenen bir kullanıcı kararını temsil eder, dolayısıyla kalıcı depolamaya aittir (a tam tersini söylüyor). Bir arama kutusunun her tuş vuruşunu kalıcı hale getirmek (c, d) kalıcı değeri olmayan veri için gereksiz yazma yükü ve karmaşıklık ekler.
Mobile State DataZorluk 1
Bir ekranda veri çekilirken geçici bir "loading spinner" bayrağı gösteriliyor. Çekme işlemi bitince bu bayrağa artık gerek kalmıyor. Bu bayrağı yönetmenin en uygun yolu nedir?
  • aHer değiştiğinde kalıcı depolamaya yazmak, böylece uygulama çekme sırasında çökerse tam olarak geri yüklenebilsin
  • bÇekilen verinin bulunduğu kalıcı kayıtla aynı yere yazmak, böylece ikisi her zaman birlikte güncellensin
  • cEkrana bağlı bellek-içi state olarak tutmak, çünkü yalnızca mevcut oturumdaki geçici bir anı tanımlıyor
  • dYalnızca UI bayrakları için ayrılmış ayrı bir dosyaya yazmak, böylece sonradan debug için incelenebilsin
Açıklama:Loading bayrağı, belirli bir ekranda "şu anda ne oluyor"u tanımlar; çekme işlemi bitince ya da uygulama yeniden başlayınca hiçbir anlamı kalmaz, bu yüzden bellek-içi state için ders kitabı örneğidir. Onu kalıcı hale getirmek (a, b, d) bir sonraki ekran ziyaretinde basitçe false'a dönmesi gereken bir değer için gereksiz yazma ve temizleme mantığı ekler; çökme sonrası eski bir "loading" bayrağını geri yüklemek isteğin gerçek durumunu yanlış yansıtır.
Mobile State DataZorluk 2
İki kardeş ekranın ikisi de aynı "seçili para birimi" değerini göstermesi ve buna tepki vermesi gerekiyor; her iki ekran da bu değeri değiştirebiliyor. Bu durumda "state'i yukarı taşımak" (state lifting) ne anlama gelir?
  • aSeçili para birimi mantığının zorluk seviyesini artırıp yalnızca bir yöneticinin değiştirebilmesini sağlamak
  • bPara birimi değerini her iki ekrana da kopyalayıp her birinin hız için kendi bağımsız kopyasını tutmasını sağlamak
  • cPara birimi değerini kalıcı depolamaya taşıyarak uygulama zorla kapatılsa bile hayatta kalmasını sağlamak
  • dPara birimi değerini her iki ekranın dışına, ikisinin de okuyup güncelleyebildiği ortak bir sahibe taşımak
Açıklama:State lifting, bir değeri tek bir bileşenden, her iki tüketicinin de okuyup güncelleyebildiği ortak bir üst sahibe taşımak demektir; böylece gerçeği tutan tam olarak tek bir yer olur, iki bileşenin diğerinde ne olduğunu tahmin etmesi gerekmez. Değeri kopyalamak (b) lifting'in çözdüğü sorunun kendisidir, çözüm değildir. Kalıcılık (c) yeniden başlatmalara dayanma ile ilgili ayrı bir konudur, şu anki iki ekran arası paylaşımla ilgili değildir.
Mobile State DataZorluk 1
Paylaşılan bir state parçası için, her ekranın kendi kopyasını tutmasına izin vermek yerine tek bir gerçek kaynağa (single source of truth) sahip olmanın ana faydası nedir?
  • aUygulamayı hızlandırır, çünkü tek bir kopya her zaman birden fazla kopyanın toplamından daha az bellek kullanır
  • bKopyaların birbirinden sapmasını önler, çünkü değerin güncellenebileceği tek bir yer vardır
  • cHerhangi bir loading ya da hata yönetimi ihtiyacını ortadan kaldırır, çünkü tek bir kaynak asla yanıtsız kalmaz
  • dDeğerin uygulamanın kendi kodundan geçmeden dışarıdan doğrudan düzenlenmesine izin verir
Açıklama:Bir değer ekranlar arasında kopyalandığında her kopya bağımsız güncellenebilir ve kopyaların eşit kalacağını garanti eden hiçbir şey yoktur — bir ekran güncellenmiş veriyi gösterirken diğeri hâlâ eski değeri gösterebilir. Tek bir gerçek kaynak, değeri tutan tam olarak tek bir yer olduğu ve herkesin oradan okuduğu için bu olasılığı ortadan kaldırır. Bellek ayak izi (a) ya da loading/hata durumlarının ortadan kalkması (c) ile ilgisi yoktur; değeri uygulama dışından düzenlenebilir hale de getirmez (d).
Mobile State DataZorluk 2
Tek yönlü veri akışında (unidirectional data flow), veri paylaşılan bir sahipten onu gösteren ekranlara doğru aşağı akar; ekranlar ise paylaşılan veriyi doğrudan değiştirmek yerine değişiklik talep etmek için olayları yukarı gönderir. Aşağıdakilerden hangisi bu deseni doğru şekilde takip eder?
  • aBir ekran "kullanıcı artır'a bastı" olayını bildirir, paylaşılan sahip sayacı günceller ve yeni değeri aşağı geri iletir
  • bBir ekran, kullanıcı bir düğmeye her bastığında paylaşılan sahibin sakladığı sayaç değerini doğrudan yerinde değiştirir
  • cİki ekran her biri kendi ayrı sayacını tutar ve hangisi gösterilirse gösterilsin iki değerin ortalamasını alır
  • dBir ekran sayacı yalnızca ilk göründüğünde bir kez okur ve yaşam döngüsü boyunca bir daha güncelleme kontrolü yapmaz
Açıklama:Tek yönlü akış net bir yön korur: gösterilen veri bir yöne akar (sahipten ekrana), değiştirme talepleri ise açık olaylar olarak diğer yöne akar; böylece değeri gerçekten değiştiren tek yer sahip olur. a seçeneği tam olarak bunu yapar: ekran yalnızca niyeti bildirir, sahip değişikliği uygular. Bir ekranın sahibin değerini doğrudan üzerine yazması (b) tek değiştirme noktasını bozar. Ayrı kopyalar tutup ortalama almak (c) kopyalanmayı yeniden getirir. Bir kez okuyup hiç güncellememek (d) akış yönüyle hiç ilgili değildir, sadece eski veridir.

2400 soruluk Mobil bankasında kendini sına.

Mülakata başla