Seviye 4, New Architecture (yeni mimari) ve runtime (çalışma zamanı) katmanına odaklanır. JSI, Fabric, Turbo Modules, Hermes bytecode ve OTA gibi production kararlarını mülakat diline, anlaşılır Türkçeyle çevirir.
Seviye 4 — İleri · Sorular 61–80 / 100
Bu serideki seviyeler
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta)
- Seviye 4 (İleri) (bu yazı)
- Seviye 5 (En Zor)
Soru 61
JSI (JavaScript Interface), JS motoruna gömülü C++ çağrılarıdır; JSON köprü kuyruğu yoktur. Senkron çağrı mümkün olur ama JS thread’i uzun süre meşgul etme riski doğar. New Architecture ve Reanimated’ın zemini JSI’dır.
Soru 62
JS çöp toplayıcı (GC) ile native bellek aynı anda temizlenmez. Yanlış tasarım use-after-free (silinmiş belleği kullanma) veya sızıntı üretir. Destroy sırası ve thread aidiyeti Spec’in parçasıdır.
Soru 63
Merkezi async bridge’in kalkması; native çağrıların JSI üzerinden yapılmasıdır. Tam geçiş için Turbo Modules + Fabric ve bağımlılık uyumu gerekir.
Soru 64
Native API sözleşmesini derleme zamanına taşır: metotlar, tipler, event’ler. Runtime sürprizini azaltır. Spec kayarsa genelde build kırılır — bu iyidir.
Soru 65
Daha fazla işi build zamanına çekerek cihazdaki parse/compile maliyetini düşürmeyi hedefler. Dil/tooling kısıtları vardır; “aç ve unut” değildir.
Soru 66
OTA (Over-The-Air: mağazasız JS güncelleme), native binary ile uyumlu bundle dağıtmalıdır. Native modül değiştiyse OTA yetmez, mağaza sürümü gerekir. Geri alma (rollback) politikası şarttır.
Soru 67
Shadow tree değişiklikleri gerçek native view hiyerarşisine yazılır (commit). Concurrent render ile yarış durumları sözleşme ile yönetilir. Özel view’larda prop diff hataları sık kök nedendir.
Soru 68
Worklet’ler UI runtime’da çalışır; JS tarafındaki her şeyi serbestçe yakalayamazsınız. Shared value semantiği ve “JS’e sıçrama” maliyetini bilmek gerekir.
Soru 69
Bağımlılık envanteri → kritik native yüzeyleri Spec’e alma → interop ile kademeli açma → metrik (çöküş/TTI/jank) → varsayılan yapma. Büyük uygulamada tek seferde flag çevirmek risklidir.
Soru 70
Eski ve yeni mimarinin yan yana yaşamasını sağlar ama çift maliyet ve kenar hatalar üretir. Geçici köprüdür; kalıcı mimari sanılmamalı, kapanış tarihi planlanmalıdır.
Soru 71
Çoğu işlem JSI ile köprü JSON maliyeti olmadan, daha doğrudan native store üzerinden gider. Yine de devasa işlerle ana thread’i kilitlemeyin; parçalayın.
Soru 72
Kareler klasik bridge’e gitmeden worklet/JSI yolunda işlenebilir. Gerçek zamanlı kamera/CV için şarttır; yanlış thread veya fazla kopya kare düşürür.
Soru 73
Web kadar olgun değil. OTA + paket sınırlarıyla denemeler var ama versiyonlama, native bağımlılık ve güvenlik maliyeti yüksek. Çoğu ekip için erken optimizasyondur.
Soru 74
Kullanılmayan native bağımlılık temizliği, asset bakımı, Hermes, resource shrink, Android App Bundle. Ölçüm olmadan “küçüldü” demeyin.
Soru 75
Navigasyon sahipliği, bağımlılık çakışması, uzun build, tek süreçte çoklu RN runtime. Entegrasyon yüzeyini küçük tutmak başarıyı artırır.
Soru 76
Lockfile, private registry, checksum, imzalı artifact. Her npm install’ın farklı sonuç vermesi release riskidir. CI’da npm ci gibi sabit kurulum standarttır.
Soru 77
Mağazalar yanıltıcı/gizli davranışı reddedebilir. Flag ile riskli native özelliği saklamak yerine guideline’a uygun rollout gerekir.
Soru 78
Eksik dSYM / mapping / source map, OTA bundle eşleşmemesi. Her sürüm artifact’ı arşivlenmezse canlı stack okunamaz.
Soru 79
Render kesilip önceliklendirilebilir; UI tutarlılığı Fabric sözleşmesine daha çok dayanır. Eski Paper varsayımlı native UI kodu kenar durumlarda bozulabilir.
Soru 80
Aşırı platforma özgü fizik/UI, ağır 3D/oyun, çok sıkı realtime native toolchain, derin native ihtiyaç varken ekipte native kapasite yokluğu. Dogma değil tradeoff (ödünleşme) anlatın.
Önceki / sonraki seviye
- ← Önceki: Mülakat Soruları — Seviye 3
- Sonraki: Mülakat Soruları — Seviye 5 (En Zor) →
Tüm mülakat seviyeleri
- Seviye 1 (Kolay)
- Seviye 2 (Orta)
- Seviye 3 (İleri Orta)
- Seviye 4 (İleri) (bu yazı)
- Seviye 5 (En Zor)