Хабрахабр

Обзор докладов HolyJS 2018 Piter: от WebAssembly до Three.js

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

В программу HolyJS 2018 Piter (19-20 мая) ещё вносят последние штрихи, но по ней уже можно сделать окончательные выводы. Сегодня у нас материал для вторых. Самые разные темы (от особенностей TypeScript до утечек памяти при использовании RxJS), самые разные спикеры (от создателя Smashing Magazine Виталия Фридмана до «кодящего музыку» Сэма Аарона) — рассмотрели в этом посте всё, что уже известно о докладах HolyJS.

Если не присутствовали на нём лично, можете посмотреть видеозапись. Одним из самых заметных выступлений предыдущей HolyJS стал доклад Виталия Фридмана «New Adventures in Responsive Web Design».

Когда возглавляешь Smashing Magazine, узнаешь массу фронтендерских тонкостей, сложностей и грязных трюков — так что доклад затронет самые разные темы. И теперь Виталий возвращается с новыми «Новыми приключениями». Как предупреждает автор, «вы не сможете «раззнать обратно» то, что узнаете, и мы не несем ответственность за ваши последующие ночные кошмары».

Web Annotation, ставший W3C-стандартом, предназначен создать слой для общения поверх веба. Теоретически он позволяет любому аннотировать любой интернет-контент, и это благородная цель в духе самого интернета: демократичная, открытая и стандартизированная.

Те, кто публикуют контент, теряют контроль над тем, что люди о нём говорят. Но с этой свободной приходят и сложности. Эволюция Web Annotation показывает в миниатюре эволюцию всего интернета — с теми же вопросами безопасности, идентификации и свободы. А стандарт сам по себе не предполагает защиты от захвата дискуссии троллями.

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

Сейчас скиллов уже десятки тысяч, но экосистема всё ещё очень молода, и всё только начинается. Разработчики могут создавать свои «скиллы» для Alexa, используя Node.js. Он также разберется с тем, какие паттерны проектирования лучше всего подходят для скиллов. Тейлор покажет, как писать, локально тестировать и правильно деплоить базовый скилл.

«Чувствуешь запах? Это фронтенд, сынок. Больше ничто в мире не пахнет так.

Однажды мы рефакторили одну фичу двенадцать часов подряд. Я люблю запах фронтенда поутру. И когда всё закончилось… Там уже не было ни одного неизменённого файла.

Когда-нибудь эта война фреймворков закончится...»

В этот раз эксперты мистер Синий (Илья Таратухин) и мистер Зелёный (Евгений Гусев) берут штурмом новые высоты: наш старый знакомый звёздно-полосатый React пытается отстоять рубежи перед стремительно наступающим Vue. Да, мы опять с вами! Давайте по-простому: посмотрим на два фреймворка и поймём, чем они похожи, чем отличаются, и кто же всё-таки победит в этой войне? Кругом взрывы, фронтендеры тут и там… Так, стойте, эта аналогия зашла слишком далеко.

Этот доклад — ответ на вопрос «зачем?», когда уже есть готовые решения. В Avito, где работает Роман, разрабатывают свой каталог компонентов. Темы, которые будут затронуты:

  • Как представлять компоненты, демонстрировать их возможности, технические решения для этого
  • Какие функции могут быть полезны дизайнерам и разработчикам
  • Как идентифицировать компоненты, сбор и привязка мета-информации, организация базы знаний
  • Информация о местах использования компонентов и владении кодом
  • Выход за границы каталога и его «дружбе» с другими внутренними сервисами

React.js предоставляет прекрасное API для разработки сложных пользовательских интерфейсов. Большинство разработчиков привыкли использовать его для разработки DOM. Но react reconciler намного мощнее и позволяет строить кастомные рендереры для разных целей, таких как: построение трехмерных сцен или создание компонентов canvas, управление которыми становится максимально простым благодаря декларативному API React.js.

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

В этом докладе он исследует подходы к анализу и преобразованию JavaScript-кода, основанные на его парсинге и работе с получающимися Abstract Syntax Tree.
Кирилл, родившийся в Москве, сейчас живёт в Нью-Йорке и работает в Google над Firebase, а также организует крупнейший Angular-митап в мире. В примерах будут использованы babel и ESLint.

В итоге получилось и добиться результата, близкого к нативным приложениям, и сохранить при этом быструю скорость загрузки. В Pinterest, где сейчас работает Имад, мобильную веб-версию масштабно переделали, управившись при этом за 11 недель. Но этот путь не был усыпан розами, так что Имад расскажет, с какими сложностями столкнулись по пути и каким образом их преодолели. Метрики вовлечённости пользователей резко возросли.

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

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

Поговорим об RxJS и его философии. О возможных утечках памяти и основных ошибках при использовании RxJS. О личном опыте использования Rx в большом Angular 4-приложении и том, как фиксить и избегать Memory Leaks. Об этом мало кто говорит, почти ничего не написано в документации. Также будет рассказано о том, что стоит делать с помощью RxJS, а что нет.
Этот доклад рассмотрит технические детали, стоящие за целым рядом страшных аббревиатур: EME (Encrypted Media Extension), CDM (Content Decryption Modules) вроде Widevine, и DRM (Digital Rights Management). Как мы это сделаем? Реверс-инжинирингом Netflix и созданием своего собственного видеоплеера для Netflix!
Посетителям HolyJS Денис уже знаком, например, по докладу «UI-компоненты на пиксельных шейдерах», и его основная работа связана с фотореалистичными веб-играми, но теперь выступит с совсем другой темой. Год назад к нему обратились за консультацией по вопросу «Возможно ли майнить криптовалюту в браузере с использованием GPU», и Денис исследовал вопрос — а теперь готов поделиться знаниями о том, чего ожидать, когда использовать пул браузерных майнеров.

А для тех, кто не новичок в AWS лямбдах, будут показаны их дополнительные возможности и полезные инструменты для разработки. Наверняка это не первый раз, когда вы слышите о бессерверных вычислениях, но Марина надеется, что именно её доклад убедит вас попробовать их своими руками. В докладе она по шагам расскажет, как создать изоморфное приложение на AWS-лямбде, начиная с простого создания лямбды руками из консоли и заканчивая проектом с полностью автоматизированным деплойментом.

Код стал важнейшей частью мира. Однако кодить по-прежнему умеет лишь небольшая часть людей, и почти всегда они кодят очень прагматические вещи.

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

При этом Сэм сам и стал одним из самых активных пользователей собственного проекта: он желанный гость на вечеринках IT-конференций, где выступает с музыкальными сетами. Для этого он создал Sonic Pi — проект, позволяющий кодить музыку в реальном времени. В интернете можно найти немало восхищенных зрительских отзывов, а теперь посетители HolyJS тоже это увидят: в конце первого дня HolyJS Сэм выступит с докладом о Sonic Pi, а сразу после этого выступит на конференционной вечеринке.

У Дмитрия богатый опыт в разработке (помимо React/React Native, у него в багаже PHP, C, C++, Go), а также далеко не в первый раз рассказывает про React Native. Но в этот раз, оттолкнувшись от уже имеющегося опыта, он заберется в самое нутро. В процессе доклада для полного погружения будет написан нативный модуль сразу и для iOS, и для Android.
Этот доклад ответит на вопрос: «Смог бы Илон Маск запустить и посадить ракету, если бы лучше всех в мире знал JavaScript, React или Angular?» Спойлер: «Да».

Расскажет Максим Юзва — фронтенд-тимлид, нанимающий и ресурсный менеджер в EPAM Systems; организатор сообщества FrontSpot и завсегдатай BeerJS. Итак, как же стать инженером XXI века?

Мало кто работал с такой экзотикой, как процессоры Эльбрус. А Дмитрий не просто имел с ним дело — он в УНИПРО получил опыт портирования на Эльбрус различных компиляторов JS, от V8 FullCodegen до Ion из SpiderMonkey. На конференции расскажет про плюсы и минусы движков с точки зрения портирования и впиливания новых платформеннозависимых фич. В общем, про то, о чём услышишь нечасто — если подобная экзотика вас в принципе интересует, то пропускать доклад не стоит.
При использовании Node.js создание корректной документации к API порой оказывается очень времязатратной задачей. Однако существуют решения вроде Swagger, OpenAPI, Postman и тому подобного. А Себастиан считает, что можно автоматизировать всё ещё сильнее обычного, позволив разработчикам сосредоточиться на разработке. И на конференции расскажет, как именно.
Что может пойти не так в eCommerce-проекте? Да примерно всё: от выбора продукта и добавления его в корзину до письма с подтверждением и, собственно, доставки товара. Каждый шаг должен быть тщательно выверен на предмет возможных ошибок и недопониманий.

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

Предположим, у клиента медленное устройство, а вам нужно делать кучу тяжёлых действий в UI-потоке.
Как добиться 60 кадров в секунду, не превращая код в спагетти?
Как отменять уже начатые вычисления, когда их нужно повторить с более актуальными данными?

Предположим, у вас сервер, вычисляющий ответ на запрос от 1 мс до 10 с.
Как сделать так, чтобы долгие задачи не блокировали быстрые, не создавая по потоку на каждый запрос?
Как отменять уже начатые вычисления, когда клиент отключился?

Спойлер: stackfull fibers помогут нам выдавать каждой задаче процессорное время квантами по 16 мс.

Алексей далеко не первый год состоит в команде Chrome DevTools, создавая и улучшая там инструменты для отладки JavaScript. И в докладе речь об этих инструментах и пойдёт: Алексей расскажет о том, как они реализованы, начиная с брейкпоинтов и заканчивая асинхронными стеками и профилированием памяти.
В докладе мы обсудим эволюцию типовой системы TypeScript. Основные вопросы:

  • С чего все началось?
  • Что не так с типами в TypeScript?
  • Можно ли «протянуть» типовую информацию в runtime?
  • Чем типы TypeScript отличаются от типов в других языках программирования?
  • Чего ждать в будущем?

Слушатели познакомятся с заложенными в Mongoose.js принципами работы с жизненными циклами однообразных, но разнородных структур данных.
Основы Mongoose:
— Базовые принципы и подходы к работе.
— Типичные ошибки начинающих.

Зачем и как:
— Виртуальные поля и виртуальные методы.
— Вложенные схемы.
— Дискриминаторы.

В январе прошел очередной митинг комитета TC39, на котором окончательно сформировалась спецификация ES2018. По её следам и пойдёт выступление Михаила Полубояринова — организатора PiterJS и IT Global Meetup, разработчика с 18-летним опытом, участника Программного комитета HolyJS.
В докладе будет рассказано, как разрабатывался фреймворк Yew — аналог React и Elm, написанный полностью на Rust и компилируемый в честный WebAssembly. Как можно создать фреймворк без сборщика мусора, эффективно обеспечить immutable, без необходимости копирования состояния благодаря правилам владения данными Rust и какие есть особенности при трансляции Rust в WebAssembly.

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

Во-первых, Алексей Калмаков выступит с темой «Оффлайн VS онлайн клиентских метрик скорости».

Во-вторых, ещё одним докладчиком окажется Николай Рыжиков: активист сообществ Clojure и FProg, член комитета по разработке стандарта FHIR, CTO проекта Health Samurai.

До этого он выступал на HolyJS с темой «”Строгий” JavaScript: типы против реальности» — и 6 000 просмотров у видеозаписи говорят сами за себя. А в-третьих, завершать конференцию будет доклад Ильи Климова. Надо полагать, в этот раз получится не менее интересно.

А если по-прежнему не понимаете, и нужна ещё какая-то информация (например, точное расписание докладов), её можно найти там же. Если в итоге поняли, что хотите на HolyJS — билет можно приобрести на сайте.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть