Son seviye ezber cevap değil, sistem düşüncesi ister: bellek, eşzamanlılık, release güvenliği, native interop (JS–native birlikte çalışma) ve ölçeklenebilir mobil mimari. Her cevapta “neden / ne zaman / ne pahasına” sorularına yer verildi.
Seviye 5 — En Zor · Sorular 81–100 / 100
Bu serideki seviyeler
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta)
- Seviye 4 (İleri)
- Seviye 5 (En Zor) (bu yazı)
Soru 81
JS handle bırakılınca native temizlik tetiklenmeli; ama GC zamanı belirsizdir. Açık close() API + finalizer yedekli model, double-free ve thread atlama koruması gerekir.
Soru 82
Disk/ağ/büyük parse, kilit bekleyen I/O, ağır buffer kopyası gibi süresi belirsiz işler. Sync JSI ucuz ve sınırlı işler içindir; uzun işi arka plana taşıyıp event/callback ile dönün.
Soru 83
Commit sonrası native hiyerarşi ile React ağacını karşılaştırın. Özel descriptor prop diff hataları, Yoga ölçü tutarsızlığı, concurrent yarış. Deterministik prop sırası + Fabric logları yardımcı olur.
Soru 84
Global singleton native modüller, EventEmitter çakışması, “tek bridge” varsayımı. Her runtime’ın kayıtları izole olmalı; static global state yasaktır.
Soru 85
Görsel cache temizliği, liste penceresini küçültme, büyük JSON’u parça parça işleme, native bitmap recycle. iOS memory warning / Android onTrimMemory dinlenip kontrollü tepki verilir.
Soru 86
Perfetto/Systrace’de JS runtime, UI ve GPU dilimlerine bakın. GC ise allocation profili; yerleşim ise Yoga/measure; köprü ise IPC dilimi öne çıkar.
Soru 87
TypedArray/ArrayBuffer ile kopyasız pointer paylaşımı hız verir ama lifetime ve thread sahipliği net olmalıdır. Yanlış ownership use-after-free üretir; birçok SDK güvenli kopyayı tercih eder.
Soru 88
JS unmount olmadan native listener kalırsa sızıntı olur. Native event, JS runtime yokken gelirse çöküş olur. remove/invalidate ve kapanış sırası Spec’te tanımlanmalıdır.
Soru 89
Süreç start → native init → RN runtime → bundle yükle/eval → ilk commit → etkileşim. Her aşamaya zaman işareti (mark) koyun. OTA indirme critical path’e girmemeli; önceki bundle ile açılmalı.
Soru 90
Her OTA min/max native sürüm taşır. Uyumsuz OTA crash loop (sürekli çöküş) yaratabilir. Zorunlu binary update, kill switch ve kademeli yayın olmadan OTA production-ready sayılmaz.
Soru 91
Automatic batching çoğu event’te state güncellemelerini birleştirir. Native’den gelen event kaynaklarında sürüm farkları olabilir. “Neden iki render?” sorusunda event kaynağına bakın.
Soru 92
Ağır render’ı startTransition / useDeferredValue ile düşük önceliğe alın; jest/animasyon UI thread’de kalsın. JS’te uzun işleri parçalayın (yield).
Soru 93
Platforma özgü UI dönüşümü artırır ama maliyeti ikiye katlar. Ortak sistem hız verir ama “web gibi uygulama” hissi riski taşır. Ürün skoru ve ekip kapasitesiyle karar verin.
Soru 94
injectJavaScript, dosya erişimi, deep link parametreleri ve XSS → native çağrı zinciri risklidir. Origin allowlist, mesaj şeması doğrulama, hassas API’yi WebView’a açmama.
Soru 95
Font, piksel yoğunluğu, animasyon, platform blur farkları flaky üretir. Eşik (threshold) + animasyonu sabitleme gerekir; her pikseli “bug” sanmayın.
Soru 96
Gradle remote cache, dikkatli DerivedData/Pods cache. Yanlış cache stale (bayat) native binary üretebilir; cache anahtarına RN/native hash girilmelidir.
Soru 97
Domain kuralları JS’te test edilebilir kalsın; kare bütçeli işler native/worklet’te olsun. Sınır: veri yoğunluğu, gecikme SLA’sı, ekip skill’i. Her şeyi native’e taşımak RN değerini öldürür.
Soru 98
Açılış sayacı, son OTA hash, safe mode (yedek bundle), native bayrak. İki soğuk açılış çöküşünden sonra OTA geri al + sade UI. Kullanıcıyı sonsuz splash’te bırakmayın.
Soru 99
Her JS↔native atlama kuyruk/gecikme ekler. Tek çağrı ucuz görünür; saniyede binlerce kez sistem erir. API’de batching ve event/push modeli tercih edilir.
Soru 100
- Metriği sabitleyin (FPS/TTI). 2) Release’e yakın build kullanın. 3) JS / UI / GPU ayırın. 4) Commit, flag veya OTA ile bisect yapın. 5) Hipotezi ölçümle kanıtlayın. 6) Fix + regresyon testi + alarm. “Sanırım FlatList” senior cevap değildir; kanıt zinciri senior’dır.
Önceki / sonraki seviye
- ← Önceki: Mülakat Soruları — Seviye 4 (İleri)
- Bu serinin son seviyesisiniz. Tekrar için Seviye 1’e dönebilirsiniz: Seviye 1
Tüm mülakat seviyeleri
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta)
- Seviye 4 (İleri)
- Seviye 5 (En Zor) (bu yazı)