Обзор докладов 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, узнаешь массу фронтендерских тонкостей, сложностей и грязных трюков — так что доклад затронет самые разные темы. Как предупреждает автор, «вы не сможете «раззнать обратно» то, что узнаете, и мы не несем ответственность за ваши последующие ночные кошмары».
Созданный Amazon голосовой помощник Alexa сейчас используется уже не только в Amazon Echo, но и в устройствах от других компаний вроде Sonos. AI захватывает мир, и Amazon тут один из первопроходцев.
Разработчики могут создавать свои «скиллы» для Alexa, используя Node.js. Сейчас скиллов уже десятки тысяч, но экосистема всё ещё очень молода, и всё только начинается. Тейлор покажет, как писать, локально тестировать и правильно деплоить базовый скилл. Он также разберется с тем, какие паттерны проектирования лучше всего подходят для скиллов.
«Чувствуешь запах? Это фронтенд, сынок. Больше ничто в мире не пахнет так.
Я люблю запах фронтенда поутру. Однажды мы рефакторили одну фичу двенадцать часов подряд. И когда всё закончилось… Там уже не было ни одного неизменённого файла.
Когда-нибудь эта война фреймворков закончится…»
Да, мы опять с вами! В этот раз эксперты мистер Синий (Илья Таратухин) и мистер Зелёный (Евгений Гусев) берут штурмом новые высоты: наш старый знакомый звёздно-полосатый React пытается отстоять рубежи перед стремительно наступающим Vue. Кругом взрывы, фронтендеры тут и там… Так, стойте, эта аналогия зашла слишком далеко. Давайте по-простому: посмотрим на два фреймворка и поймём, чем они похожи, чем отличаются, и кто же всё-таки победит в этой войне?
В Avito, где работает Роман, разрабатывают свой каталог компонентов. Этот доклад — ответ на вопрос «зачем?», когда уже есть готовые решения. Темы, которые будут затронуты:
- Как представлять компоненты, демонстрировать их возможности, технические решения для этого
- Какие функции могут быть полезны дизайнерам и разработчикам
- Как идентифицировать компоненты, сбор и привязка мета-информации, организация базы знаний
- Информация о местах использования компонентов и владении кодом
- Выход за границы каталога и его «дружбе» с другими внутренними сервисами
React.js предоставляет прекрасное API для разработки сложных пользовательских интерфейсов. Большинство разработчиков привыкли использовать его для разработки DOM. Но react reconciler намного мощнее и позволяет строить кастомные рендереры для разных целей, таких как: построение трехмерных сцен или создание компонентов canvas, управление которыми становится максимально простым благодаря декларативному API React.js.
Архитектура корпоративных приложений эволюционирует, и Node.js уже широко используется корпорациями. Николай расскажет об опыте внедрения Node.js в крупных enterprise e-commerce проектах, используемых технических решениях, полученных преимуществах и о процессе постепенного реплатформинга и дробления монолитной архитектуры.
Кирилл, родившийся в Москве, сейчас живёт в Нью-Йорке и работает в Google над Firebase, а также организует крупнейший Angular-митап в мире. В этом докладе он исследует подходы к анализу и преобразованию JavaScript-кода, основанные на его парсинге и работе с получающимися Abstract Syntax Tree. В примерах будут использованы 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-лямбде, начиная с простого создания лямбды руками из консоли и заканчивая проектом с полностью автоматизированным деплойментом.
Код стал важнейшей частью мира. Однако кодить по-прежнему умеет лишь небольшая часть людей, и почти всегда они кодят очень прагматические вещи.
Сэм Аарон не согласен с таким положением вещей. Он хочет, чтобы кодинг из «сложной штуки для рабочих задач» превратился в доступное всем и увлекательное занятие, а его результатом становились не только энтерпрайз-системы, но и вещи, заставляющие сердца петь.
Для этого он создал Sonic Pi — проект, позволяющий кодить музыку в реальном времени. При этом Сэм сам и стал одним из самых активных пользователей собственного проекта: он желанный гость на вечеринках IT-конференций, где выступает с музыкальными сетами. В интернете можно найти немало восхищенных зрительских отзывов, а теперь посетители HolyJS тоже это увидят: в конце первого дня HolyJS Сэм выступит с докладом о Sonic Pi, а сразу после этого выступит на конференционной вечеринке.
У Дмитрия богатый опыт в разработке (помимо React/React Native, у него в багаже PHP, C, C++, Go), а также далеко не в первый раз рассказывает про React Native. Но в этот раз, оттолкнувшись от уже имеющегося опыта, он заберется в самое нутро. В процессе доклада для полного погружения будет написан нативный модуль сразу и для iOS, и для Android.
Этот доклад ответит на вопрос: «Смог бы Илон Маск запустить и посадить ракету, если бы лучше всех в мире знал JavaScript, React или Angular?» Спойлер: «Да».
Итак, как же стать инженером XXI века? Расскажет Максим Юзва — фронтенд-тимлид, нанимающий и ресурсный менеджер в EPAM Systems; организатор сообщества FrontSpot и завсегдатай BeerJS.
Мало кто работал с такой экзотикой, как процессоры Эльбрус. А Дмитрий не просто имел с ним дело — он в УНИПРО получил опыт портирования на Эльбрус различных компиляторов 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.
Web Annotation, ставший W3C-стандартом, предназначен создать слой для общения поверх веба. Теоретически он позволяет любому аннотировать любой интернет-контент, и это благородная цель в духе самого интернета: демократичная, открытая и стандартизированная.
Но с этой свободной приходят и сложности. Те, кто публикуют контент, теряют контроль над тем, что люди о нём говорят. А стандарт сам по себе не предполагает защиты от захвата дискуссии троллями. Эволюция Web Annotation показывает в миниатюре эволюцию всего интернета — с теми же вопросами безопасности, идентификации и свободы.
Наконец, есть три случая, где мы ещё не готовы представить описание доклада, но кое-что сказать можем.
Во-первых, Алексей Калмаков выступит с темой «Оффлайн VS онлайн клиентских метрик скорости».
Во-вторых, ещё одним докладчиком окажется Николай Рыжиков: активист сообществ Clojure и FProg, член комитета по разработке стандарта FHIR, CTO проекта Health Samurai.
А в-третьих, завершать конференцию будет доклад Ильи Климова. До этого он выступал на HolyJS с темой «Строгий» JavaScript: типы против реальности» — и 6 000 просмотров у видеозаписи говорят сами за себя. Надо полагать, в этот раз получится не менее интересно.
Если в итоге поняли, что хотите на HolyJS — билет можно приобрести на сайте. А если по-прежнему не понимаете, и нужна ещё какая-то информация (например, точное расписание докладов), её можно найти там же.