Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 4.75 KB

guidelines.md

File metadata and controls

38 lines (26 loc) · 4.75 KB

Методические рекомендации по оценке диплома

Приоритеты при проверке (в порядке убывания значимости):

  1. Логическая корректность реализации (насколько логически правильно всё сделано)
  2. Работоспособность
  3. Полнота реализации
  4. Аккуратность и соответствие стилю кодирования
  5. Внешний вид и оформление

Все страницы должны быть реализованы с помощью React Router в соответствии с теми правилами, которые описаны в задании. Отсутствие реализации одной из страниц (включая 404) приводит к необходимости отправки на доработку.

Внешний вид должен быть аналогичен тому, что представлен в разметке (каталог html), если внешний вид не соответствует - отправляем на доработку. В разметке специально использованы как классы, так и inline-стили, чтобы студент показал знания использования и того, и другого.

Для хранения состояния корзины и побочных эффектов могут использоваться:

  1. Context API + побочные эффекты в компонентах
  2. Redux + побочные эффекты в компонентах, либо Action Creator'ах
  3. Redux + Redux Thunk
  4. Redux + Redux Observable
  5. Redux + Redux Saga

Важно: не должно быть прямого пробрасывания состояния корзины через props сквозь всё приложение! За это сразу отправлять на доработку.

Итоговая оценка не зависит от того, какой из 5-ти способов выбирает студент, но при этом сами способы должны быть реализованы корректно в соответствии с выбранным походходом*:

  1. Если используется Redux - то всё состояние хранится в Store, Action создаются Action Creator'ами, типы Action вынесены в константы
  2. Если используется Thunk - все побочные эффекты в Thunk'ах + dispatch для Thunk'ов аналогичен dispatch'у для обычных Action Creator
  3. Если используется Observable и Saga - соответственно Epic'и и Saga.

Примечание*: да, мы знаем, что подходы можно комбинировать (и можно в одном проекте замиксовать Thunk, Observable и Saga, а также хранить состояние в Redux, Context'е и локально), но в рамках диплома требуем чёткого разграничения.

Должна быть правильная обработка состояния загрузки: показываться loader для всех сетевых запросов. У каждого большого компонента свой loader (у каталога, топ продаж и т.д.).

Должна быть корректно реализована обработка ошибок (в случае Observable и Saga - не приводящая к остановке) с выводом сообщения об ошибке пользователю. Студент сам должен предложить формат и реализацию отображения ошибки (но никаких window.alert и console.*).

Специально для упрощения в качестве библиотеки CSS используется Bootstrap.

Весь код должен быть выложен на GitHub в виде отдельного репозитория с правильным .gitignore и без всякого лишнего мусора.

При оформлении кода рекомендуем вам опираться на стиль кодирования Airbnb: https://github.com/airbnb/javascript (именно JS, а не React), если студент не следует, то указывать в качестве рекомендаций. При наличии систематического злоупотребления - является поводом для отправки на доработку.