Эта статья была рецензирована Джоан Инь , Скоттом Молинари и Джулианом Моц . Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше!
2016 год был монументальным, причудливым и несколько радостным / пугающим годом в зависимости от ваших перспектив. Сосредоточиться на одном только JavaScript может показаться несущественным по сравнению с другими событиями, но это огромная часть рабочей жизни каждого веб-разработчика.
Популярность JavaScript продолжает расти . Не все любят язык, но вы редко слышите насмешливые комментарии десятилетия назад. Лично я всегда любил JavaScript — даже в ранние, разочаровывающие годы. Те, кто подходит к нему с направления C ++, Java или PHP, могут сначала запутаться: JavaScript выглядит знакомым, но не так. Преодолейте свои предположения, и вы оцените его простую элегантность, практичность и гибкость. (Тем не менее, обработка даты все еще кошмар! )
В мае JavaScript отпраздновал свой 21-й день рождения, поэтому давайте вспомним его первый год зрелости для взрослых…
ECMAScript Evolution
ES6 / 2015 был самым значительным обновлением языка с момента его рождения. На завершение спецификации ушло семь лет, но браузеры и среды исполнения наконец-то начали поддерживать функции стрелок, let
const
Таблица совместимости ES6 приобретает великолепный оттенок зеленого .
Возможно, немного рано переходить на ES6, если вы поддерживаете старые браузеры. Под старшим я имею в виду что-либо выпущенное больше года назад. Вы можете использовать компилятор ES6-ES5, такой как Babel , но разработка достаточно сложна без дополнительного этапа сборки.
ES7 / 2016 — это скорее эволюция, чем революция. Одной из захватывающих новых функций является асинхронность , которая позволяет асинхронному коду быть написанным синхронно без синтаксических сложностей обратных вызовов или обещаний (которые продолжают смущать меня).
Прогрессивные веб-приложения
Моя любимая технология 2016 года на основе JavaScript присуждается Progressive Web Apps. О PWA было объявлено в 2015 году на Google Chrome Dev Summit , но в июле в Chrome 52 наконец появились стабильные технологии и инструменты. PWA позволяют работать в автономном режиме и заменяют нестабильные методы AppCache. Веб-приложения могут, наконец, конкурировать с нативными и предлагать следующие преимущества:
- значок главного экрана
- быстрый запуск и пользовательские заставки
- быстрое исполнение
- автономный функционал без подключения к интернету
- URL-адреса, ссылки и закладки
- полноэкранные или тематические интерфейсы
- песочница исполнения
- локальное и / или облачное хранилище с синхронизацией
- меньше места на устройстве и ресурсов обработки
- лучшая безопасность (обязательным условием является HTTPS)
- легкое обнаружение из любой поисковой системы
- попробуй перед установкой
- более простое развертывание: это просто веб-приложение
- никакой ерунды в AppStore: ваше приложение может содержать любую наготу и ругательства, которые вы пожелаете, без того, чтобы кто-то требовал 30% вашей прибыли!
Лучше всего: любой веб-сайт или приложение может быть преобразовано в PWA в течение нескольких часов. Шаги:
- Включите HTTPS на вашем сервере.
- Создайте манифест приложения — файл JSON в корне приложения, который определяет имя, цвета, значки и параметры отображения.
- Создайте Service Worker — файл JavaScript в вашем корне, который перехватывает сетевые вызовы и может возвращать кэшированные или оперативные данные по мере необходимости.
Это первые дни, и примеры редки, но PWA предоставляют удивительную возможность «мобилизовать» ваши веб-приложения. Следует признать, что Apple не будет внедрять эту технологию, но это не должно иметь значения: ваше приложение будет по-прежнему работать в Safari, оно просто не получит выгоды от автономного выполнения. У меня такое чувство, что Apple будет рекомендовано поддерживать PWA, когда веб-интерфейс станет заметно лучше на Android.
Для получения дополнительной информации см . Прогрессивные веб-приложения Dev.Opera: исчерпывающая коллекция ресурсов и руководства Google по PWA .
Фиксация рамок
Трудно сделать беспристрастное суждение, но React, кажется, получил наибольшее внимание в этом году. Вы можете не согласиться; это зависит от того, что вы используете, где вы просматривали и с кем разговаривали!
Популярность Vue.js возросла, а версия 2.0 была выпущена в сентябре.
AngularJS , возможно, потерял часть импульса, полученного в 2015 году, но это может измениться после выхода Angular 2 в сентябре. Новая версия полностью переписана; это не обратно совместимо с v1.0.
Новые фреймворки и библиотеки впечатляют, но десятилетний jQuery по-прежнему набирает силу. Версия 3.0 была выпущена 9 июня, а версия 3.1 появилась 7 июля. Библиотека теперь работает в строгом режиме, поддерживает Promises и применяет различные исправления. (См. Руководство по обновлению для получения полного списка изменений.)
JQuery принят на 96,4% веб-сайтов, которые используют JavaScript . Сравните это с Angular — наиболее используемой современной платформой — с долей 0,5%. jQuery 1.x является самой популярной версией, на которую приходится 93,5% установок . Версия 2.x следует с 6,0% и версия 3.x с 0,5%.
Я критиковал разработчиков, использующих jQuery по умолчанию для каждого проекта . Его можно использовать слишком часто, когда достаточно более подходящего варианта или небольшого ванильного JavaScript. Тем не менее, он предлагает меньшую кривую обучения и является более гибким, чем большинство. Потребуется много лет, чтобы другой фреймворк или библиотека освободили jQuery.
Злоупотребление API
Ааа, API состояния батареи. Это казалось таким полезным, когда я писал об этом в 2013 году ; что может быть лучше, чем ответственно минимизировать сетевые запросы и обработку, когда ваше приложение обнаруживает, что телефон пользователя вот-вот умрет?
К сожалению, по оценкам Mozilla, около 6% сайтов используют API, но большинство из них были рекламодателями, обнаруживающими (довольно) уникальное состояние батареи и отслеживающими пользователей при навигации по различным доменам. Существовала также возможность повышения цен на определенные услуги, когда они знали, что пользователь более отчаянный …
Хотя это не проблема JavaScript или API как таковая, Mozilla предприняла беспрецедентный шаг по удалению API состояния батареи из Firefox 53 по соображениям конфиденциальности. Это вряд ли появится на устройствах iOS; и другие API, подверженные риску по аналогичным причинам, включая датчик приближения и Bluetooth . Это позор: у этих API есть практические преимущества, и я надеюсь, что вопросы конфиденциальности могут быть решены в будущих выпусках.
Новые узлы
Дважды в год график Node.js давал нам версию 6.0 в апреле и версию 7.0 в октябре.
Платформа находится в восходящем тренде, хотя W3Techs сообщает, что использование сервера Node.js составляет всего 0,2% по сравнению с 82,3% для PHP . Цифры могут слегка вводить в заблуждение, поскольку Node.js не обязательно идентифицирует себя, даже если он установлен.
Скорее всего, PHP не сможет поймать PHP: он имеет большой старт и остается наиболее практичным вариантом для хостов. Тем не менее, Node.js прокладывает свой собственный путь и широко используется разработчиками всех языковых конфессий.
Пряжа Пряжи
Мне нравится npm , и я считаю его одной из главных причин взрыва инструментов Node.js. У меня никогда не было слишком много проблем, но я не работаю над такими крупными проектами, как Facebook.
Инженеры Facebook выпустили пряжу в октябре . Это новый менеджер пакетов Node.js, разработанный, чтобы быть быстрее и стабильнее, чем npm. Он опирается на реестр npm, поэтому должен оставаться полностью совместимым.
Пряжа Тима Севериена против npm: Все, что вам нужно знать, описывает преимущества, которые предлагает пряжа. Я согласен с его выводом:
Хотя пряжа не является вилкой, она исправляет несколько недостатков, которые имеет npm. Не было бы здорово, если бы npm узнал об этом и попросил Facebook, Google и других участников Yarn помочь вместо этого улучшить npm?
Устали от усталости
Статья 2016 года «Я не могу этого больше» рассказывает о том, каково это учить JavaScript в 2016 году Хосе Агинаге. Второе место: dayssincelastjavascriptframework.com .
Это может показаться смешным для текущего состояния JavaScript, но все труднее идти в ногу с последними тенденциями, структурами и рекомендациями. Разработчики борются, когда сталкиваются с множеством вариантов оценки.
Мой совет: не пытайтесь не отставать . Это невозможно. На какую бы систему вы ни ставили сегодня, завтра она будет заменена чем-то лучшим. Выберите вариант для своего проекта и придерживайтесь его, если работа не становится несостоятельной.
Есть только одна абсолютная уверенность: сам JavaScript. Сначала изучайте язык и продолжайте развивать свои знания. Ваш опыт поможет вам понять, как работает каждая структура, чтобы вы могли сделать осознанный выбор. Этот выбор может заключаться в том, чтобы вообще отказаться от рамок.
С новым годом!