페이지와 push/pop 혼용
List<PageEntry>가 이미 제어하는 스택에는 Navigator.push/pop을 호출하지 마세요.
상태에 넣은 Widget
페이지 메타데이터에 Widget 인스턴스를 넣지 마세요. 키와 경로 유사 식별자만 유지하세요.
중복 키
같은 스택에서 중복된 PageEntry.key 값을 다시 사용하지 마세요.
마이그레이션 체크리스트
리팩터링 리뷰에서 이 체크리스트를 사용해 아키텍처의 일관성을 유지하세요.
체크리스트
좋은 예 vs 나쁜 예
// 나쁜 예: 같은 스택에 명령형과 선언형을 섞기
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// 좋은 예: 선언형 상태만 업데이트하기
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
리뷰 팁
코드 리뷰에서는 스택 변경 책임 주체를 추적하고 같은 스택을 여러 API로 변경하는 수정은 거부하세요.