თავიდან ასაცილებელი ანტიმოდელები

შეცდომების უმეტესობა ჩნდება, როცა იმპერატიული და დეკლარაციული მოდელები ერთმანეთში ირევა. შეინარჩუნეთ მკაცრი საზღვარი მდგომარეობისთვის.

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-ით ცვლიან.