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.
| Meyar | setState | Provider | Riverpod | BLoC |
|---|---|---|---|---|
| Öyrənmə xərci | Yoxdur | Aşağı | Orta | Yüksək |
| Boilerplate | Yoxdur | Az | Az | Çox |
| Test edilə bilmə | Zəif | Yaxşı | Çox yaxşı | Çox yaxşı |
| Compile-time təhlükəsizlik | — | Zəif | Güclü | Orta |
| Uyğun miqyas | Bir widget | Kiçik–orta app | Orta–böyük | Bö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
- State management-ə girişrəsmidocs.flutter.dev
Ephemeral və app state ayrımı rəsmi sənədin başlanğıc nöqtəsidir.
- Variantların siyahısırəsmidocs.flutter.dev
- App arxitekturası bələdçisirəsmidocs.flutter.dev