{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Чему меня научил React

Изучение новой технологии кропотливое и хлопотное занятие. Только открываешь Google и через несколько часов находишь себя в море информации: статьи, учебники, видео. И каждый лектор утверждает, что его метод обучения совершенный, а советы уникальны.

Офис "Digital Skynet"

Начать лучше всего с основных концепций, а уже после погружаться в океан знаний.

Затем разработать собственный подход к изучению.

В статье я поделюсь своим опытом: расскажу о концепциях изучения и как систематизировать знания.

Итак, начнем!

Следите за изменениями в React

Помните начальное объявление версии 16.3.0? Все были в предвкушении.

Вот некоторые из изменений и улучшений:

  • Official Context API
  • createRef API
  • forwardRef API
  • StrictMode
  • Component Lifecycle Changes

Команда React Core делает большую работу, улучшая технологию. А в версии 16.4.0 мы получили Pointer Events.

Дальнейшие изменения, безусловно, придут, и это всего лишь вопрос времени: Async Rendering, Caching и многие другие.

Поэтому, если вы хотите быть топовым разработчиком, будьте в курсе событий.

Узнавайте, как все работает, почему разрабатываются обновления, какие проблемы решаются с их помощью и как облегчается процесс разработки.

Разбивайте код на маленькие части

React основан на компонентах, поэтому используйте эту идею и не бойтесь разделять большие куски кода на более мелкие.

Иногда простой компонент может быть сделан из 4-5 строк кода, это совершенно нормально.

Сделайте так, чтобы новый человек, который встретится с вашим кодом, не потратил много времени на разбор того, как все работает.

Делайте компоненты простыми. Если это улучшит читаемость, тестирование кода и уменьшит smells кода, это отличная победа для всех в команде.

В примере выше свойства являются статическими. Таким образом, у нас есть чистый компонент, который отвечает за сообщение об ошибке Not Found, и ничего больше.

Кроме того, если вам не нравятся классы CSS как имена классов во всем мире, я бы рекомендовал использовать стилизованные компоненты. Это сделает код более читабельным.

Если вы боитесь создавать много компонентов из-за захламления папок файлами, то переосмыслите, как вы структурируете свой код. Я использую фрактальную структуру.

Всегда развивайтесь

Вам будет казаться, что вы еще не всё знаете, чтобы перейти к более сложным темам. Тут заключается опасность: так можно думать всегда и оставаться на том же уровне. Всё, что нужно сделать, это перестать беспокоиться и бросить себе вызов.

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

Есть множество паттернов, которые можно изучать:

  • Compound Components
  • High Order Components
  • Render Props
  • Smart/Dumb Components
  • many others (try out Profiling)

Познакомьтесь со всеми и вы узнаете, для чего и где они используются.

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

А еще я советую экспериментировать с личными проектами. Цель вашей работы в том, чтобы решать существующие проблемы и облегчить дальнейшую разработку.

Не усложняйте

Звучит банально, но совет важный. В работе и жизни нужно стремиться к равновесию. Будьте практичными и пишите такой код, который легко понять.

Если вам не нужен Redux, но вы хотите использовать его, потому что все так делают, не советую даже начинать. Нет ничего плохого в том, чтобы иметь мнение отличное от других.

Когда вы пишите код, не забывайте, что кроме вас есть и другие люди, которые будут с ним работать. Представьте ситуацию: коллега уходит в двухнедельный отпуск и его задачу вешают на вас. Вы открываете код и понимаете, что здесь черт ногу сломит и надо потратить 8 часов, чтобы как-то разобраться в написанном. Не очень приятно, согласитесь.

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

Рефакторинг, рефакторинг и ещё раз рефакторинг

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

Не забывайте тестировать свою работу. Smoke, unit, integration, snapshot — не стесняйтесь использовать их.

Если вы, как и многие люди, считаете, что тестирование - это пустая трата времени, задумайтесь:

  • Вам не придется сидеть со своим коллегой, объясняя, как все работает.
  • Вам не придется сидеть с коллегой, объясняя, почему все сломалось.
  • Вам не придется исправлять ошибки.
  • Вам не придется исправлять ошибки, которые были найдены через 3 недели.
  • У вас будет больше личного времени.

Неплохо, да?

Если вам это нравится, вы добьетесь успеха

В прошлом году моей целью было стать профи в React. Я хотел быть полезным другим, делиться своими знаниями и опытом.

Я ночами напролет писал код, смотрел видео, что-то изучал. Самое главное, мне это нравилось. Я получал удовольствие от обучения.

Сейчас я могу выполнять такие проекты, о которых раньше даже не мог и мечтать.

И сегодня я до сих пор ощущаю то же волнение и наслаждение, что и год назад.

Поэтому спросите себя: «Тебе нравится то, что ты делаешь?»

Если нет, не тратьте на это время. Продолжайте искать своё дело, о котором сможете говорить часами, посвящать всего себя этому и быть счастливыми.

Потому что невозможно достичь успеха в том, что ты не любишь.

Адаптированный перевод статьи The most important lessons I’ve learned after a year of working with React от Digital Skynet 😉

0
2 комментария
Zoibana

Филиал хабра is coming

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

В ограниченном количестве — норм. ))

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