ng-conf

Четвертого мая 2016 в Солт Лейк Сити началась конференция ng-conf, приуроченная новой версии популярного фронт-энд фреймворка AngularJS от Google.

Для справки: AngularJS – самый популярный JS фреймворк 2014 года. Отличился революционным подходом к созданию веб-приложений – а именно расширением синтаксиса HTML. Четко вписывается в парадигму разделения логики, данных и внешнего вида – MVC (model-view-controller). “ng” – сокращение от “Angular”, в 1.x версии фреймворка используется для обозначения встроенных директив. В 2015 году AngularJS 1.x был несколько затенен ReactJS от Facebook, однако количество его пользователей все равно продолжала расти и достигло более 1,1 млн программистов в 2016 году.

Ссылка на предрелизные версии AngularJS 2.0 появилась на официальном сайте еще в марте 2015 Для разработчиков, использующих 1.x, это был словно холодный душ. Вот цитата блогера Дэйва Кэдди (Dave Ceddia):

Это как заново учить Angular 1, только хуже.

Дело в том, что разработчики не только совсем выбросили несколько ключевых составляющих фреймворка (вроде контроллеры и частично директивы) но и изменили сам язык написания кода. Официальный сайт сквозь строки говорит что-то вроде: “конечно, ребята, можете писать и на JavaScript, но мы не торопимся делать к нему документацию, поэтому рекомендуем TypeScript или Dart“.

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

И вот именно в эти часы проходит конференция-презентация фреймворка AngularJS 2.0 (пока что RC), которую имеем возможность наблюдать по ссылкам в YouTube: 5 мая, 6 мая, 7 мая.

Ход конференции следующий: в начале каждого дня ключевые докладчики обращают внимание на новые черты фреймворка, обосновывающие зачем они нужны и их преимущества. А потом в течение дня другие докладчики доводят сказанное на практических примерах.

Так что же, го к новинкам AngularJS 2.0!

День первый. По словам ключевого докладчика Брэдли Грина, новый ангуляр уже имеет следующие черты:

  1. Новый рендеринг Полностью переработано алгоритм рендеринга страницы, который теперь в 5 раз быстрее чем рендеринг Angular 1.x. Ускорение касается как страниц, открываются впервые, так и им нужен браузером.
  2. Серверный рендеринг AngularJS 2.0 сможет выполняться и на сервере. Это необходимо, чтобы “прорисовать” страницу на стороне сервера. То есть, в ответ на первый запрос браузер получит только HTML и CSS и сразу прорисует его. Тем временем, минимальный JS-код докачает остальные составляющие приложения. Ранее же (касается и других фреймворков) было необходимо сперва дождаться полной загрузки JavaScript библиотек приложения, а только потом прорисовывалась страница. Решение значительно уменьшит время открытия сайта (особенно актуально для мобильных устройств с низкой скоростью подключения) и повысит индексацию содержимого поисковыми системами.
  3. Размер Уменьшен размер библиотеки AngularJS 2.0 почти в 1,5 раза до ~ 70 кБ. Хотя на момент выступления докладчика, размер библиотеки был даже больше 1.x, однако релиз обещано сжать именно к таким показателям.
  4. Плагин разработчика для Chrome Представлена утилита Augury с графическим интерфейсом для отладки кода AngularJS 2.0 в броузере.
  5. Стайлгайд Представлена утилита для проверки кода AngularJS 2.0 на следование паттернам программирования и “best practices”.
  6. CLI Представлена утилита командной строки (что-то вроде yeoman-generator для Angular 1.x, но теперь собственный, а не от стороннего разработчика). Теперь чтобы начать проект достаточно нескольких команд – сравните с действиями, которые нужно выполнить без CLI для достижения того же результата.
  7. Мобильный тулкит Представлен набор утилит для мобильной разработки. Это не альтернатива Ionic или NativeScript, а скорее советчик – как сделать доступным мобильное приложение в офлайн (по крайней мере, на данном этапе). Брэдли Грин отмечает, что над разработкой AngularJS 2.0 достаточно большой промежуток времени работала команда Ionic, чуть меньше – команда NativeScript. Тем не менее, AngularJS 2.0 полностью совместим с ними обоими.
  8. Покушение на десктоп Автор доклада утверждает, что с использованием фреймворка AngularJS 2.0 с помощью утилиты Electron (что в свою очередь, представляет собой сочетание Node.js и Chromium) удобно строить кроссплатформенноые десктоп-приложения. Ведь AngularJS 2.0 может выполняться на сервере, поэтому возможно избежать лишних http-передач данных между Chromium и Node.js (этот пункт меня особенно поразил, ведь мне приходилось писать кроссплатформенные приложения Node.js + браузер…).
  9. Визуальные компоненты Акцентировано внимание на разнообразии готовых визуальных компонентов для AngularJS 2.0. Причем, как и от официальной команды так и сторонних разработчиков, сразу в нескольких дизайнерских философиях (materialbootstrapprime).

Постепенно конференция перетекла в выступления разномастных гуру программирования с собственными примерами использования AngularJS 2.0. Запомнилось выступление представителей NativeScript (которые подтвердили полную поддержку фреймворка) и Drupal (ой! AngularJS 2.0 уже в одной из самых популярных СMS!).

Достаточно мало времени было выделено на осмотр TypeScript и Dart – рекомендованных языков для AngularJS 2.0. Основной месседж – с ними удобно использовать возможности новых версий JavaScript (ES6, ES7). Часто отмечалась роль комьюнити в проекте.

Через некоторое время мозг перестал воспринимать информацию аналитически – особенно после доклада об использовании AngularJS 2.0 в нейронных сетях. Тем более, разница времени у нас и Солт Лейк Сити – 8 часов. Что ж, посмотрю позже в записи …

А пока что, краткие выводы. Лично у меня сложилось стойкое впечатление: AngularJS 2.0 – это мощный фреймворк, который способен стать иконой фронт-энд разработки на следующие несколько лет.

Продолжение следует … P.S.: Текущая конференция ng-conf имеет отметку #extended. Это также означает, что имея талант и время :), тоже можно организовать локальную “ячейку” конференции в удобном для вас месте. Одна из таких ячеек есть и в Украине.