Wear ОS – что это такое и как им пользоваться?

30 ноября 2017 г. Vue.js: особенности, применение и отличия от других Javascript фреймворков

Релиз фреймворка Vue.js 2.0 состоялся еще в 2016 году, но многие владельцы технологических компаний и Javascript разработчики все еще не решаются использовать его в своих проектах. В этой статье мы рассмотрим ключевые моменты данного решения.

По Vue JS отзывы довольно положительные. Согласно опросу компании Monterail, 81% разработчиков отмечают простоту интеграции как основное преимущество фреймворка Vue, в т. ч. и интеграцию с backend фреймворками. Большинство специалистов считает, что освоить Vue намного легче чем другие популярные Javascript фреймворки. Документация — еще одна сильная сторона Vue — так считают 60% опрошенных разработчиков. Аналогичное число респондентов (56%) отмечает производительность данного решения как одну из его самых сильных сторон. Разберемся подробнее, что же такое Vue.js?

Описание фреймворка

Vue.js — это JavaScript библиотека для создания веб-интерфейсов с использованием шаблона архитектуры MVVM (Model-View-ViewModel).

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

  • Реактивные интерфейсы;
  • Декларативный рендеринг;
  • Связывание данных;
  • Директивы (все директивы имеют префикс «V-». В директиву передается значение состояния, а в качестве аргументов используются html атрибуты или Vue JS события);
  • Логика шаблонов;
  • Компоненты;
  • Обработка событий;
  • Свойства;
  • Переходы и анимация CSS;
  • Фильтры.

Основная библиотека Vue.js 2 очень маленькая (всего 17 кБ). Это гарантирует, что нагрузка на ваш проект, реализованный с помощью Vue.js, минимальна, а ваш сайт будет быстро загружаться. Скачать соответствующий .js файл можно по ссылке.

Где применяется Vue.js

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

Vue также отлично подходит для крупных одностраничных приложений благодаря своим основным компонентам, таким как Router и Vuex. С Vue можно как использовать общедоступные API для создания приложений, так и реализовывать выполняемые сервером приложения. Но Vue лучше всего подходит для разработки решений, которые используют внешние API для обработки данных.

С помощью Vue также можно создавать frontend блога на популярных CMS. Vue.js отлично подходит и для разработки динамических интерфейсов, которые адаптируются под пользователя.

Vue.js: примеры лучших проектов

Рассмотрим некоторые крупные проекты, основанные на фреймворке Vue. Отметим сложности, с которыми столкнулись их разработчики, и что им дал переход на Vue.js.

Chess.com

Chess.com — самый посещаемый сайт игры в шахматы в мире с более чем 19 миллионами пользователей. Ресурс содержит раздел новостей, блог, сообщества, уроки, головоломки и возможность играть в шахматы в режиме реального времени.

Его legacy-код был реализован в PHP и Angular 1, поэтому возникали определенные сложности при работе с таким кодом. Команда проекта перешла с AngularJS на Vue. Благодаря простоте и быстродействию Vue.js, основателю Chess.com стало легче сотрудничать с его дистанционной командой, а на создание нового функционала ушло совсем немного времени.

Codeship

Codeship — это платформа для непрерывной интеграции, основанная на облачной технологии. Она позволяет хранить веб-приложения в облаке. Эту платформу используют такие гиганты, как Red Bull, CNN и Product Hunt.

Прежде чем Codeship перешел с jQuery на Vue, их пользователи постоянно сталкивались с зависанием и сбоями при работе с веб-приложением. У них был длинный список пользователей которые были недовольны работой приложения. Их история является отличным примером того, как Vue может помочь создать программное обеспечение с надежным и простым в обслуживании код.

Vue.js помог команде Codeship правильно организовать свой код и улучшить пользовательский интерфейс.

Livestorm

Livestorm — это веб-приложение для создания вебинаров. Оно помогает таким компаниям, как Workable, Pipedrive и Instapage продавать свои услуги или обучать клиентов с помощью вебинаров.

Livestorm — это пример Vue JS приложения,созданного с нуля. Благодаря Vue и его повторно используемым компонентам, их процесс разработки был быстрым и довольно простым.

Чем Vue.js отличается от Angular и React

Рассмотрим основные отличия фреймворка Vue от Angular и React.

Компоненты

Все эти фреймворки основаны на компонентах. При этом необходимо отметить, что React и Vue хорошо подходят для обработки так называемых немых компонентов — небольших, не имеющих состояния функций, которые получают входные данные и возвращают элементы в качестве вывода. Vue.js компоненты не имеют особых требований к своим именам, но рекомендуется придерживаться правил W3C для кастомных компонентов — использовать буквы нижнего регистра и разделения через дефис.

Фреймворк против библиотеки

Angular — это фреймворк, а не библиотека, так как содержит четкие указания по структуре приложения, а также имеет широкую функциональность. Angular является полноценным решением для enterprise-приложений, которое не требует от вас анализа каких-либо других библиотек или применения дополнительных инструментов. React и Vue, с другой стороны, универсальны. Их библиотеки могут быть сопряжены со всеми типами пакетов, хотя у Vue их немного, так как он еще довольно молод.

Гибкость использования

Вы можете работать с React или Vue, просто добавив библиотеку Javascript в исходный код. Это невозможно в случае с Angular, так как он предназначен для более сложных задач. Когда же речь идет о микросервисах и микроприложениях, React и Vue предоставляют больше контроля над размером приложений, позволяя выбирать только те элементы, которые необходимы в конкретных случаях. Также они предлагают большую гибкость для перехода от одностраничных приложений к микросервисам, позволяя использовать части прежнего приложения. А Angular, благодаря своему широкому функционалу, лучше всего подходит для разработки самих одностраничных приложений.

Быстродействие и размер файлов

Фреймворк Angular довольно объемен. Из-за своего широкого функционала, размер архивированного файла составляет около 143k, по сравнению с более простыми Vue и React с 23K и 43k соответственно.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

React и Vue имеют Virtual DOM (document object model), который создает копию объектного представления структурного документа и позволяет работать с визуальной копией, а не с самим представлением. Этот подход помогает повысить производительность фреймворков и таким образом ваше приложение будет работать быстрее. Vue, в частности, обладает отличной производительностью и глубоким распределением памяти, но все эти фреймворки в основном схожи по своим характеристикам.

В качестве вывода необходимо отметить, что основными преимуществами Vue JS является его простота и легкость изучения. Вместо того, чтобы изучать сложную терминологию и инструменты для создания простого приложения, как в случае с React, вы можете сразу приступать к разработке. Это делает Vue JS идеальным выбором для стартапов или любой команды разработчиков, которая хочет быстро создавать высокопроизводительные веб-приложения с легко читаемым кодом.

Wear OS от Google: все, что нужно знать о платформе для носимой электроники

Решили собрать наиболее интересную информацию о Wear OS в одном обзоре. Что это за система, ее сильные и слабые стороны. Помимо этого расскажем о смарт-часах, которые ее используют, а также о многом другом.

В последние годы платформа Wear OS от Google получила значительные изменения.

Однако суть операционной системы остается такой же, какой она была еще в 2014 году, и, несмотря на свои недостатки, это один из лучших вариантов для тех, у кого есть телефон на Android. Как ни странно, и для Iphone умные часы на данной операционной системе – очень неплохой вариант.

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

Что такое Wear OS от Google?

Почти для всех умных часов существует определенная программная платформа. Для Apple Watch, это watchOS. Для Samsung это Tizen. Для Fitbit это FitbitOS. Ну Вы поняли.

Однако Wear OS работает немного иначе, поскольку Google сотрудничает со сторонними производителями умных часов. Таким образом, вместо умных часов от Google носителями данной ОС являются часы таких марок, как Fossil, Michael Kors, Skagen, TicWatch и Casio.
Это означает, что в каталоге Wear OS гораздо большее разнообразие дизайнов. Однако, как и на платформе смартфонов Android, программное обеспечение от устройства к устройству практически одинаково.

Что могут умные часы на Wear OS?

Любому пользователю важно знать, на что способна платформа. Особенно, если хочется купить первые умные часы.

Гаджеты на данной платформе гораздо большее, чем просто второй экран смартфона. Вот список некоторых наиболее ярких возможностей (в зависимости от конкретной модели):

* Отслеживание ежедневной активности и тренировок;
* Данные сердечного ритма;
* Google Assistant;
* Google Pay;
* GPS отслеживание местоположения;
* Синхронизация Google Календарей;
* Навигация Google Maps;
* Смарт-возможности, уведомления и звонки;
* Будильник и секундомер.

Какие умные часы Wear OS лучше?

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

Лучшие мужские часы Wear OS: Fossil Carlyle HR

Новое поколение часов Fossil Gen 5, которое появилось в 2019 году, содержит функции моделей Gen 4, динамик и чип Qualcomm Snapdragon 3100.

Благодаря средней цене и простому классическому дизайну умных часов, это идеальный выбор для мужчин, нуждающихся в часах Wear OS.

Лучшие женские часы Wear OS: Michael Kors Access Sofie

Популярный гаджет предлагает очень нужный датчик сердечного ритма, GPS и поддержку Google Pay.

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

Лучшие Wear OS для упражнений: Fossil Sport

Одни из первых умных часов Wear OS с чипом Snapdragon 3100 также являются отличным примером того, как платформу можно использовать в основном для занятий спортом и физическими упражнениями.

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

Лучшие унисекс часы на Wear OS: Skagen Falster 2

Возможно, самые элегантные умные часы на Wear OS – это серия Skagen Falster, которая была обновлена в конце 2018 года.

Как и другие смарт-часы четвертого поколения Wear, они получили поддержку GPS, NFC, частоты сердечных сокращений и влагозащиту, которой не хватало в первой итерации, а улучшения делают его универсальным вариантом как для мужчин, так и для женщин.

Лучшие бюджетные часы Wear OS: TicWatch E2

Пожалуй, один из лучших представителей бюджетных часов в коллекции Wear OS. TicWatch E2 имеет множество функций, оснащен отличным экраном и идеально подходит для любителей спорта.

Дизайн не слишком оригинален и достаточно прост по сравнению с более дорогими часами на данной операционной системе. На наш взгляд, это прекрасный вариант по соотношению цена/качество.

Загрузка приложений в Wear OS

Возможностью загрузки приложений напрямую с часов, без использования смартфона уже никого не удивишь. И Wear OS в этом плане достаточно удобна. Можно просматривать Google Play Store на экране умных часов и мгновенно установить нужное. Конечно, возможность скачать через телефон (через Bluetooth) осталась.

– Читать далее: Как пользоваться Google Maps на смарт-часах Wear OS

Не стоит забывать, что многие приложения, такие как Spotify и Cardiogram, уже предварительно установлены на большинство часов Wear.

Можно использовать наше руководство по установке приложений Wear OS, а мы собрали пять приложений, с которых можно начать:

5. Facer Watch Faces

Смена циферблатов на Wear OS

После того, как вы прочитали инструкцию, скачали пару приложений и разобрались с основными функциями и возможностями Wear OS, наверняка захочется настроить то, на что смотреть будете больше всего – циферблат.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Не важно, отдаёте ли Вы предпочтение цифровым или аналоговым вариантам, или хотите просто изменить виджеты уже выбранного циферблата, сделать это можно просто из самих часов:

1. Активируем экран на смарт-часах;

2. На главном экране нажимаем на сам дисплей и удерживаем в течение двух секунд;

3. Просмотр циферблатов, доступных на часах, возможен свайпом слева направо;

4. Нажимаем на вариант, который хочется установить в качестве нового циферблата.

Ну а очень небольшую часть красивых циферблатов мы собрали здесь.

Wear OS для iPhone

Один из самых распространенных вопросов, которые нам задают: «Могут ли часы Wear OS работать с iPhone?».

В то время как Apple не позволяет пользователям смартфонов Android использовать Apple Watch, пользователи iPhone могут использовать умные часы Wear OS.

И долгое время приложение Wear OS для iPhone было чрезвычайно простым и малофункциональным. Однако недавние обновления позволили пользователям яблочных телефонов получить доступ к Tiles, настройкам уведомлений, синхронизации календаря, Google Assistant, Google Fit и к огромной коллекции циферблатов.

– Читать далее: MONTBLANC SUMMIT 2

Это решение все еще далеко от тех возможностей, которые доступны владельцам Android смартфонов, но этого вполне достаточно, чтобы не чувствовать дискомфорт в ежедневном использовании.

Отслеживание физической активности на Wear OS

Wear OS постепенно становится лучше и с точки зрения мониторинга физической активности. Особенно с тех пор, как устройства четвертого поколения получили GPS и встроенные пульсометры.

Однако наличие датчиков – это только половина работы, а каждая секунда зафиксированной активности выгружается в приложение, в котором она хранится. В случае Wear OS это приложение – Google Fit.
Google Fit, доступный и на телефоне и на умных часах, разделяет вашу ежедневную активность на два ключевых компонента: Минуты активности и Очки сердцебиения.

Это также место, где хранится статистика упражнений, история подсчета шагов, данные о сне и информация о весе (на вкладке под названием Журнал).

Wear OS и голосовой ассистент

Google всегда уделял больше внимания старшей платформе, чем Wear, поэтому поисковый гигант считает, что Google Assistant является важным дополнением к умным часам.

– Читать далее: Голосовые помощники – тренд носимой электроники будущего

С добавлением встроенного динамика в устройства Wear OS пятого поколения, Assistant играет еще более важную роль.

Что касается опыта работы с часами, Google Assistant является более последовательным, логичным и адекватным, чем Alexa (который имеется только на Fitbit Versa 2 и теперь на некоторых устройствах Amazfit), предлагая сильную интеграцию с приложениями и серьезный функционал.

Google Pay на Wear OS

Несмотря на то, что на рынок бесконтактных платежей Google Pay вышел совсем не первым, поддерживается система почти всеми умными часами Wear OS 2018 модельного года и более новыми гаджетами.

Как можно догадаться, работает это аналогично Google Pay на смартфонах – или, любой другой платежной платформе.

Мы подробно описали все возможности Google Pay на Wear OS в большом руководстве, но, если часы поддерживают эту функцию, то достаточно следовать следующим пошаговым инструкциям, чтобы добавить карту на запястье и использовать ее для оплаты.

– Читать далее: СИСТЕМЫ БЕСКОНТАКТНЫХ ПЛАТЕЖЕЙ ДЛЯ УМНЫХ ЧАСОВ

Добавляем платежную карту в свои умные часы:
1. На умных часах открываем приложение Google Pay;

2. Нажимаем на кнопку «Начать»;

3. Настраиваем блокировку экрана, если вы еще этого не сделали;

4. На телефоне следуем инструкциям по добавлению кредитной или дебетовой карты. Это добавит их только к часам, а не к телефону;

5. Карта появится на часах.

Как совершить платеж с использованием Google Pay на умных часах:
1. На часах открываем приложение Google Pay и выбираем карту;

2. Для транзакций по дебетовой карте может потребоваться ввести PIN-код.

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

Мы будем добавлять больше информации и инструкций по использованию данной операционной системы, так что оставайтесь с нами!

Что такое JavaScript?

Добро пожаловать на курс MDN JavaScript для начинающих! В первой статье курса мы дадим базовое определение JavaScript, ответим на вопросы «Что такое JavaScript?» и «Что он делает?», узнаем как работает JavaScript и как добавить его на веб-страницу.

Необходимые навыки: Базовая компьютерная грамотность, знание основ HTML и CSS.
Цели: Знакомство с JavaScript и его возможностями, способами его подключения к веб-странице.

Определение высокого уровня

JavaScript это язык, который позволяет вам применять сложные вещи на web странице — каждый раз, когда на web странице происходит что-то большее, чем просто её статичное отображение — отображение периодически обновляемого контента, или интерактивных карт, или анимация 2D/3D графики, или прокрутка видео в проигрывателе, и т.д. — можете быть уверены, что скорее всего, не обошлось без JavaScript. Это третий слой слоёного пирога стандартных web технологий, два из которых (HTML и CSS) мы детально раскрыли в других частях учебного пособия.

  • HTML – это язык разметки, который мы используем для визуального и смыслового структурирования нашего web контента, например, определяем параграфы, заголовки, таблицы данных, или вставляем изображения и видео на страницу.
  • CSS – это язык стилей с помощью которого мы придаём стиль отображения нашего HTML контента, например придаём цвет фону (background) и шрифту, придаём контенту многоколоночный вид.
  • JavaScript язык программирования, который позволяет вам создать динамически обновляемый контент, управляет мультимедиа, анимирует изображения, впрочем, делает всё, что угодно. Окей, не все, что угодно, но всё равно, это удивительно, что можно достичь с помощью нескольких строк JavaScript-кода.

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

Затем мы добавим немного CSS, что бы это выглядело симпатичнее:

И наконец, добавим немного JavaScript для придания динамического поведения:

Попробуйте кликнуть по тексту чтобы увидеть, что произойдёт (Вы так же можете найти это демо на GitHub — смотрите исходный код, или запустите вживую)!

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

JavaScript может делать намного больше — давайте выясним это более детально.

Так что же он действительно может делать?

Ядро языка JavaScript состоит из некоторого количества обычных возможностей, которые позволяют делать следующее:

  • Хранить данные внутри переменных. В примере выше, мы, например, запрашивали ввод нового имени, которое нужно было ввести, затем сохраняли имя в переменной name .
  • Операции над фрагментами текстов (известными в программировании как “строки”). В примере выше мы брали строку “Player 1: ” и присоединили её к значению переменной name для получения полного текста, например: ”Player 1: Chris”.
  • Запускать код в соответствии с определёнными событиями происходящими на web странице. В нашем примере выше, мы использовали click (en-US) событие, для определения момента, когда кнопка была кликнута, в соответствии с этим запускался код, который обновлял текст.
  • И многое другое!

Ещё более увлекательным является функциональность, созданная поверх основного языка JavaScript. Так называемые интерфейсы прикладного программирования (API) предоставляют вам дополнительные сверхспособности для использования в вашем коде JavaScript.

API – это готовые наборы блоков кода, которые позволяют разработчику реализовывать программы, которые в противном случае было бы трудно или невозможно реализовать. Они делают то же самое для программирования, что готовые комплекты мебели делают для домашнего строительства – гораздо проще брать готовые панели и скручивать их вместе, чтобы сделать книжную полку, чем самому разрабатывать дизайн, ходить в поисках правильной древесины, вырезать все панели необходимого размера и формы, найти подходящие винты, а затем собрать их вместе, чтобы сделать книжную полку.

Они обычно делятся на две категории.

API-интерфейсы браузера встроены в ваш веб-браузер и могут отображать данные из окружающего компьютерного окружения или делать полезные сложные вещи. Например:

  • API-интерфейс DOM (Document Object Model) позволяет вам манипулировать HTML и CSS, создавать, удалять и изменять HTML, динамически применять новые стили к вашей странице и т. д.. Каждый раз, когда вы видите всплывающее окно на странице или какое-то новое содержимое, Как мы видели выше в нашем простом демо), например, это DOM в действии.
  • API геолокации извлекает географическую информацию. Так Google Maps может найти ваше местоположение и нанести его на карту.
  • API Canvas и WebGL позволяют создавать анимированные 2D и 3D-графики. Люди делают некоторые удивительные вещи, используя эти веб-технологии – см. Chrome Experiments и webglsamples.
  • Аудио и видео API, такие как HTMLMediaElement и WebRTC, позволяют делать действительно интересные вещи с мультимедиа, такие как проигрывание аудио и видео прямо на веб-странице, или захватывать видео с веб-камеры и отображать его на Чужой компьютер (попробуйте наш простой демонстрационный снимок, чтобы понять идею)

Примечание: Большинство наших демо не будут корректно работать в старых браузерах — поэтому будет хорошей идеей, для запуска вашего кода установить один из современных браузеров , таких как Firefox, Chrome, Edge или Opera . Также понадобится более подробно рассмотреть раздел по кроссбраузерному тестированию, когда вы приблизитесь к разработке производственного кода (т.е реального кода, который будут использовать клиенты).

По умолчанию сторонние API-интерфейсы не встроены в браузер, и вам придётся захватывать их код и информацию из какого-либо места в Сети. Для примера:

  • Twitter API позволяет вам отображать ваши последние твиты на вашем веб-сайте.
  • Google Maps API позволяет вам встраивать пользовательские карты на ваш сайт и другой подобный функционал.

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

Доступно ещё больше! Но пока не заостряйте на этом внимание. Вы не сможете создать следующий Facebook, Google Maps или Instagram после 24 часов изучения JavaScript — сначала нужно изучить основы. И именно для этого вы здесь — давайте двигаться дальше!

Что JavaScript делает на вашей странице?

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

Давайте составим краткий бриф, что же происходит когда мы загружаем страничку в браузере (первое упоминание в статье Как работает CSS). Когда вы загружаете страничку в браузере, вы запускаете ваш код (HTML, CSS и JavaScript) внутри исполняемой среды (внутри вкладки браузера). Это как будто фабрика берёт сырьё (некий код) и выдаёт продукцию (веб-страничку).

Код JavaScript выполняется JavaScript-движком браузера, после того как код HTML и CSS был обработан и сформирован в веб-страницу. Это гарантирует, что структура и стиль страницы уже сформированы к моменту запуска JavaScript.

Это хорошо, так как часто использование JavaScript заключается в динамическом изменении HTML и CSS в целях обновления пользовательского интерфейса посредством Document Object Model API (как упоминалось выше). Если бы запуск JavaScript осуществлялся прежде загрузки HTML и CSS, то это привело бы к возникновению ошибок.

Безопасность браузера

Каждая вкладка браузера представляет собой отдельную коробку для запуска кода (в техническом языке, эти коробки называются “средами исполнения”) — это значит, что в большинстве случаев код на каждой вкладке запускается полностью отдельно, а код одной вкладки не может напрямую влиять на код другой вкладки или на другом веб-сайте. Это хорошая мера безопасности — если бы это было иначе, пираты могли написать код, который крал информацию с других сайтов или делал другие плохие вещи.

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

Последовательность выполнения JavaScript

Обычно, когда браузер сталкивается с блоком JavaScript, он запускает его по порядку, сверху вниз. Это значит, что вам нужно осторожно выбирать порядок. Например, вернёмся к блоку JavaScript, который мы видели в первом примере:

Здесь мы выбираем абзац текста (строка 1), а затем добавляем к нему обнаружение событий (строка 3), чтобы при нажатии на этот абзац выполнялся блок кода updateName() (строки 5–8). Блок кода updateName() (эти типы многократно используемых блоков кода называются “функции”) запрашивает у пользователя новое имя, а затем вставляет это имя в абзац для обновления отображения.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Если вы поменяете порядок первых двух строк кода, он перестанет работать — вместо этого вы получите ошибку возвращаемую в консоль браузера — TypeError: para is undefined . Это значит, что объект para ещё не существует и вы не можете добавить к нему обнаружение событий.

Примечание: Это очень частая ошибка — вы должны быть осторожны, чтобы объекты, на которые ссылается ваш код, существовали до того, как вы попытаетесь что-то с ними сделать.

Интерпретируемый против компилируемого кода

В контексте программирования, вы можете услышать термины интерпретация и компиляция. JavaScript является интерпретируемым языком — код запускается сверху вниз и результат запуска немедленно возвращается. Вам не нужно преобразовывать код в другую форму, перед запуском в браузере.

С другой стороны, к компилируемые языки преобразуются (компилируются) в другую форму, прежде чем они будут запущены компьютером. Например, C / C ++ компилируются в язык ассемблера, который затем запускается компьютером.

Оба подхода имеют разные преимущества, которые на данном этапе мы обсуждать не будем.

Серверный против клиентского кода

Вы так же можете услышать термины серверный и клиентский код, особенно в контексте веб-разработки. Клиентский код — это код, который запускается на компьютере пользователя. При просмотре веб-страницы, клиентский код загружается, а затем запускается и отображается браузером. В этом модуле JavaScript мы явно говорим о клиентском JavaScript.

С другой стороны, серверный код запускается на сервере, затем его результаты загружаются и отображаются в браузере. Примеры популярных серверных веб-языков включают PHP, Python, Ruby и ASP.NET. И JavaScript! JavaScript так же может использоваться, как серверный язык, например в популярной среде Node.js — вы можете больше узнать о серверном JavaScript в нашем разделе Dynamic Websites – Server-side programming.

Слово динамический используется для описания и клиентского JavaScript, и серверного языка — это относится к возможности обновления отображения веб-страницы/приложения, чтобы показывать разные вещи в разных обстоятельствах, генерируя новый контент по мере необходимости. Серверный код динамически генерирует новый контент на сервере, например достаёт данные из базы данных, тогда как клиентский JavaScript динамически генерирует новое содержание внутри браузера на клиенте, например создаёт новую HTML таблицу, вставляя в неё данные полученные с сервера, затем отображает таблицу на веб-странице, которую видит пользователь. В этих двух контекстах значение немного отличается, но связано, и обычно оба подхода (серверный и клиентский) работают вместе.

Веб-страница без динамического обновления контента называется статической — она просто показывает один и тот же контент все время.

Как добавить JavaScript на вашу страницу?

JavaScript применяется к вашей HTML странице точно так же, как CSS. И если CSS использует элементы для внешних стилей и для встроенных в HTML, то для JavaScript нужен только один друг в HTML мире — элемент

Зачем изучать Node.js, или О перспективах бэкенда на JavaScript

  • Краткая теория: что такое Node.js и где применяется эта технология
  • Экскурс в историю: с 2009 до 2019
  • Сфера применения: где используют Node.js
  • Node.js vs PHP и Python
    • Получите востребованную профессию Node.js-программист
  • Зарплата Node.js-разработчика: сколько платят и есть ли вакансии
  • Перспективы Node.js: комментарии экспертов
    • Игорь Камышев: судя по тенденциям, Node.js будет становиться только популярнее
    • Андрей Мелихов: мне кажется, рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков
    • Алексей Золотых: на рынке труда не хватает разработчиков на Node.js
  • Заключение
    • Никогда не останавливайтесь:

В этой статье идёт речь о перспективах Node.js разработчика на рынке труда, а также об актуальности бэкенда на JavaScript. Вы узнаете, почему стоит изучать Node.js, какое будущее у этой технологии, сколько платят программистам с соответствующей специализацией. Известные в отрасли эксперты делятся мнением о бэкенде на JS.

Краткая теория: что такое Node.js и где применяется эта технология

Node.js — среда выполнения кода JavaScript вне браузера. Эта платформа позволяет писать серверный код для динамических веб-страниц и веб-приложений, а также для программ командной строки. С помощью Node.js реализуется парадигма «JavaScript для всего». Она предполагает использование одного языка программирования для разработки веб-приложений вместо применения разных языков для работы над фронтендом и бэкендом.

В разговорной речи программисты используют сленговое слово «нода». Например, «бэкенд пишем на ноде».

Node.js — не отдельный язык программирования, а платформа для использования JavaScript на стороне сервера. Если говорить о языке, то как для фронденда, так и для бэкенда используется один и тот же JavaScript. Разница только в наборе API, которые используют фронтендеры и бэкендеры.

Браузерный JavaScript использует Web API, которые обеспечивают доступ к DOM и пользовательскому интерфейсу страниц и веб-приложений. Серверный JavaScript использует API, обеспечивающие доступ к файловой системе приложений, http-запросам, потокам.

То есть Node.js — это технология для использования JS на бэкенде. С особенностями и перспективами развития языка JavaScript можно ознакомиться в соответствующей статье, а здесь речь идёт об одной из технологий данного языка.

Экскурс в историю: с 2009 до 2019

Платформа Node.js была представлена в 2009 году. Её создал инженер Райан Дал, а спонсором разработки выступила компания Joyent. Компания известна поддержкой опенсорсных проектов, включая Node.js, Illumos, SmartOS.

Райан Дал использовал для создания Node.js движок V8. Платформа реализована с низкоуровневой неблокирующей моделью ввода/вывода, которая построена на событийно-ориентированной модели.

В конце 2014 года инженер Фёдор Индутный, который входил в основную команду разработчиков платформы, создал популярный форк Node.js — io.js. Форк появился из-за недовольства разработчиков политикой компании Joyent.

Платформа io.js превосходила Node.js в производительности. Но создатели форка уже в 2015 году решили воссоединиться с Node.js, чтобы влиять на развитие основной платформы. В настоящее время разработкой формально руководит Node.js Foundation.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Сфера применения: где используют Node.js

Как отмечалось выше, Node.js применяется для бэкенд-разработки на JavaScript. Если в браузере JavaScript тотально доминирует, и конкурентов этого языка на фронтенде не видно даже на горизонте, то в бэкенд-разработке ситуация другая. Здесь JS конкурирует с PHP, Python и другими языками.

Выбор серверного JavaScript для бэкенда обеспечивает проекту ряд преимуществ:

  • рост эффективности разработки благодаря использованию одного языка для фронт- и бэкенда и возможности переиспользования кода;
  • возможность использовать npm — самый большой пакетный менеджер;
  • более простой по сравнению с другими стеками поиск исполнителей, так как JavaScript входит в число самых популярных языков программирования.

Node.js хорошо подходит для разработки RTA — веб-приложений, реагирующих на действия пользователя в режиме реального времени. Например, это может быть онлайн-редактор типа Google Docs, который позволяет работать над одним документом нескольким пользователям одновременно.

Node.js легко обрабатывает большое количество запросов одновременно и обеспечивает быстродействие приложения. Поэтому серверный JavaScript часто используют для создания SPA — одностраничных веб-приложений, в которых рендеринг выполняется на стороне клиента. Node.js на бэкенде используют Netflix, Uber, eBay, Groupon, Yahoo и другие известные организации и проекты.

Node.js vs PHP и Python

О рейтингах PHP мы говорили в обзорной статье по этому языку. А в этом разделе сравним популярность Node.js с PHP и Python, которые часто применяются на бэкенде.

Node.js уступает PHP в популярности. Достаточно вспомнить, что на PHP написаны самые популярные системы управления контентом, включая WordPress, Joomla!, Drupal. Только на WordPress работает около трети всех сайтов в интернете.

Инфраструктура PHP скорее превосходит инфраструктуру Node.js. Например, разработчики на PHP могут выбирать между несколькими достойными веб-фреймворками.

Python считается одним из лучших языков для изучения программирования. Но главная разница между «пайтоном» и Node.js заключается в сферах применения. Python более универсальный: его используют как в веб-разработке, так и в Data Science, Machine Learning и других сферах. Node.js скорее «заточен» под веб-разработку. Благодаря Electron эта технология также применяется для разработки десктопных приложений.

Тем не менее инфраструктура Node.js зрелая, и у разработчиков есть качественные и удобные инструменты. Например, выше упоминались пакетный менеджер npm и фреймворк Electron для создания десктопных приложений. Также стоит упомянуть фреймворки Express и Nest.js, предназначенные для разработки веб-приложений.

Получите востребованную профессию Node.js-программист

В процессе обучения вы получите фундаментальные знания: научитесь программировать на JavaScript, использовать современные инструменты для создания бэкенд-приложений, включая Express.js, Koa, PostgreSQL. Первые курсы в профессии доступны бесплатно. Регистрируйтесь и начинайте учиться!

Зарплата Node.js-разработчика: сколько платят и есть ли вакансии

Спрос на Node.js-разработчиков устойчиво растёт. Обратите внимание на динамику количества вакансий по соответствующей специализации на сайте jobs.dou.ua.

Количество вакансий растёт

По данным сервиса «Хабр Карьера» на первую половину 2020 года, медианная зарплата JavaScript разработчика составляет 105 000 рублей в месяц. Нужно понимать, что в эту статистику входят зарплаты как фронтенд-, так и бэкенд-разработчиков на JS. Разработчики на Python зарабатывают 120 000 рублей в месяц, а PHP-программисты — 110 000 рублей в месяц.

По информации карьерного портала Trud, в октябре 2020 года JavaScript-разработчики зарабатывали в среднем 87 680 рублей. А агентство NewHR подсчитало, что в 2020 году вилка зарплат программиста JavaScript уровня middle в Москве составляет от 170 000 до 220 000 рублей.

Перспективы Node.js: комментарии экспертов

О перспективах бэкенда на JavaScript рассказывают известные в отрасли специалисты.

Игорь Камышев: судя по тенденциям, Node.js будет становиться только популярнее

Игорь Камышев, разработчик веб-приложений и техлид в «Самокате». Разрабатывает экосистему библиотек для Node.js Solid Soda. Автор телеграм-канала kamyshev.code

По вашему мнению, почему стоит изучать Node.js?

— Node.js — необычная технология. Современная экосистема JavaScript создавалась непрограммистами, из-за этого в ней очень много свежих и необычных идей. Начать писать приложения на Node.js проще, чем на Java, Ruby или PHP. Плюс, это достаточно зрелая платформа, многие проблемы уже решены, а лучшие подходы известны и описаны.

Какие перспективы у бэкенд JavaScript по сравнению с другими языками и технологиями?

— Любой бэкенд может быть написан на любом языке. Вопрос только в скорости разработки и надежности этого решения. Приложения для Node.js можно быстро писать, но для обеспечения надежности нужно постараться. Важно понимать, что JavaScript — это язык со слабой динамической типизацией, чтобы это компенсировать нужно заранее продумать архитектуру приложения и потратить больше времени на написание тестов. С другой стороны, можно взять TypeScript и получить гарантию типобезопасности (не полную, конечно, но лучше чем ничего).

На мой взгляд, Node.js подойдет для очень широкого класса бэкендов. Начиная от интернет-магазинов и заканчивая образовательными сервисами.

Будет ли бэкенд на JS востребован в будущем?

— Судя по тенденциям роста, Node.js будет становиться только популярнее. Сложно оценить, когда этот рост прекратится, но сейчас — это факт. Каковы перспективы Node.js-разработчика на рынке труда?

И в России и зарубежом вакансий Node.js-разработчиков достаточно. Зарплаты почти не отличаются от других технологий. Важно понимать, что часто Node.js-разработчики совмещают свою деятельность с фронтенд разработкой в той или иной степени.

Сколько времени нужно учиться бэкенд-разработке на JS с нуля до джуниора?

— Node.js — супер-минималистичная платформа. По сути, чтобы разобраться с ней, достаточно выучить JavaScript и прочитать 10 страниц документации Node.js. Я полагаю, если вы никогда прежде не сталкивались в программированием, то за 5-6 месяцев можно освоить все что необходимо и стать полноправным членом команды.

Андрей Мелихов: мне кажется, рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков

Андрей Мелихов, программист-эксперт в компании «Яндекс.Деньги», ведущий подкаста «Девшахта»

Почему стоит изучать Node.js и обратить внимание на бэкенд-JS?

— Как бы не хотели многие, сайты всё ещё требуют серверного рендеринга. Это не только SEO-задачи, но и мобильный трафик. Если мы не хотим усложнять себе жизнь и используем один и тот же код на сервере и клиенте, то наш практически единственный выбор — это JavaScript. Конечно, есть и различная экзотика, компилируемая в JS, но, за исключением TypeScript, всё это пока достаточно сложно воспринимать серьёзно. Итак, нам нужен JS на сервере, и тут основной игрок — Node.js. Да, стоит напомнить, что есть и другие решения, позволяющие исполнять JS за пределами браузера, но на фоне Node.js их доля незаметна.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Это первое. Второе — в какой-то момент приходит необходимость работать с данными, хранимыми на сервере. Мне кажется, что любой веб-разработчик хотя бы на базовом уровне должен понимать, как это всё устроено. И здесь Node.js отличный выбор, он позволяет создать полноценный веб-сервер с минимальным порогом вхождения.

Третье. Несмотря на все насмешки и недоверие, Node.js дорос до состояния практически взрослого инструмента и продолжает развиваться. Сегодня мы наконец-то имеем приличный инструментарий, статическую типизацию и даже один хороший фреймворк (Nest). Можно смело рекомендовать Node.js в качестве серверного решения для больших долгоживущих нагруженных проектов.

Какие перспективы у языка и технологии?

— Если говорить именно о языке, то мы видим, что JS постепенно становится целью сборки, а не языком, на котором пишут код. И в случае Node.js главная причина тут TypeScript, так как в отличие от браузера нам не нужно транспилировать JS в JS — мы полностью контролируем среду исполнения. Однако те возможности, которые нам даёт TypeScript, гораздо больше, чем просто синтаксический сахар.

И если взять современные инструменты, такие как Nest, то они эти возможности активно используют. Современный проект на Node.js — это статическая типизация, Dependency Injection, паттерны проектирования. Возможно, за этим теряется простота и лёгкость JavaScript, но вместо этого приходит надёжность и упрощение разработки и поддержки в больших проектах.

Какие перспективы у разработчиков на Node.js? Будут ли они востребованы, какие задачи будут решать?

— Неожиданно, но JavaScript стал языком для всего. Сервер, браузер, мобильные телефоны, десктопные приложения, IoT — везде JavaScript неплохо себя чувствует. Совершенно новым направлением оказались AWS-лямбды (serverless), в которых JavaScript тоже отлично себя проявил. Так что да, разработчики будут востребованы. Но если говорить о сервере, то мне кажется, рынок сейчас остро нуждается в грамотных сильных разработчиках с бэкграундом из других языков.

— Дайте совет новичкам: с чего начать, что изучать, на что обратить внимание?

— Начать стоит с изучения UNIX и в целом основ работы компьютерных сетей. После этого можно попробовать написать простое приложение на Node.js, лучше без фреймворков (в том числе без Express). Поняв, что такое TCP/UDP и HTTP/HTTPS, можно уже попробовать написать полноценный бэкенд на Express, отдающий данные по AJAX и шаблонизирующий HTML. Также, конечно, придётся разобраться с Nginx или HAProxy, понять, что такое балансировка. Очень неплохо хотя бы на минимальном уровне понять, что такое Docker и зачем он нужен.

Следующим шагом я бы порекомендовал погрузиться в TypeScript и попробовать Nest. Неплохим вариантом является изучение связки Angular + Nest, так как Nest создан под сильным влиянием Angular и реализует сходные концепции.

Строго рекомендую книгу Node.js Design Patterns от Mario Casciaro.

Алексей Золотых: на рынке труда не хватает разработчиков на Node.js

Алексей Золотых, тимлид в Infobib, соорганизатор конференции HolyJS

По вашему мнению, почему стоит изучать Node.js?

— В последнее время Node.js становится все более взрослой технологией. Появляются серьезные инструменты для отладки, трейсинга и выявления других проблем. В сообществе накапливается экспертиза. Движение в сторону микросервисов нивелирует недостатки в отсутствие статической типизации путем уменьшения сложности. И да, для больших проектов у нас все еще есть TypeScript.

Думаю, что у Node.js точно есть будущее, и точно есть куда расти. Вместе с тем порог входа очень низкий. Это позволяет не думать про технологии и сложность, а просто сосредоточиться на продукте.

Какие перспективы у бэкенд JavaScript по сравнению с другими языками и технологиями?

— Я изначально против привязки к технологиям. Хороший инженер должен выбирать технологию под задачу а не пытаться быть парнем с молотком, для которого все вокруг гвозди. На данный момент у ноды приличная скорость в некоторых аспектах, низкий порог входа, высокая популярность и куча библиотек для всего. С другой стороны, не решены многие вопросы. Но думаю, что это звучит как вызов ;)

Будет ли бэкенд на JS востребован в будущем?

— Сложный вопрос. Думаю, что в ближайшее пару-тройку лет все будет на том же уровне. Но путь к чем-то другому явно будет эволюционным и более или менее плавным. Хороший инженер нигде не пропадет.

Каковы перспективы Node.js-разработчика на рынке труда?

— Очень хорошие. Сейчас их не хватает.

Сколько времени нужно учиться бэкенд-разработке на JS с нуля до джуниора?

— Все индивидуально. Если вы любопытны и въедливы, то думаю, что не менее полугода.

Заключение

Node.js — платформа для запуска кода JavaScript за пределами браузера. Эту технологию используют преимущественно для бэкенд-разработки на JavaScript. Разработчиков на Node.js на рынке не хватает. По мере роста популярности этой технологии дефицит специалистов будет расти.

Никогда не останавливайтесь:

В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Почему Node.js — это гуд

Краткое введение в платформу, на которой JavaScript покоряет мир.

  1. Вы написали простое приложение в браузере — например, анализатор текста или ипотечный калькулятор. Так как всё было в браузере, вы сразу написали всё на JavaScript. Софт работает, приносит пользу.
  2. Со временем вы развиваете проект. Появляются новые функции. Однажды появилась потребность в переносе программы на мощный сервер. Например, вы решили добавить к своему софту интеграцию с Телеграмом, а для этого нужен сервер.
  3. В обычной ситуации вам бы пришлось выбрать какой-нибудь серверный язык и написать свой софт заново — например, на Python или PHP. Но благодаря NodeJS можно скопипастить существующий код, переписав лишь ввод-вывод, и ваша программа продолжит покорять мир.
Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Это и есть Node.js.

Что такое Node.js

Node.js — это система, которая исполняет JavaScript отдельно от вашего браузера. Можно сказать, что это самостоятельная среда для выполнения JavaScript.

Node.js можно установить на сервер (так же, как Python) и исполнять на нём ваш код, отдавая результат исполнения пользователям. На нём же можно делать отдельные приложения, используя дополнительные фреймворки.

Чем хорош Node.js

Если вы начинали изучать программирование, вам будет понятна концепция последовательного исполнения программы. Сначала исполняется первая строчка, потом вторая, потом третья и так далее. Может быть, где-то программа прыгнет вперёд-назад, где-то закольцуется, но в целом она исполняется линейно.

У JS есть фишка — он умеет исполнять код параллельно (условно говоря). Программисты называют это обработкой событий. Программе можно сказать: «Если когда-нибудь произойдёт вот это — выполните вон ту функцию, она знает, что делать». Таких событий можно предусмотреть много — получается, процессы как будто параллельны. Программа может просто сидеть и ждать, когда что-то произойдёт.

Больше того, процессы асинхронны: программа может что-то запросить в самом начале работы — например, спросить что-то у базы данных. И пока база данных чешется, программа на Node.js будет заниматься дальше своими делами. А как придёт ответ — возьмёт его и обработает.

При разработке любой программы на Node.js могут возникнуть сотни таких параллельных событий и обработчиков. Чтобы никто из них не перетягивал одеяло на себя, Node.js делает бесконечный цикл, в котором по кругу предоставляет процессорное время каждой функции. В результате создаётся иллюзия, что они работают параллельно и не мешают друг другу, но на самом деле ими жёстко управляет сама платформа.

Именно такое равномерное распределение всего в цикле событий и даёт Node.js преимущество при создании серверных приложений.

Пример: веб-сервер на Node.js

Как работает обычный веб-сервер

Раньше была такая проблема:

  1. На странице нужно, например, показать аватарку и никнейм пользователя.
  2. Для этого сервер делал запрос к базе данных, чтобы получить оттуда эту информацию.
  3. Пока база не ответит, сервер ничего не может сделать — он терпеливо ждёт.
  4. Сервер ждёт.
  5. Когда от базы приходит ответ с картинкой и никнеймом, сервер снова оживает, продолжает загружать страницу и в самом конце запрашивает у базы фоновую картинку для сайта.
  6. Сервер ждёт
  7. Страница тоже пока не работает, потому что не загрузилась до конца. Половина скриптов тоже не работают, потому что они ждут полной загрузки страницы. Все ждут, пока база ответит.
  8. На каждый такой запрос нужны ресурсы, чтобы держать соединение с базой.
  9. Если таких запросов много, ресурсы на сервере быстро заканчиваются, и тогда сайт начинает тормозить у всех сразу.
  10. Сервер начинает тупить и иногда вываливается с ошибкой. Страницы падают, пользователи психуют и уходят на другой сайт.

Как работает сервер на Node.js

  1. На странице нужно, например, показать аватарку и никнейм пользователя.
  2. Для этого сервер делает запрос к базе данных, чтобы получить оттуда эту информацию, а сам продолжает формировать страницу дальше.
  3. Пока не пришла аватарка, сервер уже сделал всё остальное и увидел, что нужна фоновая картинка.
  4. Сервер запрашивает картинку, а в это время ему пришла аватарка из прошлого запроса. Раз аватарка пришла, сервер вставляет её на нужное место. Пока он это делал — пришла фоновая картинка.
  5. Все материалы на месте, можно показывать страницу пользователю. Страница загружается быстрее, потому что сборка произошла параллельно.

Для чего ещё нужен Node.js

Кроме веб-приложений этот язык используют для создания любых сервисов, где нужен постоянный обмен информацией с пользователем:

  • чаты,
  • социальные сети,
  • системы совместной работы над проектом,
  • онлайн-редакторы текста.

А ещё на нём можно написать практически любое приложение и запустить его под Windows, MacOs или Linux. Это можно использовать для разработки универсальных приложений, например, списка задач, который должен работать на всех платформах, синхронизировать данные в реальном времени и уметь отправлять всё на мобильное устройство.

Последнее время большую популярность набирает использование Node.js для «интернета вещей» — умных чайников, весов и прочей бытовой техники. Здесь Node.js помогает управлять этими приборами и делать серверы, которые могут обрабатывать много запросов одновременно.

Кто это использует

Node.js в качестве основы для своей платформы выбрали много известных компаний:

  • Walmart — крупнейшая сеть американских розничных магазинов,
  • LinkedIn — социальная сеть деловых контактов,
  • Uber — такси,
  • E-bay — аукцион-платформа для продажи товаров по всему миру,
  • GitHub — репозиторий проектов для программистов,
  • Netflix — производство и съёмка сериалов,
  • Trello — сервис для управлениями проектами.

Руководство по Node.js, часть 1: общие сведения и начало работы

Мы начинаем публикацию серии материалов, которые представляют собой поэтапный перевод руководства по Node.js для начинающих. А именно, в данном случае «начинающий» — это тот, кто обладает некоторыми познаниями в области браузерного JavaScript. Он слышал о том, что существует серверная платформа, программы для которой тоже пишут на JS, и хотел бы эту платформу освоить. Возможно, вы найдёте здесь что-то полезное для себя и в том случае, если уже знакомы с Node.js.

Кстати, в прошлом году у нас был похожий по масштабам проект, посвящённый bash-скриптам. Тогда мы, после публикации всех запланированных материалов, собрали их в виде PDF-файла. Так же планируется поступить и в этот раз.

Сегодня мы обсудим особенности Node.js, начнём знакомство с экосистемой этой платформы и напишем серверный «Hello World».

Обзор Node.js

Node.js — это опенсорсная кроссплатформенная среда выполнения для JavaScript, которая работает на серверах. С момента выпуска этой платформы в 2009 году она стала чрезвычайно популярной и в наши дни играет весьма важную роль в области веб-разработки. Если считать показателем популярности число звёзд, которые собрал некий проект на GitHub, то Node.js, у которого более 50000 звёзд, это очень и очень популярный проект.

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Платформа Node.js построена на базе JavaScript движка V8 от Google, который используется в браузере Google Chrome. Данная платформа, в основном, используется для создания веб-серверов, однако сфера её применения этим не ограничивается.

Рассмотрим основные особенности Node.js.

▍Скорость

Одной из основных привлекательных особенностей Node.js является скорость. JavaScript-код, выполняемый в среде Node.js, может быть в два раза быстрее, чем код, написанный на компилируемых языках, вроде C или Java, и на порядки быстрее интерпретируемых языков наподобие Python или Ruby. Причиной подобного является неблокирующая архитектура платформы, а конкретные результаты зависят от используемых тестов производительности, но, в целом, Node.js — это очень быстрая платформа.

▍Простота

Платформа Node.js проста в освоении и использовании. На самом деле, она прямо-таки очень проста, особенно это заметно в сравнении с некоторыми другими серверными платформами.

▍JavaScript

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

В браузере и на сервере используются одинаковые концепции языка. Кроме того, в Node.js можно оперативно переходить на использование новых стандартов ECMAScript по мере их реализации на платформе. Для этого не нужно ждать до тех пор, пока пользователи обновят браузеры, так как Node.js — это серверная среда, которую полностью контролирует разработчик. В результате новые возможности языка оказываются доступными при установке поддерживающей их версии Node.js.

▍Движок V8

В основе Node.js, помимо других решений, лежит опенсорсный JavaScript-движок V8 от Google, применяемый в браузере Google Chrome и в других браузерах. Это означает, что Node.js пользуется наработками тысяч инженеров, которые сделали среду выполнения JavaScript Chrome невероятно быстрой и продолжают работать в направлении совершенствования V8.

▍Асинхронность

В традиционных языках программирования (C, Java, Python, PHP) все инструкции, по умолчанию, являются блокирующими, если только разработчик явным образом не позаботится об асинхронном выполнении кода. В результате если, например, в такой среде, произвести сетевой запрос для загрузки некоего JSON-кода, выполнение потока, из которого сделан запрос, будет приостановлено до тех пор, пока не завершится получение и обработка ответа.

JavaScript значительно упрощает написание асинхронного и неблокирующего кода с использованием единственного потока, функций обратного вызова (коллбэков) и подхода к разработке, основанной на событиях. Каждый раз, когда нам нужно выполнить тяжёлую операцию, мы передаём соответствующему механизму коллбэк, который будет вызван сразу после завершения этой операции. В результате, для того чтобы программа продолжила работу, ждать результатов выполнения подобных операций не нужно.

Подобный механизм возник в браузерах. Мы не можем позволить себе ждать, скажем, окончания выполнения AJAX-запроса, не имея при этом возможности реагировать на действия пользователя, например, на щелчки по кнопкам. Для того чтобы пользователям было удобно работать с веб-страницами, всё, и загрузка данных из сети, и обработка нажатия на кнопки, должно происходить одновременно, в режиме реального времени.

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

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

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

Когда Node.js нужно выполнить операцию ввода-вывода, вроде загрузки данных из сети, доступа к базе данных или к файловой системе, вместо того, чтобы заблокировать ожиданием результатов такой операции главный поток, Node.js инициирует её выполнение и продолжает заниматься другими делами до тех пор, пока результаты выполнения этой операции не будут получены.

▍Библиотеки

Благодаря простоте и удобству работы с менеджером пакетов для Node.js, который называется npm, экосистема Node.js прямо-таки процветает. Сейчас в реестре npm имеется более полумиллиона опенсорсных пакетов, которые может свободно использовать любой Node.js-разработчик.
Рассмотрев некоторые основные особенности платформы Node.js, опробуем её в действии. Начнём с установки.

Установка Node.js

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

Существует ещё один весьма удобный способ установки Node.js, который заключается в использовании менеджера пакетов, имеющегося в операционной системе. Например, менеджер пакетов macOS, который является фактическим стандартом в этой области, называется Homebrew. Если он в вашей системе есть, вы можете установить Node.js, выполнив эту команду в командной строке:

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

Популярным менеджером версий Node.js является nvm. Это средство позволяет удобно переключаться между различными версиями Node.js, с его помощью можно, например, установить и попробовать новую версию Node.js, после чего, при необходимости, вернуться на старую. Nvm пригодится и в ситуации, когда нужно испытать какой-нибудь код на старой версии Node.js.

Я посоветовал бы начинающим пользоваться официальными установщиками Node.js. Пользователям macOS я порекомендовал бы устанавливать Node.js с помощью Homebrew. Теперь, после того, как вы установили Node.js, пришло время написать «Hello World».

Первое Node.js-приложение

Самым распространённым примером первого приложения для Node.js можно назвать простой веб-сервер. Вот его код:

Для того чтобы запустить этот код, сохраните его в файле server.js и выполните в терминале такую команду:

Для проверки сервера откройте какой-нибудь браузер и введите в адресной строке http://127.0.0.1:3000 , то есть — тот адрес сервера, который будет выведен в консоли после его успешного запуска. Если всё работает как надо — на странице будет выведено «Hello World».

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Разберём этот пример.

Для начала, обратите внимание на то, что код содержит команду подключения модуля http.

Платформа Node.js является обладателем замечательного стандартного набора модулей, в который входят отлично проработанные механизмы для работы с сетью.

Метод createServer() объекта http создаёт новый HTTP-сервер и возвращает его.

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

Когда сервер получает запрос, вызывается событие request , предоставляющее два объекта. Первый — это запрос ( req , объект http.IncomingMessage), второй — ответ ( res , объект http.ServerResponse). Они представляют собой важнейшие механизмы обработки HTTP-запросов.

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

Второй нужен для формирования и отправки ответа на запрос.

В данном случае ответ на запрос мы формируем следующим образом. Сначала устанавливаем свойство statusCode в значение 200 , что указывает на успешное выполнение операции:

Далее, мы устанавливаем заголовок Content-Type :

После этого мы завершаем подготовку ответа, добавляя его содержимое в качестве аргумента метода end() :

Мы уже говорили о том, что вокруг платформы Node.js сформировалась мощная экосистема. Обсудим теперь некоторые популярные фреймворки и вспомогательные инструменты для Node.js.

Фреймворки и вспомогательные инструменты для Node.js

Node.js — это низкоуровневая платформа. Для того чтобы упростить разработку для неё и облегчить жизнь программистам, было создано огромное количество библиотек. Некоторые из них со временем стали весьма популярными. Вот небольшой список библиотек, которые я считаю отлично сделанными и достойными изучения:

  • Express. Эта библиотека предоставляет разработчику предельно простой, но мощный инструмент для создания веб-серверов. Ключом к успеху Express стал минималистический подход и ориентация на базовые серверные механизмы без попытки навязать некое видение «единственно правильной» серверной архитектуры.
  • Meteor. Это — мощный фулстек-фреймворк, реализующий изоморфный подход к разработке приложений на JavaScript и к использованию кода и на клиенте, и на сервере. Когда-то Meteor представлял собой самостоятельный инструмент, включающий в себя всё, что только может понадобиться разработчику. Теперь он, кроме того, интегрирован с фронтенд-библиотеками, такими, как React, Vue и Angular. Meteor, помимо разработки обычных веб-приложений, можно использовать и в мобильной разработке.
  • Koa. Этот веб-фреймворк создан той же командой, которая занимается работой над Express. При его разработке, в основу которой легли годы опыта работы над Express, внимание уделялось простоте решения и его компактности. Этот проект появился как решение задачи внесения в Express серьёзных изменений, несовместимых с другими механизмами фреймворка, которые могли бы расколоть сообщество.
  • Next.js. Этот фреймворк предназначен для организации серверного рендеринга React-приложений.
  • Micro. Это — весьма компактная библиотека для создания асинхронных HTTP-микросервисов.
  • Socket.io. Это библиотека для разработки сетевых приложений реального времени.

На самом деле, в экосистеме Node.js можно найти вспомогательную библиотеку для решения практически любой задачи. Как вы понимаете, на строительство подобной экосистемы нужно немало времени. Платформа Node.js появилась в 2009 году. За время её существования случилось много всего такого, о чём стоит знать программисту, который хочет изучить эту платформу.

Краткая история Node.js

В этом году Node.js исполнилось уже 9 лет. Это, конечно, не так уж и много, если сравнить этот возраст с возрастом JavaScript, которому уже 23 года, или с 25-летним возрастом веба, существующем в таком виде, в котором мы его знаем, если считать от появления браузера Mosaic.

9 лет — это маленький срок для технологии, но сейчас возникает такое ощущение, что платформа Node.js существовала всегда.

Я начал работу с Node.js с ранних версий платформы, когда ей было ещё только 2 года. Даже тогда, несмотря на то, что информации о Node.js было не так уж и много, уже можно было почувствовать, что Node.js — это очень серьёзно.

Теперь поговорим о технологиях, лежащих в основе Node.js и кратко рассмотрим основные события, связанные с этой платформой.

Итак, JavaScript — это язык программирования, который был создан в Netscape как скриптовый язык, предназначенный для управления веб-страницами в браузере Netscape Navigator.

Чем хорош Node.js: практика современного веб-программирования

Каждые несколько лет браузер с HTML5 изменяется — это совершенно нормально. Важно выбрать подходящие инструменты.

Чтобы создавать приложения на HTML5, нужно постоянно осваивать новые технологии и инструменты. Браузер с HTML5 — очень изменчивая платформа. Каждые несколько лет всё опять становится с ног на голову, а набор технологий для создания современного приложения изменяется.

Node.js — один из таких «мастхэв»-средств разработки клиентских приложений. Это среда выполнения JavaScript-программ, построенная на JavaScript-движке Chrome V8. Среди прочего, Node.js позволяет запускать написанные на JavaScript программы из командной строки прямо на компьютере. Большинство инструментов разработчика клиентской части рассчитано на применение Node.js.

Почему возник Node.js и что это такое

Язык JavaScript создавался в середине девяностых компанией Mozilla как простой скриптовый язык программирования, встраиваемый в код HTML-страниц. Как вспоминает его автор Брэндан Эйх, разработчики ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов и Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией. Он создавался для программирования как на стороне клиента, так и на стороне сервера.

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

Читайте также:
Измерение спортивной активности Moto 360 в приложениях Google Fit и Moto Body

Новый инструментарий для веба

Для новой роли понадобился новый инструментарий. Постепенно JavaScript оброс целой инфраструктурой фреймворков, библиотек, компиляторов и протоколов. В том числе появилось несколько платформ исполнения серверных и клиентских приложений. Node.js — самая популярная из них. Эту платформу выпустил американский программист Райан Дал в 2009 году.

Программная платформа Node.js работает на движке V8, который транслирует JavaScript в машинный код. Грубо говоря, сам Node является приложением C++, которое получает на входе JavaScript-код и выполняет его.

В Node есть собственный интерфейс на C++ для взаимодействия с устройствами ввода-вывода на компьютере. То есть эта платформа фактически превращает JavaScript из специализированного скриптового языка в язык общего назначения. Это означает, что на Node.js вы можете писать любые компьютерные программы.

Событийно-ориентированный подход

Главная особенность Node.js — то, что вместо традиционной модели параллелизма на основе потоков автор выбрал событийно-ориентированный подход. Это такая парадигма программирования, в которой выполнение программ определяется событиями. Например, это действие пользователя, поступление сетевого пакета, сообщение из другой программы и т.д.

Такой подход сильно упрощает программирование некоторых приложений, особенно при реализации удобного интерфейса ввода-вывода (I/O), как у Node.js. По легенде, идея создания Node.js пришла автору, когда он увидел полосу загрузки файлов на Flickr, которая не понимала реального процента загрузки файлов, то есть не имела обратной связи из браузера из-за отсутствия событийной привязки.

С распространением в интернете социальных сетей и других «интерактивных» сайтов резко выросла востребованность Node.js как платформы для приложений, реагирующих на действия пользователя: чатов, игр, инструментов совместной работы — теперь всё это делают на JavaScript с помощью Node.js.

Таким образом, Node.js — это событийно-ориентированный I/O фреймворк на JavaScript. Технические особенности Node.js делают приложения на его основе легковесными и эффективными. Этим и объясняется его огромная популярность.

Разработку языка координирует Фонд Node.js, который финансируется по программе поддержки свободных проектов Linux Foundation. Это свободный распределенный проект, в создании которого на безвозмездной основе участвуют тысячи разработчиков со всего мира.

Как используется Node.js

Node.js представляет собой платформу для написания JavaScript-приложений с использованием внешних библиотек.

Благодаря Node.js написанный для браузера код JavaScript получает доступ к глобальным объектам, таким как document и window, наряду с другими API и библиотеками. С помощью Node код обращается к жесткому диску, базам данных и Сети. Это делает возможным написание абсолютно любых приложений: от утилит командной строки и видеоигр до полноценных веб-серверов.

Чаще всего Node.js используется при написании веб-приложений с интенсивным вводом-выводом. Самый распространенный пример — это веб-серверы. Node.js популярен для создания приложений реального времени: чатов, коммуникационных программ и игр. Многие приложения Node.js имеют и серверную, и клиентскую части.

Пакетный менеджер npm

Важной частью Node.js является пакетный менеджер npm — Node.js Packet Manager, который устанавливается вместе с интерпретатором Node (см. ниже).

Как установить Node.js

Последнюю версию Node.js можно скачать с официального сайта nodejs.org. Для большинства пользователей рекомендуется установка версии с долговременной поддержкой (LTS). На данный момент это 8.11.2.

Установленный Node.js предоставляет две программы командной строки: node и npm. Программа node запускает софт, созданный на JavaScript. Например, напишем простую программу на JavaScript, которая выводит в консоль текст:

Сохраним ее в файл skillbox.js. Так вот, установленная программа Node может выполнить эту программу, как и любую другую программу с js-кодом:

Как видим, команда node выполнила программу skillbox.js. Как и положено, она вывела в консоль текст “Skillbox test”.

Кроме node, на компьютер устанавливается программа npm — это система управления пакетами Node, необходимая для установки свободно распространяемых инструментов из Сети. Нам как раз впоследствии понадобятся некоторые из этих инструментов, которые нужно будет скачать после установки npm. Все программы здесь скачиваются и устанавливаются стандартным путем:

Доступные пакеты и их краткое описание

Например, нам понадобится программа browser-sync для запуска примеров кода в браузере и автоматического обновления страницы при сохранении изменений в коде. Инструмент устанавливается такой командой (с параметром -g, который означает «глобальную» установку пакета для выполнения из любого каталога):

Node.js как конструктор приложений

Платформа Node.js содержит огромное количество полезных модулей, помогающих при работе с файлами и каталогами, взаимодействии по Сети и обработке событий. По текущей статистике, для Node.js выпущено более650 000 пакетов свободного программного обеспечения. То есть создание многих приложений похоже на сборку из кубиков конструктора.

Кроме node и npm, нужно еще установить редактор кода, если его у вас до сих пор нет. Есть несколько удобных редакторов, в том числе Visual Studio Code от Microsoft, Brackets от Adobe и популярный свободный редактор Atom. Все они бесплатные.

В дальнейших статьях мы изучим, как работать с Node.js, как настроить Node.js и какие еще инструменты понадобятся в процессе разработки клиентских приложений. Лучше всего начать обучение с вводного курса «JavaScript с нуля».

«JavaScript с нуля» — практический четырехмесячный курс для тех, кто хочет научиться основам языка сценариев с индивидуальным наставником, разработать фронтенд для интерактивного веб-проекта и положить кейс к себе в портфолио. Курс идеально подойдет дизайнерам-разработчикам и начинающим программистам, кто уже знаком и умеет разрабатывать страницу на HTML и CSS, но не намерен останавливаться в изучении программирования.

Преподаватели практически «на пальцах» объяснят базовые основы синтаксиса JavaScript, научат создавать визуальные интерактивные элементы и помогут разработать первый веб-проект на JavaScript.

Пишет про разработку в Skillbox. Работал главным редактором сайта «Хабрахабр», ведет корпоративные блоги.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: