თავიდან ასაცილებელი ანტიმოდელები
შეცდომების უმეტესობა ჩნდება, როცა იმპერატიული და დეკლარაციული მოდელები ერთმანეთში ირევა. შეინარჩუნეთ მკაცრი საზღვარი მდგომარეობისთვის.
push/pop-ის შერევა გვერდებთან
არ გამოიძახოთ `Navigator.push`/`pop` ისეთი სტეკებისთვის, რომლებსაც უკვე `List<PageEntry>` მართავს.
Widget მდგომარეობაში
არ ჩასვათ `Widget`-ის ინსტანციები გვერდის მეტამონაცემებში. შეინახეთ მხოლოდ გასაღებები და route-ის მსგავსი იდენტიფიკატორები.
უსაზღვრო გასაღებები
არ გამოიყენოთ ერთსა და იმავე სტეკში დუბლირებული `PageEntry.key` მნიშვნელობები.
მიგრაციის საკონტროლო სია
გამოიყენეთ ეს საკონტროლო სია refactor-ის review-ების დროს, რათა არქიტექტურა თანმიმდევრული დარჩეს.
საკონტროლო სია
კარგი vs ცუდი
// ცუდი: იმპერატიული და დეკლარაციული მიდგომის შერევა ერთი და იმავე stack-ისთვის
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// კარგი: განაახლეთ მხოლოდ დეკლარაციული მდგომარეობა
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
review-ის რჩევა
კოდის review-ის დროს აკონტროლეთ ვინ ფლობს სტეკის ცვლილებებს და უარი თქვით ცვლილებებზე, რომლებიც ერთსა და იმავე სტეკს მრავალ API-ით ცვლიან.