ತಪ್ಪಿಸಬೇಕಾದ ಆಂಟಿ-ಪ್ಯಾಟರ್ನ್‌ಗಳು

ಇಂಪೆರೇಟಿವ್ ಮತ್ತು ಡಿಕ್ಲರೇಟಿವ್ ಮಾದರಿಗಳನ್ನು ಮಿಶ್ರ ಮಾಡಿದಾಗ ಹೆಚ್ಚಿನ ದೋಷಗಳು ಸಂಭವಿಸುತ್ತವೆ. ಸ್ಥಿತಿಗೆ ಕಟ್ಟುನಿಟ್ಟಾದ ಗಡಿಯನ್ನು ಇರಿಸಿ.

push/pop ಅನ್ನು pages ಜೊತೆ ಮಿಶ್ರಗೊಳಿಸುವುದು

`List<PageEntry>` ಈಗಾಗಲೇ ನಿಯಂತ್ರಿಸುತ್ತಿರುವ stack‌ಗಳಿಗೆ `Navigator.push`/`pop` ಅನ್ನು ಕರೆಬೇಡಿ.

ಸ್ಥಿತಿಯಲ್ಲಿ Widget

page metadata ಒಳಗೆ `Widget` instance‌ಗಳನ್ನು ಇಡಬೇಡಿ. keyಗಳು ಮತ್ತು route-ಸಮಾನ ಗುರುತುಗಳನ್ನು ಮಾತ್ರ ಇಟ್ಟುಕೊಳ್ಳಿ.

ಅನಿಯಂತ್ರಿತ keyಗಳು

ಅದೇ stack‌ನಲ್ಲಿ duplicate `PageEntry.key` ಮೌಲ್ಯಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಬೇಡಿ.

ಸ್ಥಳಾಂತರ ಪರಿಶೀಲನಾ ಪಟ್ಟಿ

ಆರ್ಕಿಟೆಕ್ಚರ್ ಸ್ಥಿರವಾಗಿರಲು refactor review ಗಳ ಸಮಯದಲ್ಲಿ ಈ ಪರಿಶೀಲನಾ ಪಟ್ಟಿಯನ್ನು ಬಳಸಿ.

ಪರಿಶೀಲನಾ ಪಟ್ಟಿ

ಉತ್ತಮ vs ಕೆಟ್ಟದು

// ಕೆಟ್ಟದು: ಒಂದೇ stack‌ಗೆ ಇಂಪೆರೇಟಿವ್ ಮತ್ತು ಡಿಕ್ಲರೇಟಿವ್ ವಿಧಾನಗಳನ್ನು ಮಿಶ್ರಗೊಳಿಸುವುದು
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// ಉತ್ತಮ: ಡಿಕ್ಲರೇಟಿವ್ state ಅನ್ನು ಮಾತ್ರ ನವೀಕರಿಸಿ
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
review ಸಲಹೆ

code review ವೇಳೆ ಗಮನಿಸಿ stack ಬದಲಾವಣೆಗಳಿಗೆ ಯಾರು ಹೊಣೆ ಎಂದು ಮತ್ತು ಹಲವು API ಗಳ ಮೂಲಕ ಅದೇ stack ಅನ್ನು ಬದಲಾಯಿಸುವ ಬದಲಾವಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಿ.

ಹಿಂದಿನದು

ಓವರ್‌ಲೆಗಳು

ಮುಂದಿನದು

ಪರಿಚಯ