gitignoreсодержит все необходимые файлы / папки (как минимумnode_modulesи папку с билдом)README.mdсодержит только необходимую информацию. Описан тех стек, есть инструкция для development и production сборки. Есть ссылка на рабочай проект- Проект запускается и собирается без ошибок
- При работе проекта в консоли нету ошибок
- При работе проекта происходят ожидаемые запросы на сервер (в DevTools во вкладке Network все происходит как вы того ожидаете - идут нужные запросы в нужном количестве)
- В
package.jsonтолько зависимости, которые используются в проекте - В
package.jsonестьnpmскриптыstart,build,lint,test - Убедитесь, что работает Gihub Pages, если такая требуется. SPA задеплоен на Netlify
- Хорошо протестируйте свое приложение вручную, часто сами найдете пару багов
- Подключен и настроен
ESLint. Используйтеairbnbпресет - Код отформатирован с помощью
Prettier - Удален закомментированный и не используемый код
- Переменные/функции/компонентs имеют понятные и логичные имена
- Весь возможный код покрыт юнит тестами (идеальный вариант, не всегда это требуется)
- Для написания стилей используется
SASS. Используем как минимум переменные и вложенность при написании стилей - Классы названы по BEM
- Файлы не больше 100 строк (желательно до 50)
- В одной папке не больше 10 файлов (лучше держать не больше 5)
- Константы вынесены в переменные. Возможно даже в отдельном файле
- Ф-ции для запросов на сервер - в отдельном файле
- Удалите
console.log, где они использовались для отладки - Стили нормализированы
- Избегайте вложенности кода везде где возможно. Избегать использование for/while везде где возможно
- Нет лишних запросов не сервер. С сервера достаем только те данные которые необходимы
- Нет дублирования кода
- Для всех компонент прописаны
PropTypes - Данные из
storeдостаются с помощью селекторов - В одном файле - одна компонента
- Если в компоненте нету состояния или методов жизненного цикла - она должна быть функциональной
- В JSX минимум логики
- Используйте деструктуризацию для
props - Структура проекта
src/
|-- features/
| |-- auth
| | |-- components
| | | |-- Auth.jsx
| | | |-- LoginForm.jsx
| | | |-- styles.scss
| | |
| | |-- auth.actions.js
| | |-- auth.reduces.js
| | |-- auth.selectors.js
| | |-- auth.actionTypes.js
| |
| |
| |-- tasks
| |-- componetns
| | |-- TasksList.jsx
| | |-- Task.jsx
| | |-- styles.scss
| |
| |-- tasks.actions.js
| |-- tasks.reduces.js
| |-- tasks.selectors.js
| |-- tasks.actionTypes.js
|
|-- styles/
| |-- index.scss
| |-- variables.scss
| |-- common.scss
| |-- breakpoints.scss
|
|-- App.jsx
|-- index.jsx
|-- store.js
|-- index.html
.eslintrc.js
.babelrc
.gitignore
package.json
webpack.config.js