Обзор AngularConnect 2019. Часть 2
В этой статье продолжаем делиться впечатлениями от поездки в Лондон на AngularConnect 2019. Сегодня расскажем, как все происходило, о докладах второго дня и о том, что полезного мы привезли домой (и нет, это не наклейки!). А вот — первая часть статьи.
Прежде чем переходить к докладам, расскажем немного о самой конференции. Не каждый же день бываем в Лондоне!
Локация
Мероприятие проходило в конференц-центре имени Елизаветы II (QEII Centre) в самом сердце Лондона. Как написано на сайте, «в тени Биг-Бена и Вестминстерского аббатства». Кстати, про Биг-Бен. С ним связано наше самое большое разочарование этой поездки — знаменитая башня закрыта на реставрацию и выглядит так:
Наблюдения
Сейчас даже в рунете много пишут о вреде пластика и его негативном влиянии на природу. А в Лондоне этой проблеме уделяют особое внимание. Так, вместо привычных нам пластиковых бутылок с водой в залах и холлах конференц-центра стояли стеклянные кувшины и стаканы. Вместо пластиковых ножей и вилок — одноразовые деревянные.
А утром второго дня у входа в конференц-центр нас встречала огромная надувная черепаха, изображенная на загрязненном пластиком надувном океане. И хотя черепаху разместили в поддержку климатической забастовки, а не нашей конференции, она отлично вписалась в морскую тему оформления AngularConnect.
Формат выступлений и подачи материала отличались от российских конференций.
- После докладов не было времени на вопросы. Возможно, благодаря этому программа получилась динамичной и насыщенной. Так, в первый день было девять полноценных докладов и два мини-выступления от спонсоров.
- Другая подача материала: минимум смешных картинок, максимум содержания. Никаких мемасиков!
- У нас принято в начале озвучивать план доклада. А вот на AngularConnect многие спикеры от проблемы переходили сразу к основной части. С одной стороны, так спикеры экономят время. С другой — план помогает сформировать ожидания и лучше ориентироваться в докладе.
Доклады
Keynote
Minko Gechev рассказывает про работу команды Angular над TC 39, улучшение developer experience и применении лучших практик. Еще разочек повторяет про схематики. Заканчивает свой доклад рассказом про Bazel — будущий сборщик Angular приложений.
Если вы смотрели ng-conf 2019, то ничего нового, кроме части про Bazel, вы не узнаете. В целом открытие второго дня получилось не менее интересным, чем первого.
GitHub at scale: How Angular manages community contributions and repositories
Одной из основных мыслей доклада Joey Perrott является автоматизация работы с Pull Request на GitHub. Вмерживание PRs, мониторинг CI, классификация создаваемых issue — все это Joey предлагает делегировать ботам.
Доклад будет интересен тем, кто только начинает работать с GitHub и ранее не погружался в тему CI/CD. Заслуженный лейбл Starter!
Performance optimizations in Angular
Mert Değirmenci приводит много примеров того, как делать можно, а как — не стоит, попутно объясняя почему. Парочка советов кажутся безумными: отказ от ngFor в пользу for (const …) и использование директив вместо компонентов. Однако Mert приводит графики и конкретные цифры, подтверждающие рост производительности и уменьшение времени рендеринга страницы.
На мой взгляд, один из самых интересных докладов второго дня. Наверное, первый deep-dive, который действительно понравился. Обязательно посмотрите, если хотите выиграть лишний процент производительности.
Creating a better culture in tech through diversity and inclusion
Слова diversity и inclusion в названии могут ввести в заблуждение. Это доклад не об этническом, гендерном и возрастном разнообразии в команде. Речь идет скорее о том, как создать хорошую атмосферу и условия для роста сотрудников. Tracy Lee и Rob Ocel рассказали о PAMStack — подходе к организации работы, основанном на трех принципах:
- Process — выстраивание процессов (например, код ревью).
- Abstractions — абстракции понижают порог входа для молодых специалистов (фреймворки, менеджеры состояний, дизайн-система).
- Mentorship — наставничество джуниор-разработчиков более опытными коллегами.
Доклад не требует технических знаний и будет полезен как разработчикам, так и менеджерам.
Power in constraints
В своем докладе Rado Kirov показывает примеры из TypeScript, Bazel и Angular, в которых инструменты и фреймворки задают ограничения (constraints) для разработчика. Такой подход, по мнению докладчика, помогает создавать производительные, безопасные и простые решения. Последнее, что можно сделать в своем коде, — «Put an any on it», — заявляет Радо.
Доклад будет полезен для разработчиков, которые хотят узнать сильные стороны типизированных языков программирования. Завязки на Angular нет — react-разработчики, добро пожаловать!
How Angular works
Kara Erickson рассказывает про runtime Ivy. Она на примере показывает, как из простого шаблона Ivy создает функцию, обрабатывающую все взаимодействия с пользователем. Отдельное внимание она уделяет разделению рантайма на создание компонента и его обновление.
Первый доклад с лейблом Intermediate, который, на мой взгляд, заслуживает глубокого погружения. Слушать интересно, примеры довольно жизненные. Однако информация далеко не для повседневной разработки, поэтому советую тем, кто хочет основательно разобраться в работе фреймворка.
Building with Ivy: Rethinking Reactive Angular
Mike Ryan рассказывает, как, по его мнению, можно избавиться от Zone.js. На примере простенькой странички счетчика показывает, как использовать новый API Ivy для избавления от подписок и changeDetection.
Мнения об этом докладе у нас разделились от «понаписали своих велосипедов» до «хороший подход, есть над чем подумать». Если вы любитель реактивных подходов — вам понравится.
Migrating breaking changes with TSLint and Schematics
Stanimira Vlaeva рассматривает теорию по ESLint (TSLint deprecated) и в режиме лайвкодинга в консоли по методике TDD создает скрипт миграции импортов библиотеки. Полученное правило оборачивает в Angular Schematics и показывает, как настроить выполнение по команде ng update mylibrary.
Доклад будет полезен разработчикам, которые давно хотели написать свою миграцию или правило для линтера, но боялись начать. Первая часть применима для любого фреймворка, вторая — создание схематика — рассматривалась также в докладе, однако у Stanimira само написание схематика рассмотрено подробнее.
Итого
Второй день конференции завершился панельной дискуссией с командой Angular и стихами об этом фреймворке. Разработчики Angular отвечали на вопросы и призывали всех скорее попробовать Ivy, чтобы выловить ошибки в новом движке как можно раньше. Кстати, мы уже попробовали.
Вообще говоря, технический уровень практических докладов оказался пониже, чем мы ожидали. Впрочем, это типичная история для таких событий. Однако конференция — это не только материал, в конце концов, доклады можно и в записи посмотреть. Конференция — уникальная возможность задать свой вопрос непосредственно создателям Angular. Это можно было сделать письменно во время панельной дискуссии и устно во время многочисленных перерывов (советуем учить английский).
Доклады об устройстве Angular нам показались интересными с инженерной точки зрения. Всем разработчикам полезно вспомнить, что можно и нужно мыслить нестандартно, применять алгоритмы и низкоуровневые оптимизации там, где это требуется. Современный фронтенд — это не про раскрашивание кнопочек.
А еще конференция здорово мотивирует. Удивительно видеть вокруг столько Angular-разработчиков из разных стран, которые сталкиваются с задачами, с которыми сталкиваемся и мы.