Тестовое задание и code-review для новичков (frontend, react)

Привет будущим frontend-разработчикам (и некоторым бывалым).

Мы (я и мой коллега Роман) проводим тестовое задание с разбором ваших ошибок. Сегодня мы анонсируем повторный запуск первого ТЗ (видео с прошлого разбора, но если вы планируете выполнять - не торопитесь смотреть).

Ключевой игрок - React. Задание подходит новичкам, не подходит опытным разработчикам [1].

[1] - для тех, кто с легкостью пишет на JS и React, предлагаем выполнить данное ТЗ на TypeScript и Reach router. А также вы можете дополнить выполнение Docker-образом. Получите новый опыт.

Участие бесплатное.

Что проверяем?

Начальные знания по React, Redux и роутингу. Текст задания.

Примерный результат

Порядок проведения

Вы выполняете задание и присылаете письмо со ссылкой на гитхаб. На разборе обсуждаются как коллективные ошибки, так и индивидуальные. Так же обсуждаются хорошие решения и выбираются топ-3 работы.

Плюсы:

  • вам указывают на ошибку
  • вам подсказывают решение
  • вы смотрите как эту же проблему решали другие участники

Минусы:

  • публичное порицание за халтуру (не путать с “непреднамеренными ошибками”)

Рекомендации к выполнению

Заполните README .md по образцу

После того как сделали, посмотрите подобный разбор (видео), исправьте ошибки.

Для тех, кто пишет на TS - используйте строгие правила:

  • noImplicitAny
  • noImplicitThis
  • alwaysStrict
  • strictNullChecks
  • strictFunctionTypes
  • strictPropertyInitialization

Подробнее здесь (EN).

Предоставьте ссылку на demo и добавьте оформление проекту.

Дедлайн

Прием работ заканчивается ровно через месяц: 11 апреля 2019 года. Не тормозите, изучение без практики невозможно.

Работы присылайте мне на почту ([email protected]) с темой письма: TZ #1 v2.0

Если есть вопросы - задавайте в комментариях.

0
8 комментариев
Написать комментарий...
Oleksii B.

А можно сделать авторизацию пользователя через firebase?

Ответить
Развернуть ветку
Max Patsitansky
Автор

Все усложнения для задания - на ваше усмотрение. В зависимости от количества присланных работ, я буду думать уделять время этому на ревью или нет.

Ответить
Развернуть ветку
Oleksii B.

Прочитал публикацию на habr, здесь уже все моменты разобраны, в т. ч. с TS и hooks. Что тогда еще остается сделать?

Ответить
Развернуть ветку
Max Patsitansky
Автор

Остается добавить Redux и переписать логику с хуков, на redux там, где нужно.

Ответить
Развернуть ветку
Aleksey

Привет, при вызове внутри useEffect экшена который диспатчит в store массив новостей, при первой отрисовке страницы эффект вызывается 2 раза, в depends передаю ему длину массива, подскажи как избавиться от этого перерендера для новостей. https://github.com/AlekseyPn/react_study_app/tree/redux компонент News.

Ответить
Развернуть ветку
Aleksey

Или нам не нужно в хуках этого делать в задании а просто прикрутить redux через statefull компоненты?

Ответить
Развернуть ветку
Max Patsitansky
Автор

Я думаю новости надо забирать redux-ом, процитирую:

While hooks are local, some state is global. And that means that state managers will always be your friend! (в переводе: пока хуки локальны, кое-что в стейте глобально. И это значит, что стейт-менеджер (Redux/mobx/etc..) все еще ваш друг)

Взял отсюда: https://frontarm.com/james-k-nelson/react-hooks-intuition/

Ответить
Развернуть ветку
Aleksey

Спасибо, просто хотел попробовать все это подружить, но дружится кривовато :) меня не устраивает такой вариант, спасибо за инфу и пояснения :)

Ответить
Развернуть ветку
5 комментариев
Раскрывать всегда