Sparround

Rapid-fire suallar

Müsahibənin ilk 10 dəqiqəsində adətən qısa, faktik suallar verilir. Onların məqsədi dərinlik yoxlamaq deyil — əsasların yerində olduğunu təsdiqləməkdir. Cavablar 1-2 cümlə olmalıdır: uzun izahat burada zəiflik kimi qəbul olunur.

Aşağıdaki cədvəllər bu suallar üçün hazır, qısa cavablardır. Hər birini səsli təkrarlayın — müsahibədə tərəddüd etmədən cavab vermək bilikdən az əhəmiyyətli deyil.

SualQısa cavab
`setState` nə edir?State-i dəyişib widget-i "dirty" işarələyir; həmin `State` obyektinin bütün alt ağacı yenidən qurulur.
`context.watch` ilə `context.read` fərqi?`watch` abunə olur və rebuild tetikləyir; `read` yalnız oxuyur, callback-lər üçündür.
`InheritedWidget` nə üçündür?Ağacda aşağıya məlumat ötürmək və abunəçiləri `updateShouldNotify` ilə xəbərdar etmək; Provider bunun üzərində örtükdür.
`ValueNotifier` nə vaxt bildiriş verir?Yeni dəyər köhnəsinə `==` üzrə bərabər olmadıqda.
Riverpod-da `ref.watch` harada işlədilir?`build` metodunda və provider-in gövdəsində; sənədə görə əsas seçimdir.
`AsyncValue` nədir?Loading/error/data vəziyyətlərini bir sealed tipdə birləşdirən Riverpod tipi.
`autoDispose` nə edir?Dinləyici qalmadıqda provider-in state-ini təmizləyir; codegen-də default aktivdir.
`family` nə üçündür?Provider-ə arqument ötürmək; hər arqument üçün ayrı state saxlanılır.
Cubit ilə Bloc fərqi?Cubit-də metodlar, Bloc-da event-lər state-i dəyişir; Bloc traceability və event transformasiyaları verir.
Bloc təkrar state-i necə idarə edir?`state == nextState` olduqda dəyişiklik baş vermir.
`BlocListener` niyə lazımdır?Rebuild etmədən yan effekt üçün: SnackBar, dialoq, naviqasiya.
`Equatable` niyə istifadə olunur?State-ə dəyər semantikası vermək; `==` olmadan rebuild filtrləri düzgün işləmir.
SualQısa cavab
"UI yenilənmir" — ilk üç şübhəli?Abunə olmayan oxunuş (`read`), bildirişin göndərilməməsi, mutable state ucbatından `==` fərq görməməsi.
`ProviderNotFoundException` səbəbi?Oxunuşda istifadə olunan `context`-in yuxarısında həmin provider yoxdur (dialoq, yeni route, öz context-i).
Riverpod-da testdə asılılığı necə əvəz edirsiniz?`ProviderContainer.test(overrides: [...])` və ya `ProviderScope(overrides: [...])`.
`blocTest`-in `seed` parametri?Bloc-a ilkin state verir — testi lazımi vəziyyətdən başlatmaq üçün.
`droppable` transformer-i nə edir?Bir event işlənərkən əlavə olunan event-ləri atır (ikiqat ödənişin qarşısını alır).
`await`-dan sonra `context` istifadəsi?`mounted` yoxlanışı lazımdır; `use_build_context_synchronously` lint-i bunu tutur.
State harada yaşamalıdır — rəsmi cavab?UI state view model-də, paylaşılan/sessiya state-i repository-də; service state saxlamır.
`const` konstruktor performansa nə verir?Flutter rebuild işinin böyük hissəsini qısa yolla keçir — rəsmi tövsiyədir.
Rebuild-ləri necə ölçürsünüz?DevTools → Performance → **Track Widget Builds**.
Riverpod 3-də `valueOrNull`?`value` adına dəyişdirilib; `AsyncValue` isə sealed olub.
`mapEventToState` hardadır?bloc v8.0.0-da silinib, yerinə `on<Event>` gəlib.
Hansı library ən performanslıdır?Üçü də eyni mexanizm üzərindədir; performansı abunəliyin sahəsi və immutability təyin edir.

Rapid-fire bölməsində iki tələ var. Birincisi — çox danışmaq: sual "nə edir?" formasındadırsa, iki cümlə kifayətdir; müsahib dərinlik istəsə, özü soruşacaq. İkincisi — bilmədiyini gizlətmək: "Dəqiq xatırlamıram, amma yanaşma belədir..." cavabı uydurmaqdan qat-qat yaxşıdır və təcrübəli müsahib bunu dəyərləndirir.

📚 Mənbələr və sənədlər