Particle1Particle2Particle3Particle4Particle5
HWdTech / Блог /

Лучшие технологии

JS для изучения

в 2020 году

Знание каких фреймворков и технологий поможет вам получить хорошую работу в новом году и десятилетии.

09 Апреля 2020
#AngularJS #cypress #front-end #JavaScript #ReactJS

Reading time: 7 min

Сегодня переводим для вас статью Эрика Эллиотта, редактора таких блогов на Medium, как JavaScript Scene и The Challenge, а также топового автора в разделе «Технологии».
Эрик Эллиотт помимо статей написал книги «Создание программного обеспечения» и «Программирование приложений JavaScript». Еще он является соучредителем EricElliottJS.com и DevAnywhere.io. и обучает основным навыкам разработки программного обеспечения.
Этот материал пригодится вам, если вы хотите в ближайшем будущем получить должность JavaScript-разработчика, а также познакомиться с трендовыми технологиями 2020 года и нового десятилетия. В первой части вы увидите перевод всего, что касается фреймворков, немного затрагивая TypeScript, Data Management, back-end, тестирование и функциональные инструменты.

Цель данного поста не в том, чтобы указать вам на то, какие стеки технологий и структуры являются «лучшими», «самыми любимыми» или «самыми популярными», а в том, чтобы пролить свет на то, какие из них дадут вам наилучшие шансы получить отличную работу в 2020 году и далее. Тем более что не существует такого понятия, как «лучший для всех», зато довольно легко объективно описать, что даст вам возможность достичь конкретной цели: получить job offer. Мы рассмотрим данные из различных источников: Google Search Trends по соответствующей тематике;Исследования State of JS;Исследования Stack Overflow;Количество загрузок npm;Агрегированные объявления о работе.
Ни одна из этих метрик не является 100%-но показательной, но для наших целей наибольшее значение имеют количество загрузок npm и количество вакансий. Когда мы смотрим на все данные в совокупности, они дают четкую и непротиворечивую картину состояния и трендов JS-технологий. С их помощью мы изучим коэффициент окупаемости (очевидно, речь идет об окупаемости изучения той или иной технологии – прим.переводчика) для программистов, ищущих работу – это делает задачу намного проще, чем если бы мы пытались выявить «лучший фреймворк». Давайте посмотрим на некоторые данные, но сперва…

Сначала изучите JavaScript

Прежде чем слишком уж беспокоиться о технических стеках, изучите сам JavaScript и то, как создавать программное обеспечение на его основе. Казалось бы, это очевидно, но если вы не можете объяснить, что такое композиция функций, объектов и модулей - начните с этого. Вся разработка программного обеспечения строится на композиции: мы берем большую, сложную проблему и разбиваем ее на более мелкие, которые можно решить с помощью строительных блоков программирования: функций, объектов, модулей и так далее. Мы сочетаем эти решения для формирования наших приложений. Начните 2020 год с глубокого погружения в JavaScript и software composition.

React был трендом 2019 года и, вероятно, останется им в 2020

скачиваний в год график
Автору статьи нравится использовать загрузки npm как метрику, потому что они дают довольно хорошее представление о том, насколько активно используются фреймворки. Те, что обычно применяются в индустрии, будут иметь необычайно высокие показатели загрузки, так как пользователи запускают npm install на своих локальных компьютерах.
Примечание: jQuery исключен из представленного выше рейтинга, поскольку многие проекты на нем являются устаревшими, и в них не используется npm. По этой причине при любых показателях он будет сильно недооценен. Svelte же добавлен для того, чтобы дать некоторое представление о его относительном положении на рынке и объяснить его отсутствие в остальных графиках - данных для Svelte пока недостаточно, чтобы сделать значимое отображение. Например, он еще не доступен в Google Search Trends.

Агрегированные объявления о работе

В этой таблице представлена статистика по открытым вакансиям с указанием конкретного фреймворка.*
популярность гистограмма
Dec 2019 Job Board Listings by UI Framework React усилил свое лидерство по сравнению с результатами прошлого года, в то время как Angular и jQuery «подвинулись», чтобы уступить место для Vue. Вот круговая диаграмма, показывающая, какова доля рынка труда для каждой платформы.
популярность диаграмма
Top Framework Job Market Share Средняя зарплата разработчиков JavaScript снова выросла в 2019 году: от 111 тысяч долларов/ год до 114 тысяч долларов/год, но это данные по Соединенным Штатам (Смотреть в источнике).
* Методология: На предмет вакансий автор исследовал сайт Indeed.com. Чтобы отсеять ложные срабатывания при поиске, он задал ключевые слова «программное обеспечение», тем самым повысив вероятность релевантности, а затем умножил результат на ~ 1,5 (приблизительная разница между списками вакансий для программистов со словами «программное обеспечение» и без них). Все результаты поиска были отсортированы по дате и проверены на предмет релевантности. Полученные значения не являются точными на 100%, но они достаточно хороши для относительных приближений, используемых в этой статье.

Google Search Trends

Google Search Trends график
Как и следовало ожидать, поисковый интерес * соотносится с долей рынка труда, но есть кое-какие любопытные отличия. Мы отчетливо видим снижение интереса к jQuery в период с 2017 года по сегодняшний день, а также значительный рост интереса к Vue.js. Взгляните на диаграмму:
доли диаграмма
Как и в случае с объявлениями о вакансиях, React предстает перед нами сильным лидером, на него приходится 36% от общего поискового объема для front-end фреймворков. За ним следует Angular с его 27% и JQuery с 25%. Поисковый интерес к Vue.js значительно выше, чем его позиция на рынке труда. Но, в целом, сведения действительно согласуются с данными, представленными в предыдущем разделе. Можем предположить, что у нас есть успешное подтверждение полученной ранее информации.
* Методология: Для всех позиций данные собираются по темам, а не по условиям поиска, чтобы отсеять ложные срабатывания при нерелевантных совпадениях ключевых слов.

Фреймворки: взгляд в будущее

Компании ищут сотрудников с навыками разработки на React гораздо активнее, чем со знанием любой другой популярной, но менее широко используемой платформы, такой как Svelte или Vue (обе имеют очень высокие оценки удовлетворенности, но сравнительно более низкое внедрение в отрасли).

Возможно, изучать Svelte или Vue – это круто, но если ваша цель - получить работу, у вас будет больше шансов, если вы сначала изучите React.

Тем не менее, Svelte и Vue получили очень высокие оценки в рейтинге удовлетворенности пользователей, согласно опросу State of JavaScript 2019. В прошлом подобные показатели стали для React предсказанием быстрого роста по сравнению с Angular, который доминировал в то время, но имел сравнительно низкие оценки удовлетворенности. Как мы видим, оно сбылось. В 2019 году React занял первое место по уровню удовлетворенности пользователей: 89% опрошенных остались им довольны. Второе место заняли Svelte (88%) и Vue.js (87% - по сравнению с 91% в прошлом году). Маловероятно, что Svelte или Vue «украдут» достаточно пользователей React, чтобы нанести ощутимый «удар» по нему. При этом все еще существует достаточно программистов, предпочитающих Angular и jQuery, которые могут перейти на Svelte или Vue, что приведет к дальнейшему сильному росту обеих платформ в 2020 году.

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

TypeScript против JavaScript

Нет сомнений, что TypeScript активно развивался в течение последних нескольких лет. Согласно опросу State of JavaScript, 89% пользователей TypeScript будут использовать его снова, а 66% респондентов либо работают с ним прямо сейчас, либо хотели бы попробовать в будущем (это немного меньше, чем в прошлом году – тогда этот показатель был на уровне 71%). Но, притом, что интерес к TypeScript, безусловно, очень высокий и его использование, кажется, быстро набирает обороты, опыт работы с этой технологией пока не пользуется большим спросом на рынке труда. Всего лишь около 7% вакансий JavaScript-разработчиков упоминают TypeScript в описании работы (Ссылка на источник). При этом, считает автор, HR-менеджеры несколько недооценивают сложность TypeScript и считают, что программист в случае чего сможет освоить его «по ходу дела», а потому, возможно, не считают нужным указывать его при публикации вакансий.
TS/JS вакансии диаграмма
Кроме того, по мнению автора, TypeScript может иметь низкий или даже отрицательный возврат инвестиций. Он скорее может нарушить, нежели подкрепить вашу продуктивность и, если вы используете другие техники предотвращения ошибок, такие как TDD, code review и design review, то разработка на TypeScript вряд ли даст вам большое преимущество при поиске багов. Тем не менее, есть много причин любить TypeScript, и вам, определенно, не следует его бояться или отказываться от предложений работы, если компания использует его вместо JavaScript. Поскольку TypeScript - это надстройка JavaScript, переход от JS к TS не так сложен, как изучение нового языка. Несмотря на то, что вам не нужно изучать язык TypeScript, дабы получить преимущество на рынке труда в 2020 году, но движок TS весьма полезен даже для стандартного JS. Автор пишет,что использует его постоянно при разработке автодополнения кода(intellisense) в Visual Studio Code в том числе для javascipt. Это intellisense может быть даже улучшено с помощью JSDoc (который понимает механизм TypeScript и интерпретирует его так, как он будет интерпретировать аннотации типов) или внешних файлов d.ts, и VS Code автоматически получит определения TypeScript для используемых вами модулей.
Примечание: Уже несколько лет автор пользуется подобными преимуществами, используя TernJS и Atom, но эта комбинация нуждается в техподдержке и поддержке сообщества TypeScript engine + VS Code.
Если вы еще не пробовали разработку в Visual Studio Code, вы, быть может, захотите начать с этого. Кстати, VS Code доминирует на рынке JavaScript IDE согласно данным опроса State of JS: ей досталась доля рынка в 57%, а за ней с большим отрывом следует WebStorm с долей рынка 14%.

Data Management

Redux по-прежнему занимает лидирующие позиции в гонке менеджеров состояний, но удовлетворение и интерес к GraphQL и Apollo также растут. Мы можем ожидать продолжение развития GraphQL в 2020 году.
redux/graphql скачиваний в год график
Тем не менее, автор считает, что есть серьезные основания выбирать Redux для управления состояниями, даже если вы уже используете GraphQL. По его мнению, вы останетесь в выигрыше от изучения Redux, даже если вы не используете фреймворки. GraphQL - это язык запросов, который стал популярным в последние годы. У него простой синтаксис, но, поскольку он используется для full stack разработки, работа с ним влечет за собой изучение того, как подключить его к вашему data storage layer. Его интеграция может быть пугающей, но оно того стоит. GraphQL не собирается полностью заменить собой API-интерфейсы JSON REST в ближайшее время, но в 2019 году рост его популярности ускорился, и автор полагает, что эта тенденция сохранится и в 2020 году.

Back End

Express является главенствующим фреймворком Node с очень высоким уровнем удовлетворенности и отсутствием серьезных соперников на старте 2020 года. Но с ростом числа серверов можно ожидать того, что доминирование Express в дальнейшем ослабнет.
node Back End график
Next.js - это full stack фреймворк для React, изначально созданный на основе Express. Но с тех пор, как он отошел от Express в сторону безсерверной и статической оптимизации, его популярность стала бешено расти. По словам автора статьи, когда они перевели EricElliottJS.com с Express на безсерверный Next.js, это позволило сократить расходы на хостинг на 90% и ускорить загрузку страниц. Сложно представить рекомендацию лучше! Сейчас команда использует Next.js и хостинг Zeit для всех своих приложений.

Тестирование

Jest и Cypress наиболее популярны для модульного и функционального тестирования, соответственно, но автор, определенно, предпочитает RITEWay и TestCafe. RITEWay это дзен в мире модульного тестирования: фреймворк, который всегда отвечает на пять вопросов, на которые должен ответить каждый юнит-тест. TestCafe - это функциональный инструмент тестирования, который, как и Cypress, не требует от вас «борьбы» с Selenium, но его кроссбраузерная поддержка лучше, а еще есть классный тестовый рекордер/IDE. (Примечание переводчика: возможно, это уже не так! Вот, что мы писали про Cypress совсем недавно: https://hwdtech.ru/blog/cypress). Тем временем автор настоятельно рекомендует командам QA познакомиться с TestCafe.

Функциональные инструменты

Lodash, Ramda, Immer, Redux и RxJS - это функциональные инструменты, которые автор часто использует.
функциональные инструменты график скачиваний
Популярность Ramda сильно выросла в 2019 году, теперь платформа предлагает некоторые инструменты, которых нет в Lodash, включая lenses и transducers. RxJS предлагает функциональный стиль с конвейерными операторами. Immer облегчает работу с объектами JavaScript, не изменяя их. Redux - это менеджер состояний (как мы уже писали выше – прим. переводчика).

Спасибо всем, кто дочитал! Надеемся, информация о JS-фреймворках и некоторых других платформах в 2020 году будет вам полезна. Во второй части данного перевода автор расскажет нам о состоянии технологий в 2020 году, включая ИИ, виртуальную реальность, криптовалюту, дроны и другие, которые будут оказывать существенное влияние на жизнь человека в течение следующего десятилетия.
Читайте также

Наши статьи!

Спросите нас

Мы ответим в течение суток

* - обязательное поле

Нажимая на эту кнопку, вы соглашаетесь с обработкой ваших персональных данных и принимаете нашу политику обработки конфиденциальных данных