Техническое задание: Рефакторинг и исправление ошибок в React/Redux приложении
Ключевая задача
Проанализировать существующий код проекта на React с использованием Redux для управления состоянием, выявить и исправить критические проблемы, влияющие на стабильность и пользовательский опыт.
Основные проблемы для решения
- Некорректная работа фильтров: Состояние фильтров не синхронизировано, логика сброса/применения работает с ошибками.
- Отсутствие оптимизации поиска: Поисковые запросы выполняются на каждое нажатие клавиши, создавая избыточную нагрузку.
- Утечки памяти и варнинги: В консоли присутствуют предупреждения, есть подозрение на утечки, связанные с подписками и таймерами.
- Незакрытые issues: Необходимо проанализировать и решить задачи, описанные в трекере проблем проекта.
Требования к реализации
1. Исправление системы фильтров
- Привести состояние фильтров в Redux Store к консистентному виду.
- Обеспечить корректный сброс и комбинирование нескольких фильтров.
- Оптимизировать перерисовку компонентов при изменении фильтров.
2. Оптимизация поиска
- Реализовать механизм debounce для поля поиска с настраиваемой задержкой.
- Обеспечить отмену pending-запросов при новом вводе.
3. Устранение утечек и варнингов
- Выявить и устранить все утечки памяти (cleanup в useEffect, отмена таймеров/подписок).
- Убрать критические предупреждения из консоли разработчика.
4. Общее качество кода
- Провести рефакторинг проблемных модулей в соответствии с best practices.
- Закрыть все назначенные issues в репозитории проекта.
- Предоставить краткий отчет о проделанной работе и внесенных изменениях.
Ожидаемый результат
- Стабильно работающая система фильтрации и поиска.
- Оптимизированное и отзывчивое взаимодействие с интерфейсом.
- Чистая консоль без критических ошибок и предупреждений.
- Закрытые issues в трекере задач.