Bu seviyede “nasıl yazılır?”dan “neden böyle?”ye geçiyoruz: bridge maliyeti, JS/UI thread ayrımı, native sınırlar ve ölçmeden optimize etmeme disiplini. Teknik terimler ilk geçişte parantezle açıklandı.
Seviye 3 — İleri Orta · Sorular 41–60 / 100
Bu serideki seviyeler
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta) (bu yazı)
- Seviye 4 (İleri)
- Seviye 5 (En Zor)
Soru 41
JS thread React ve iş mantığını çalıştırır. UI thread native çizim, yerleşim ve jestleri yönetir. Ağır JS işi kare düşürür; ağır yerleşim de takılma yaratır. Reanimated gibi araçlar bazı işleri UI tarafına taşır.
Soru 42
JSON’a çevirme, kuyruk ve kopyalama maliyeti vardır. Saniyede yüzlerce native çağrıda gecikme birikir. Animasyon ve senkron depolama bridge üzerinden kötü ölçeklenir.
Soru 43
React Native’de olmayan sensör, SDK veya performans-kritik platform API’si gerektiğinde. Önce hazır kütüphane arayın; yazacaksanız mümkünse New Architecture Spec / Turbo Modules hedefini seçin.
Soru 44
InteractionManager.runAfterInteractions ne işe yarar?Animasyon/jest bitince ağır JS işini erteler; ilk karelerin akıcı kalmasına yardım eder. Yanlış kullanılırsa iş hiç çalışmıyor gibi görünebilir; ölçümle doğrulayın.
Soru 45
Değişken satır yüksekliği + eksik getItemLayout, iç içe ScrollView, listeyi map ile bütün çizmek, satırda çok ağır bileşen. Nested VirtualizedList uyarıları ciddiye alınmalıdır.
Soru 46
Ekran aç-kapa ettikçe artan bellek, kapanmayan abonelik/timer/animasyon listener. LeakCanary / Instruments ve JS heap (bellek anlık görüntüsü) ile ayrıştırılır.
Soru 47
Daha düşük açılış süresi ve bellek, bytecode ile parse işinin büyük kısmını derleme zamanına taşıma, React Native odaklı optimizasyonlar. Source map (hata satırı eşlemesi) kurulumu şarttır.
Soru 48
İlk açılışta her ekranı yüklemeyi erteler. Navigasyonda React.lazy + Suspense veya paket ayırma kullanılabilir. Kazancı Metro/Hermes ile birlikte ölçün.
Soru 49
RNGH native jest sistemine daha yakındır; kaydırma ile jest çakışmalarında daha öngörülebilirdir. Reanimated ile birlikte akıcı animasyon için sık kullanılır.
Soru 50
Asıl kaynak yerelde tutulur (veritabanı), senkron kuyruğu ve çakışma çözümü vardır, arayüz iyimser güncellenebilir. Sadece AsyncStorage’a koca JSON dump etmek ölçeklenmez.
Soru 51
API secret istemciye gömülmez. Token Keychain/Keystore’da tutulur. Gerekirse certificate pinning düşünülür. Obfuscation (kod karıştırma) tek başına güvenlik değildir.
Soru 52
Android sürüm küçültme/obfuscate sırasında reflection ile bulunan sınıflar silinebilir. Keep kuralları ve mapping.txt arşivi olmadan canlı çöküş logları okunamaz.
Soru 53
Arka planda JS sınırlı çalışır; iOS özellikle katıdır. Konum/ses gibi işler ayrı izin ve yapılandırma ister. Kritik işi sunucu + push’a taşımak gerekir.
Soru 54
React DevTools, profiler, why-did-you-render gibi araçlarla. Sebep çoğu zaman her render’da yeni obje/fonksiyon prop veya geniş Context’tir. Kör memo değil, ölçüm önce gelir.
Soru 55
React.memo ne zaman işe yaramaz?Prop’lar her seferinde yeni referanssa memo karşılaştırmayı kaybeder. Context ve children da bazen faydayı yok eder. Önce prop’ları sabitleyin, sonra memo düşünün.
Soru 56
Turbo: codegen Spec (sözleşme), tip güvenliği, tembel (lazy) açılış, JSI yolu. Klasik: çalışma anında sözlükten bulma, bridge üzerinden async. Geçiş yüzey yüzey planlanır.
Soru 57
C++ merkezli shadow tree (gölge ağaç) ve daha tutarlı mount (ekrana yerleştirme) getirir; concurrent React ile uyum artar. Özel native bileşen Spec ister.
Soru 58
Crash: süreç ölür. ANR (Android): ana thread uzun süre kilitlenir. Jank: kare bütçesi aşılır, takılma hissedilir. Hepsi “yavaş” değildir; tooling’leri ayrıdır.
Soru 59
Sabit emülatör imajı, sınırlı retry, stabil test id, log artifact. Sınırsız retry flaky’yi gizler ve teknik borç üretir.
Soru 60
TTI (ilk etkileşime süre), JS/UI FPS, ağ hata oranı, crash-free kullanıcı, soğuk açılış, OTA başarı/geri alma. “Ölçmeden optimize etmem” senior cevabıdır.
Önceki / sonraki seviye
- ← Önceki: Mülakat Soruları — Seviye 2
- Sonraki: Mülakat Soruları — Seviye 4 (İleri) →
Tüm mülakat seviyeleri
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta) (bu yazı)
- Seviye 4 (İleri)
- Seviye 5 (En Zor)