React — JavaScript-библиотека для создания веб-интерфейсов.
Давайте разберём каждую часть фразы.
- С помощью веб-интерфейсов пользователи взаимодействуют с сайтом — нажимают на кнопки, заполняют формы, пользуются жестами и другими интерактивными элементами.
- Создавать интерфейсы для больших проектов на React проще, чем на чистом JavaScript, поэтому эта библиотека используется на большом количестве сайтов. При этом в небольших проектах хватит и чистого JavaScript.
- Большинство сайтов написано на JavaScript . И если вы знаете JavaScript, то вы автоматически можете описать интерфейс с помощью React. При этом, конечно, есть много техник, которые нужно изучить для использования React.
Чем занимается React-разработчик
React-разработчики (иногда их называют фронтенд-разработчиками) отвечают за внешний вид сайта или приложения и делают так, чтобы все интерактивные элементы работали, как задумано дизайнерами. Они используют знания в JavaScript, CSS, HTML. React используется именно для описания интерфейсов.
Разработка. UX-дизайнер создаёт макеты пользовательского интерфейса, а React-разработчики реализуют их как веб-компоненты, которые могут отправлять и получать данные с бэкэнд-сервера. При этом важно разрабатывать компоненты, которые можно использовать повторно, чтобы сократить время на дальнейшую разработку.
Пример задачи, которую может решить React-разработчик.
Создать кнопку, которая покажет спиннер внутри неё при отправке HTTP-запроса и превратится обратно в обычную кнопку при успешном или ошибочном выполнении запроса.
Тестирование . Как и любой другой код, код на React обязательно должен проходить тестирование. В это время тестировщики (или сам разработчик) будут тестировать функциональность и исправлять ошибки, если они есть. Это касается и поведения элементов, и их внешнего вида.
Планирование. Разработчики участвуют во встречах по планированию спринтов разработки и ретроспективах по разработке функций, чтобы попытаться улучшить их к следующему спринту. Это общая практика для большинства разработчиков, о которой нужно знать.
Работа в команде . В состав команды обычно входят разработчики, веб-дизайнеры, тестировщики и менеджеры проектов. Нужно находить общий язык со всеми этими людьми, и развитие софт-скиллов (навыков, не относящихся напрямую к коду) тоже очень важно.
Какие нужны навыки
Профессиональная разработка на JavaScript — тот этап в карьере, когда разработчик знает достаточно много и уже умеет пользоваться большим количеством технологий. React ещё немного увеличивает список необходимых знаний, но при этом позволяет перейти на новый карьерный уровень и зарабатывать гораздо больше.
Веб-технологии. Минимум, который необходим любому фронтенд-разработчику: JavaScript, HTML, CSS, Sass или Less, Webpack. React-разработчику обязательны нужно знать как управлять состоянием компонента с помощью Redux и тестировать компонент с помощью Enzyme
Фреймворки. Знание дополнительных фреймворков помогает или увеличить количество задач (а значит и зарплату) на текущем месте работы, или найти новую, так как будет доступно больше вакансий. Список фреймворков: Angular, Vue, Svelte.
Дополнительные библиотеки.
- Управление состоянием: Redux, MobX, RxJS.
- Роутинг: React Router.
- Стилизация: CSS Modules, styled-components
- Работа со времене: date-fns
- Запросы к серверу: axios.
Тестирование приложений. В больших компаниях есть отдельные команды тестировщиков, но в начале карьеры в небольших студиях разработчик может быть сам себе тестировщиком. Чтобы успешно проверять свой код, нужно знать React Testing Library , Mocha, Jest, Karma, VCS, понимать, что такое Unit-тесты и владеть методологией TDD.
«Вы просто нажимаете на кнопки, любой так может». 18 глупых вопросов тестировщику
Базы данных. Общее понимание баз данных поможет налаживать взаимодействие с бэкендом. Самые популярные (и нужные реакт-разработчику): MySQL, NoSQL (например, MongoDB), PostgreSQL, Redis. Не обязательно все, но важно иметь хотя бы общее представление.
Системы контроля версий. Инструменты, в которых обязательно ведётся работа в любой команде программистов. На выбор: GitHub, GitLab, Bitbucket, Subversion.
Облачные платформы. Многие компании переносят сайты (особенно, если нагрузка большая) на облачные сервисы, поэтому хорошо иметь представление о работе и этих систем. Среди популярных: Amazon AWS, Microsoft Azure, OpenStack Apache, Google Cloud Platform.
Управление проектами. Списки задачи и найденные ошибки удобнее всего вести в специальных программах — таск-трекерах и баг-трекерах. Поэтому важно представлять, как работают Jira, Basecamp, Trello, Asana или ClickUp. Они построены на одних и тех же принципах, поэтому достаточно знать, как в целом устроены такие системы.