Sparround

Hansını seçmək: müqayisə və qərar

State management sualında intervyuerin axtardığı şey konkret paket bilikləri deyil, qərar vermə çərçivəsidir. Əvvəlcə vəziyyəti təsnif et:

  • Ephemeral (lokal) vəziyyət — yalnız bir widget-ə aiddir: forma mətni, açılıb-bağlanan panel, animasiya. Bunun üçün `setState` düzgün seçimdir və paket lazım deyil
  • App state (paylaşılan) — bir neçə ekrana aiddir: autentifikasiya, səbət, ayarlar, cache. Yalnız burada paket lazım olur

Rəsmi Flutter sənədi məhz bu ayrımla başlayır və "hər şeyi paketə köçürmək" tövsiyə olunmur.

MeyarsetStateProviderRiverpodBLoC
Öyrənmə xərciYoxdurAşağıOrtaYüksək
BoilerplateYoxdurAzAzÇox
Test edilə bilməZəifYaxşıÇox yaxşıÇox yaxşı
Compile-time təhlükəsizlikZəifGüclüOrta
Uyğun miqyasBir widgetKiçik–orta appOrta–böyükBöyük, komanda ilə

Interview ipucu. "Hansı state management-i istifadə edirsən?" sualına tək söz ilə cavab vermə. Güclü struktur: (1) əvvəlcə lokal/paylaşılan ayrımını izah et; (2) hazırkı layihədə nə istifadə etdiyini və niyə seçildiyini de; (3) alternativlərin güclü tərəflərini tanı — bu, dogmatik olmadığını göstərir. Ən pis cavab "X ən yaxşısıdır" formasıdır; ən yaxşısı "kontekstdən asılıdır, bizim kontekstdə X-i belə seçdik".

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