Кто-то решает сходить на конференцию, как только её анонсируют: если уже был на ней в прошлом году и всё понравилось, то сомневаться не приходится. А кто-то принимает решение, когда готова программа конференции и можно точно понять, какие доклады хочется посетить.
Сегодня у нас материал для вторых. В программу HolyJS 2018 Piter (19-20 мая) ещё вносят последние штрихи, но по ней уже можно сделать окончательные выводы. Самые разные темы (от особенностей TypeScript и утечек памяти при использовании RxJS до портирования компиляторов JS на процессоры Эльбрус) — рассмотрели в этом посте всё, что уже известно о докладах HolyJS.
День первый
Виталий Фридман — New Adventures In Front-End, Season 2
Одним из самых заметных выступлений предыдущей HolyJS стал доклад Виталия Фридмана «New Adventures in Responsive Web Design». Если не присутствовали на нём лично, можете посмотреть видеозапись.
И теперь Виталий возвращается с новыми «Новыми приключениями». Когда возглавляешь Smashing Magazine, узнаешь массу фронтендерских тонкостей, сложностей и грязных трюков — так что доклад затронет самые разные темы. Как предупреждает автор, «вы не сможете «раззнать обратно» то, что узнаете, и мы не несем ответственность за ваши последующие ночные кошмары».
Марина Миронович — React, AWS Lambda и Serverless: смешать, но не взбалтывать
Наверняка это не первый раз, когда вы слышите о бессерверных вычислениях, но Марина надеется, что именно её доклад убедит вас попробовать их своими руками. А для тех, кто не новичок в AWS лямбдах, будут показаны их дополнительные возможности и полезные инструменты для разработки. В докладе она по шагам расскажет, как создать изоморфное приложение на AWS-лямбде, начиная с простого создания лямбды руками из консоли и заканчивая проектом с полностью автоматизированным деплойментом.
Taylor Lovett — Building Alexa Skills with Node.js
Созданный Amazon голосовой помощник Alexa сейчас используется уже не только в Amazon Echo, но и в устройствах от других компаний вроде Sonos. AI захватывает мир, и Amazon тут один из первопроходцев.
Разработчики могут создавать свои «скиллы» для Alexa, используя Node.js. Сейчас скиллов уже десятки тысяч, но экосистема всё ещё очень молода, и всё только начинается. Тейлор покажет, как писать, локально тестировать и правильно деплоить базовый скилл. Он также разберется с тем, какие паттерны проектирования лучше всего подходят для скиллов.
Евгений Гусев и Илья Таратухин — Бешеные псы, сезон 2: React vs Vue
«Чувствуешь запах? Это фронтенд, сынок. Больше ничто в мире не пахнет так.
Я люблю запах фронтенда поутру. Однажды мы рефакторили одну фичу двенадцать часов подряд. И когда всё закончилось… Там уже не было ни одного неизменённого файла.
Когда-нибудь эта война фреймворков закончится...»
Да, мы опять с вами! В этот раз эксперты мистер Синий (Илья Таратухин) и мистер Зелёный (Евгений Гусев) берут штурмом новые высоты: наш старый знакомый звёздно-полосатый React пытается отстоять рубежи перед стремительно наступающим Vue. Кругом взрывы, фронтендеры тут и там… Так, стойте, эта аналогия зашла слишком далеко. Давайте по-простому: посмотрим на два фреймворка и поймём, чем они похожи, чем отличаются, и кто же всё-таки победит в этой войне?
Роман Дворнов — Каталог компонентов: переосмысление
В Avito, где работает Роман, разрабатывают свой каталог компонентов. Этот доклад — ответ на вопрос «зачем?», когда уже есть готовые решения. Темы, которые будут затронуты:
- Как представлять компоненты, демонстрировать их возможности, технические решения для этого
- Какие функции могут быть полезны дизайнерам и разработчикам
- Как идентифицировать компоненты, сбор и привязка мета-информации, организация базы знаний
- Информация о местах использования компонентов и владении кодом
- Выход за границы каталога и его «дружбе» с другими внутренними сервисами
Сергей Николаев — Разработка Three.js приложения с помощью React.js
React.js предоставляет прекрасное API для разработки сложных пользовательских интерфейсов. Большинство разработчиков привыкли использовать его для разработки DOM. Но react reconciler намного мощнее и позволяет строить кастомные рендереры для разных целей, таких как: построение трехмерных сцен или создание компонентов canvas, управление которыми становится максимально простым благодаря декларативному API React.js.
Николай Матвиенко — Node.js в Enterprise
Архитектура корпоративных приложений эволюционирует, и Node.js уже широко используется корпорациями. Николай расскажет об опыте внедрения Node.js в крупных enterprise e-commerce проектах, используемых технических решениях, полученных преимуществах и о процессе постепенного реплатформинга и дробления монолитной архитектуры.
Кирилл Черкашин — Working with JavaScript Abstract Syntax Trees
Кирилл, родившийся в Москве, сейчас живёт в Нью-Йорке и работает в Google над Firebase, а также организует крупнейший Angular-митап в мире. В этом докладе он исследует подходы к анализу и преобразованию JavaScript-кода, основанные на его парсинге и работе с получающимися Abstract Syntax Tree. В примерах будут использованы babel и ESLint.
Imad Elyafi — Bringing mobile web back to life
В Pinterest, где сейчас работает Имад, мобильную веб-версию масштабно переделали, управившись при этом за 11 недель. В итоге получилось и добиться результата, близкого к нативным приложениям, и сохранить при этом быструю скорость загрузки. Метрики вовлечённости пользователей резко возросли. Но этот путь не был усыпан розами, так что Имад расскажет, с какими сложностями столкнулись по пути и каким образом их преодолели.
Алексей Богачук — Solution Architecture and JavaScript
Часто архитектура в JavaScript сводится к выбору фреймворка согласно последним тенденциям в мире фронтенда. А если сказать, что выбор технологий — это лишь седьмой шаг при принятии проектного решения? Каждый день множество проектов получают убытки или вовсе разваливаются из-за некорректно выбранной архитектуры.
Алексей поделится историями, которые помогут правильно сформировать видение и значение архитектуры в современных приложениях, а также не допустить ошибок, которые могут просто уничтожить ваш проект.
Евгений Поздняков — RxJS: Производительность и утечки памяти в большом приложении
Поговорим об RxJS и его философии. О возможных утечках памяти и основных ошибках при использовании RxJS. О личном опыте использования Rx в большом Angular 4-приложении и том, как фиксить и избегать Memory Leaks. Об этом мало кто говорит, почти ничего не написано в документации. Также будет рассказано о том, что стоит делать с помощью RxJS, а что нет.
Sebastian Golasch — EME? CDM? DRM? CENC? IDK!
Этот доклад рассмотрит технические детали, стоящие за целым рядом страшных аббревиатур: EME (Encrypted Media Extension), CDM (Content Decryption Modules) вроде Widevine, и DRM (Digital Rights Management). Как мы это сделаем? Реверс-инжинирингом Netflix и созданием своего собственного видеоплеера для Netflix!
Денис Радин — Mining crypto in browser: GPU, WebAssembly, JavaScript and all the good things to try
Посетителям HolyJS Денис уже знаком, например, по докладу «UI-компоненты на пиксельных шейдерах», и его основная работа связана с фотореалистичными веб-играми, но теперь выступит с совсем другой темой. Год назад к нему обратились за консультацией по вопросу «Возможно ли майнить криптовалюту в браузере с использованием GPU», и Денис исследовал вопрос — а теперь готов поделиться знаниями о том, чего ожидать, когда использовать пул браузерных майнеров.
День второй
Дмитрий Пацура — React Native Deep Inside
У Дмитрия богатый опыт в разработке (помимо React/React Native, у него в багаже PHP, C, C++, Go), а также далеко не в первый раз рассказывает про React Native. Но в этот раз, оттолкнувшись от уже имеющегося опыта, он заберется в самое нутро. В процессе доклада для полного погружения будет написан нативный модуль сразу и для iOS, и для Android.
Максим Юзва — Soft skills
Этот доклад ответит на вопрос: «Смог бы Илон Маск запустить и посадить ракету, если бы лучше всех в мире знал JavaScript, React или Angular?» Спойлер: «Да».
Итак, как же стать инженером XXI века? Расскажет Максим Юзва — фронтенд-тимлид, нанимающий и ресурсный менеджер в EPAM Systems; организатор сообщества FrontSpot и завсегдатай BeerJS.
Дмитрий Бежецков — Опыт портирования JS на Эльбрус
Мало кто работал с такой экзотикой, как процессоры Эльбрус. А Дмитрий не просто имел с ним дело — он в УНИПРО получил опыт портирования на Эльбрус различных компиляторов JS, от V8 FullCodegen до Ion из SpiderMonkey. На конференции расскажет про плюсы и минусы движков с точки зрения портирования и впиливания новых платформеннозависимых фич. В общем, про то, о чём услышишь нечасто — если подобная экзотика вас в принципе интересует, то пропускать доклад не стоит.
Sebastien Chopin Atinux — REST API Documentation in Node.js without writing it
При использовании Node.js создание корректной документации к API порой оказывается очень времязатратной задачей. Однако существуют решения вроде Swagger, OpenAPI, Postman и тому подобного. А Себастиан считает, что можно автоматизировать всё ещё сильнее обычного, позволив разработчикам сосредоточиться на разработке. И на конференции расскажет, как именно.
Виталий Фридман — Dirty Little Tricks From The Dark Corners of eCommerce
Что может пойти не так в eCommerce-проекте? Да примерно всё: от выбора продукта и добавления его в корзину до письма с подтверждением и, собственно, доставки товара. Каждый шаг должен быть тщательно выверен на предмет возможных ошибок и недопониманий.
В этом докладе Виталий рассмотрит, как можно повысить конверсию, а также просто улучшить впечатления пользователя с помощью некоторых мелочей. С докладом можно будет уйти с готовыми идеями и подходами.
Дмитрий Карловский — Квантовая механика исполнения кода
Предположим, у клиента медленное устройство, а вам нужно делать кучу тяжёлых действий в UI-потоке.
Как добиться 60 кадров в секунду, не превращая код в спагетти?
Как отменять уже начатые вычисления, когда их нужно повторить с более актуальными данными?
Предположим, у вас сервер, вычисляющий ответ на запрос от 1 мс до 10 с.
Как сделать так, чтобы долгие задачи не блокировали быстрые, не создавая по потоку на каждый запрос?
Как отменять уже начатые вычисления, когда клиент отключился?
Спойлер: stackfull fibers помогут нам выдавать каждой задаче процессорное время квантами по 16 мс.
Алексей Козятинский — JavaScript debugging using Chrome DevTools
Алексей далеко не первый год состоит в команде Chrome DevTools, создавая и улучшая там инструменты для отладки JavaScript. И в докладе речь об этих инструментах и пойдёт: Алексей расскажет о том, как они реализованы, начиная с брейкпоинтов и заканчивая асинхронными стеками и профилированием памяти.
Андрей Старовойт — TypeScript: почему так сложно?
В докладе мы обсудим эволюцию типовой системы TypeScript. Основные вопросы:
- С чего все началось?
- Что не так с типами в TypeScript?
- Можно ли «протянуть» типовую информацию в runtime?
- Чем типы TypeScript отличаются от типов в других языках программирования?
- Чего ждать в будущем?
Виктор Вершанский — Тонкости Mongoose: Discriminators, Nested Schemas, Virtuals
Слушатели познакомятся с заложенными в Mongoose.js принципами работы с жизненными циклами однообразных, но разнородных структур данных.
Основы Mongoose:
— Базовые принципы и подходы к работе.
— Типичные ошибки начинающих.
Зачем и как:
— Виртуальные поля и виртуальные методы.
— Вложенные схемы.
— Дискриминаторы.
Михаил Полубояринов — Чего ждать от JavaScript в 2018 году?
В январе прошел очередной митинг комитета TC39, на котором окончательно сформировалась спецификация ES2018. По её следам и пойдёт выступление Михаила Полубояринова — организатора PiterJS и IT Global Meetup, разработчика с 18-летним опытом, участника Программного комитета HolyJS.
Денис Колодин — Yew: Rust+WASM-фреймворк для создания Single-Page Application
В докладе будет рассказано, как разрабатывался фреймворк Yew — аналог React и Elm, написанный полностью на Rust и компилируемый в честный WebAssembly. Как можно создать фреймворк без сборщика мусора, эффективно обеспечить immutable, без необходимости копирования состояния благодаря правилам владения данными Rust и какие есть особенности при трансляции Rust в WebAssembly.
Lyza Danger Gardner — Web Annotation: The Web’s Conversation Layer
Web Annotation, ставший W3C-стандартом, предназначен создать слой для общения поверх веба. Теоретически он позволяет любому аннотировать любой интернет-контент, и это благородная цель в духе самого интернета: демократичная, открытая и стандартизированная.
Но с этой свободной приходят и сложности. Те, кто публикуют контент, теряют контроль над тем, что люди о нём говорят. А стандарт сам по себе не предполагает защиты от захвата дискуссии троллями. Эволюция Web Annotation показывает в миниатюре эволюцию всего интернета — с теми же вопросами безопасности, идентификации и свободы.
Наконец, есть три случая, где мы ещё не готовы представить описание доклада, но кое-что сказать можем.
Во-первых, Алексей Калмаков выступит с темой «Оффлайн VS онлайн клиентских метрик скорости».
Во-вторых, ещё одним докладчиком окажется Николай Рыжиков: активист сообществ Clojure и FProg, член комитета по разработке стандарта FHIR, CTO проекта Health Samurai.
А в-третьих, завершать конференцию будет доклад Ильи Климова. До этого он выступал на HolyJS с темой «”Строгий” JavaScript: типы против реальности» — и 6 000 просмотров у видеозаписи говорят сами за себя. Надо полагать, в этот раз получится не менее интересно.
Если в итоге поняли, что хотите на HolyJS — билет можно приобрести на сайте. А если по-прежнему не понимаете, и нужна ещё какая-то информация (например, точное расписание докладов), её можно найти там же.