बचने योग्य एंटी-पैटर्न
अधिकांश बग तब होते हैं जब imperative और declarative मॉडल मिल जाते हैं। state की सीमा को सख्त रखें।
पेजों के साथ push/pop का मिश्रण
`List<PageEntry>` द्वारा नियंत्रित stack के लिए `Navigator.push`/`pop` न बुलाएँ।
state में Widget
Page metadata में `Widget` instances न रखें। केवल keys और route-जैसे पहचानकर्ता रखें।
डुप्लिकेट keys
एक ही stack में duplicate `PageEntry.key` values का पुनः उपयोग न करें।
माइग्रेशन चेकलिस्ट
आर्किटेक्चर को सुसंगत बनाए रखने के लिए refactor समीक्षाओं के दौरान इस checklist का उपयोग करें।
चेकलिस्ट
अच्छा बनाम खराब
// खराब: एक ही stack के लिए imperative और declarative को मिलाना
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// अच्छा: केवल declarative state अपडेट करें
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
समीक्षा सुझाव
code review के दौरान यह ट्रैक करें stack परिवर्तनों का स्वामी कौन है और उन बदलावों को अस्वीकार करें जो कई APIs के माध्यम से एक ही stack को बदलते हैं।