Open underscorekadji opened 1 month ago
Также рекомендую настроить связку ESLint + TypeScript + Prettier для анализа проекта на предмет очевидных ошибок. Вот пример настройки для Vite: https://medium.com/@nedopaka/setup-a-react-vite-project-with-typescript-prettier-vitest-2024-9bb6e919ac8f.
Notes
src/utils/favorites.js
'favorites'
лучше вынести в отдельную константу.src/slices
initialState
в отдельный объект вне создания слайса и использовать его для инициализации.src/services/weatherApi.js
API_KEY
всегда должны быть получены из переменных окружения. Никогда не оставляйте их в коде, даже в учебных проектах, и никогда не коммитьте файлы.env
, содержащие ключи. Лучше всего описать процесс настройки вREADME.md
, добавив секцию с примером.env
файла, где напротивAPI_KEY
указать, например,accuweather.com_API_KEY
.src/components
src/components/Search.jsx
formik
илиReact Hook Form
. Для валидации формы при использованииformik
рекомендуется подключитьYup
.src/components/UnitToggle.jsx
useCallback
для функцииhandleToggle
, чтобы избежать ненужных перерисовок.src/pages/Home.jsx
Важно добавить обработку ошибок. В случае непредвиденного сбоя приложение должно показывать пользователю сообщение. При критической ошибке можно отобразить сообщение об ошибке, чтобы пользователь понимал, что что-то пошло не так.
[Не только для React] Рекомендуется изучить и добавить логирование и аналитику. Это важно для понимания того, как работает приложение у пользователей, и для агрегации ошибок, которые можно будет использовать для улучшения приложения в будущем.
Рекомендуется выделять компоненты в отдельные папки и изолировать их, что является лучшей практикой для улучшения организации и поддержки кода. В дальнейшем компоненты будет проще поддерживать и расширять тестами, storybook и т.п.
Необходимо добавить тестирование приложения, например, с использованием
jest
.Рекомендуется изучить следующие библиотеки:
Storybook
,i18next
,React Helmet
.