Αντιπαραδείγματα που πρέπει να αποφεύγονται.

Τα περισσότερα προβλήματα προκύπτουν όταν συνδυάζονται προγραμματιστικά μοντέλα εντολών και δηλωτικά μοντέλα. Διατηρήστε σαφή όρια για την κατάσταση (state).

Συνδυασμός λειτουργιών "push" και "pop" με σελίδες.

Μην χρησιμοποιείτε τις μεθόδους Navigator.push/pop για στοίβες που ελέγχονται ήδη από την κλάση List<PageEntry>.

Widget σε κατάσταση.

Μην ενσωματώνετε στιγμιότυπα (instances) των widgets στα μεταδεδομένα της σελίδας. Διατηρήστε μόνο τα κλειδιά και τους αναγνωριστικούς όρους που μοιάζουν με διαδρομές.

Απεριόριστα κλειδιά.

Μην επαναχρησιμοποιείτε τις ίδιες τιμές για το πεδίο "key" σε διαφορετικές εγγραφές σε μια ίδια στοίβα.

Λίστα ελέγχου για τη μετανάστευση.

Χρησιμοποιήστε αυτόν τον κατάλογο ελέγχου κατά τη διάρκεια των ελέγχων αναδιαμόρφωσης, ώστε να διασφαλίσετε τη συνέπεια της αρχιτεκτονικής.

Λίστα ελέγχου.

Καλό εναντίον κακού.

// Κακή πρακτική: συνδυασμός εντολών και δηλωτικού κώδικα για την ίδια στοίβα
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Σωστή πρακτική: ενημέρωση μόνο της δηλωτικής κατάστασης
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Συμβουλή για κριτικές.

Κατά τη διάρκεια της ανασκόπησης του κώδικα, παρακολουθήστε... ποιος είναι ο κάτοχος των μεταλλάξεων στο στοίβα δεδομένων; και απορρίψτε αλλαγές που τροποποιούν την ίδια στοίβα μέσω πολλαπλών διεπαφών προγραμματισμού (APIs).