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. Це також означає, що маючи хист та час :), теж можна організувати локальну “чарунку” конференції у зручному для вас місці. Одна з таких чарунок є й в Україні.