8-9 ноября, 2019

Большая конференция для JavaScript-разработчиков в формате онлайн

2 дня, 3 зала, 30 докладов
Купить билет
Быстрое переключения между залами
Видеопоток в разрешении 4К
Просмотр на всех мультимедийных устройствах
Ранний доступ к видеозаписям докладов и интервью

Спикеры и доклады

Инженеры с мировым именем, профессионалы, которые готовы поделиться своим опытом с вами.

Получите знания, которые можно сразу применить на практике.

Ujjwal Sharma

Igalia
ryzokuken
Доклад:
The battle of the event loops

Андрей Печкуров

Hazelcast
AndreyPechkurov
Доклад:
История одной оптимизации производительности Node.js-библиотеки

Андрей Оконечников

Component-Driven
okonetchnikov
Доклад:
A common UI language

Lucas Fernandes da Costa

Converge
thewizardlucas
Доклад:
Computability, types, tests, and why flat-earthers are bad at QA

Денис Радин

Focus Reactive
pixelscommander
Доклад:
Может ли компьютер молиться на благо всех живых существ? Молитва на JavaScript и WebGL

Артём Арутюнян

dbeaver
art_al_ar
Доклад:
Контрактное программирование как средство, а не цель

Никита Мостовой

HeadHunter
xnimorz
Доклад:
Я заберу у тебя все данные и ты об этом даже не узнаешь. Я — браузерное расширение

Farzad YousefZadeh

Futurice
farzad_yz
Доклад:
The art of explicit user interfaces

Иван Акулов

PerfPerfPerf
Доклад:
Делаем React-приложения быстрее

Guillermo Rauch

ZEIT
rauchg
Доклад:
Client rendering, server rendering, pre rendering. The full spectrum of JS website and application performance delivery

Дмитрий Пацура

Promise
ovrweb
Доклад:
Разработка компилятора для TypeScript на TypeScript на базе LLVM

Yulia Startsev

Mozilla
ioctaptceb
Доклад:
From specification to implementation

TC39 delegates

TC39
Доклад:
TC39 Panel

Miguel Angel Duran Garcia

Adevinta
midudev
Доклад:
React rendering strategies: Get the most out of performance, keep bots happy

Дмитрий Волошин

Otus
Доклад:
Карьерная эффективность и карьерный путь в ИТ

Nicolas Belmonte

Mapbox
philogb
Доклад:
Advanced geospatial visualization with JavaScript

Андрей Мелихов

Яндекс.Деньги
amel_true
Доклад:
Сам себе бэкендер

Роман Дворнов

Wrike
rdvornov
Доклад:
CSS definition syntax

Андрей Роенко

Яндекс
Доклад:
WebAssembly без купюр

Андрей Смирнов

IPONWEB
frontendweekend
Доклад:
Soft Effect: Исследование развития навыков

Prashant Palikhe

Independent
PrashantPalikhe
Доклад:
From code to pixels in a Blink

Eliran Eliassy

e-square.io
eliraneliassy
Доклад:
Get ready for Ivy — Angular 3rd generation renderer engine

Eric Schaefer

EyeEm
Доклад:
ReasonML for skeptics

Romulo Cintra

CaixaBank "Silk"
romulocintra
Доклад:
i18n the principles for an accessible web

Aki Rose Braun

Braintree
gesa

Michael Saboff

Apple
msaboff
Доклад:
JavaScriptCore, many compilers make this engine perform

Александра Калинина

Valor Software
korery
Доклад:
Переезд на Nestjs в условиях цейтнота

Mathieu Henri

Microsoft
Доклад:
End to end testing a world of web, mobile & desktop apps

Зар Захаров

Т–Ж
severenit
Доклад:
Figma to React: доставка дизайна в код

Павел Черторогов

PS.kz
nodkz
Доклад:
GraphQL-фрагменты на клиенте: История появления, ошибки использования

Виталий Брагилевский

JetBrains
_bravit
Доклад:
JavaScript на службе у теоретической информатики
Таня Денисюк
JUG Ru Group

TBD

Nicolò Ribaudo
Babel

Nicolò has been a core Babel developer since 2017, and he has helped with the development of different ECMAScript proposal.

When offline, he is a mathematics student in Turin, Italy.

Доклады на HolyJS 2019 Moscow:
@babel/how-to

More and more developers are using Babel in their build process, but do you know how it internally works?

We will first briefly discuss the different parts that compose a JavaScript to JavaScript compiler, and how it tries to reduce the complexity of implementing a custom code transformer: it's not just a search & replace based on regular expressions!

Then, we will learn how Babel implements support for new ECMAScript proposal, by going through a plugin which will transform future syntax to old ECMAScript. In order to code it correctly, we will need to carefully read the proposed specification, and we will discuss the trade-offs between specification compliancy and output complexity.

Комментарий программного комитета:

Николо активно участвовал в написании плагинов к Babel для поддержки Optional Chaining и Nullish Coalescing. В своем докладе он будет рассказывать как вам сделать собственный плагин под Babel для поддержки новых фич языка или решения ваших задач.

Ujjwal Sharma
Igalia

Ujjwal is an undergrad student, an open source software fanatic and an active member of the JavaScript ecosystem. A Node.js core collaborator, Electron maintainer, Google Summer of Code mentor and ex-student, he has been working with the V8 team and the TC39 committee to help make JavaScript better, one commit at a time. He loves to talk about open source software, DevOps, JavaScript, Web Standards and the Open Web.

Доклады на HolyJS 2019 Moscow:
The battle of the event loops

We all love a good event loop. The libuv event loop has to be one of the most discussed topics when it comes to Node.js. That said, there’s a new kid on the block, with a completely different approach to asynchrony that challenges some of the common underlying assumptions people make when thinking about how asynchrony works under the hood.

Ujjwal will discuss both external and internal aspects of libuv, comparing them to those of tokio, the event loop that powers deno, with a special emphasis on performance. We will discover the cases in which one outperforms the other, and how both employ different approaches to solving, essentially, the same problem.

You will come away with a deep appreciation of event loops, a thorough knowledge of how they work internally, and profound respect for how both projects strive harder each day to make sure JavaScript code is as performant as ever. You will also spot certain patterns which are handled and optimized for differently in both the loops and how to make the best of your favorite runtime.

Андрей Печкуров
Hazelcast

Давно и с удовольствием занимается проектированием и разработкой разнообразных веб-приложений и систем. Прошел путь от зеленого джуниора в небольшой продуктовой команде до solution architect в крупной аутсорсинговой компании. Некоторое время назад присоединился к инженерной команде Hazelcast и работает над различными продуктами компании, включая клиентскую Node.js-библиотеку.

С Node.js познакомился и полюбил в далекие времена версии 0.12.x. Любит нетривиальные технические задачи, требующие глубокого погружения. Ведет свой персональный блог и поддерживает несколько open source-библиотек. Постоянно учится у других и старается делиться своим опытом с сообществом.

Доклады на HolyJS 2019 Moscow:
История одной оптимизации производительности Node.js-библиотеки

В докладе пойдет речь о не так давно приключившейся оптимизации производительности в клиентской Node.js-библиотеке для Hazelcast IMDG. Мы поговорим об использованных подходах, методах замера производительности, инструментах, экспериментах и выдвинутых на их основе гипотезах и, конечно же, о полученных результатах. Кроме того, доклад коснется дальнейших планов по оптимизации и связанных с этим практик.

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

Андрей Оконечников
Component-Driven

Андрей — фронтенд-разработчик и проектировщик, специализируется на UX, разработке систем и современной фронтенд-архитектуре. Проектирует и разрабатывает продукты последние 20 лет. Андрей — соорганизатор ReasonConf, ReactVienna, соавтор приложения для macOS — ColorSnapper, автор и создатель нескольких популярных опенсорсных проектов, таких как react-dropzone and lint-staged. Международный спикер и ведущий мастер-классов.

Доклады на HolyJS 2019 Moscow:
A common UI language

В мире, где фронтенд-приложения становятся более сложными и временные рамки более жесткими, дизайн систем и библиотечные компоненты становятся ежедневными инструментами разработчиков для быстрого выполнения задач, и без жертвования UX'ом и качеством продукта. Правда в том, что то, как вы разрабатываете систему и как построены компоненты библиотеки, неизбежно влияет на качество кода приложения. Если компоненты не слишком подходят для решения бизнес-задач и время поджимает, будет много хаков и обходных решений — всё это приведет к нескончаемым багам и проблемам с поддержкой. С другой стороны, много контроля над разметкой и стилизацией может привести к нестабильному UI и нарушить UX.

Этот доклад/воркшоп охватывает общие архитектурные принципы и специфические React-методы, которые улучшат архитектурные компоненты и разработку API, и помогут сделать команду более продуктивной, а сами продукты более надежными.

Комментарий программного комитета:

Кто будет спорить, что дизайн системы — это важно? И вроде бы у всех они есть, но какие-то... не такие. Андрей расскажет, как сделать прочный и хороший фундамент для вашей системы. Примечание: часто такие доклады «как сделать хорошо» полны воды. Тут же совсем другая история. Приходите — не пожалеете.

Артём Кобзарь
Wrike

Преподаватель на курсах JavaScript.Ninja. Маргинал от мира технологий.

Любитель ФП, компиляторов и open source.

Сергей Рубанов
BeerJS Moscow

Организатор BeerJS Moscow и WebAssembly Moscow meetup, цифровой кочевник, приглашенный эксперт TC39, участник WebAssembly Community Group, коммьюнити-гай, чей стакан всегда наполовину полон.

Lucas Fernandes da Costa
Converge

Lucas is a Brazilian software engineer living in London. He breathes JavaScript and is passionate about open source. He is a core team member of Chai.js and Sinon.js, two of the most popular libraries in the JS ecosystem, and is always trying to find better and more efficient ways to solve problems. His motto is "strive to be lazy".

Доклады на HolyJS 2019 Moscow:
Computability, types, tests, and why flat-earthers are bad at QA

When an apple hit Newton’s head, he couldn’t prove all apples would do the same, but he could prove they wouldn’t. When we write tests, we cannot prove our code works, we can only prove it doesn’t. Types complement tests like mathematics complement physics, in this talk we’ll see why, and how.

This talk is as much of a journey through epistemology as it is a journey through software testing. How can we prove correctness is not the right question to ask. The right question to ask is: "Can we ever prove correctness?"

We’ll explore and compare the parallels between mathematics and physics, and types and tests. If physics cannot prove its theories are truthful, why do we believe it? We believe it for the same reason we believe in tests: we make observations, create models and check if reality matches our assumptions. When we have a formal system with well-defined rules, such as we have in mathematics, things change: truth is now attainable. We’ll explore the most brilliant ideas in the field of computer science and see how they can be applied to make better software, faster, with fewer bugs.

Going beyond theory, we’ll see how we can better use TypeScript’s features to make impossible states indeed impossible by using generics, conditional types, intersection and union types, discriminated unions and exhaustiveness checking and many others, after all, since TypeScript is Turing Complete, with it we can write any program that has ever been written or that will ever be written.

Getting even more practical, we’ll see what testing tools are available to us and how they complement each other: we’ll dig deep in the differences between how these tools work so that we can make informed choices about them and what is the role of each. We’ll talk about the difference between the different kinds of tests, end-to-end tests, snapshot testing, serializers, mocks, stubs, spies, and tight and loose assertions. Whenever necessary, we’ll go into the source code of some of JavaScript’s most popular libraries to show you all the mind-blowing minutiae in the way they have been implemented.

Денис Радин
Focus Reactive

Автор HTML-GL, Reactive Elements. Работает тех.лидом в консалтинге Focus Reactive. Питает слабость к оптимизации быстродействия и эстетике кода. Ведет воркшоп, организатор конференций React Amsterdam, AmsterdamJS. Любит WebGL, synthwave, горы.

Доклады на HolyJS 2019 Moscow:
Может ли компьютер молиться на благо всех живых существ? Молитва на JavaScript и WebGL

Может ли компьютер молиться в одной из существующих религиозных традиций? Доклад базируется на исследовании длиной в несколько лет и отвечает на этот вопрос, дает теоретическую основу, анализ теологических и культурных текстов, детали имплементации ReactJS + WebGL приложения, которое может молиться само или помочь вам в молитве. В конце увидим интервью с тибетским монахом о данном приложении, которое автор взял в специально организованную экспедицию.

Александр Каменяр
TradingView

Руководил дизайном в e-travel стартапе Voyanga. Занимал должность старшего дизайнера в СберТехе, работал над интернет-банкингом. Сейчас руководит отделом продуктового дизайна финтех-проекта TradingView.

Доклады на HolyJS 2019 Moscow:
Figma to React: доставка дизайна в код

В 2019 продуктовые дизайн-команды используют дизайн-систему на уровне графического редактора. Команда разработчиков переносит эту систему в код, используя компонентный подход React.

Но есть проблема. Финальной версии продукта не существует. Как не существует финального айфона. Продуктовые команды ежедневно развивают продукт. Но дизайн и код живут в разных мирах. Требуется постоянная параллельная синхронизация руками.

Как непрерывно доставлять изменения из дизайнерской дизайн-системы в React дизайн-систему?

Figma — это новый дизайн-инструмент. Figma в отличие от Sketch работает в вебе, родной среде компонентных дизайн-систем. У нее есть API. Александр и Зар покажут, как подружить дизайн-системы из двух миров.

Anna Herlihy
MongoDB

Anna Herlihy is a senior software engineer working for MongoDB in Stockholm. She is a contributor to PyMongo, MongoDB, bson-numpy, and a few other MongoDB Drivers but is working now on Compass, the GUI for MongoDB. She enjoys hiking, biking, climbing, and is most happy when she can do her work outdoors.

Доклады на HolyJS 2019 Moscow:
Transpile anything to everything!

Compass, the UI for MongoDB, is an Electron app that allows developers to visually develop aggregations and queries for their database. Right now it accepts these queries in the MongoDB Shell syntax, a JavaScript-based query language. However, developers use a wide range of programming languages in their apps, and constant context switching between languages can be painful.

To cure this pain, we wanted to allow users to export the queries they built-in Compass into whatever programming language they wanted. Even better, we wanted to also allow users to write their favorite language directly into Compass. To achieve these goals, we needed a way to translate query syntax in any programming language into query syntax in any other language, so we needed to write a multi-language-input to multi-language-output transpiler!

This talk will go through the technical design of the anything-to-anything pluggable transpiler and teach attendees how they can add their own favorite language to Compass. Anna will talk about classic compiler design principles and how she leveraged various compiler technologies to create a dynamic, extensible transpiler. Lastly, she'll talk about how we can take this transpiler and apply it to an abundance of other use cases!

Anyone with an interest in compilers, parsers, Compass, MongoDB, ANTLR, or a general passion for complex technical problems is welcome. Anna will talk about classic compiler design without requiring attendees to be programming-language experts, although any knowledge of compiler implementations will be useful. Attendees will leave the talk knowing exactly how to extend Compass to support new languages and will hopefully be inspired to go out and add their favorite language to Compass!

This talk addresses both MongoDB-specific challenges as well as highly technical computer science problems. Attendees will learn not only about Compass itself but about compiler design. As developers, we use compilers every day, but it is not so often that we get the opportunity to actually write them, and compilers are awesome!

Комментарий программного комитета:

Анна работала с Mongoose, сейчас работает с Compass, графическим интерфейсом для MongoDB. Проблема создания любой ORM в том, что это необходимо делать для каждого языка и технологии. А что, если сделать один интерфейс, подходящий для всего? Анна поделится итогом — получилось или нет.

Артём Арутюнян
dbeaver

7 лет в ИТ: в разное время поддерживал, запускал, разрабатывал проекты в крупнейших финансовых компаниях РФ. Сейчас специализируется на разработке фронтенда крупных web-приложений.

Христианин, муж, кодер, бушкрафтер.

Доклады на HolyJS 2019 Moscow:
Контрактное программирование как средство, а не цель

Отличное подспорье для надежного исполнения программы — контрактное программирование, т.к. этот подход гарантирует корректность входящих и исходящих данных. Артем расскажет что это, какие проблемы решает, а какие создает, и как с помощью контрактного программирования сильно упростить разработку. В частности статическую типизацию, тесты, документацию. Мы разберем существующие библиотеки, реализованные в JS, и немного погрузимся в собственную разработку Артема — rtcad.

Никита Мостовой
HeadHunter

Ведущий фронтенд-разработчик в компании HeadHunter. Начинал с интерна в школе разработчиков ХХ, где ведет лекции уже более 5 лет. За свою карьеру поработал в 5 командах. Последний год работает в команде архитектуры основного сайта, где безопасность пользовательских данных, архитектура и инфраструктура проекта — на первом месте.

Доклады на HolyJS 2019 Moscow:
Я заберу у тебя все данные и ты об этом даже не узнаешь. Я — браузерное расширение

Давайте посмотрим на адресную панель браузера. Сколько расширений у вас стоит? Браузерные расширения через механизм permissions, content и background scripts могут получить почти полный доступ к веб-страницам. Подобные механизмы использует практически любое расширение: блокировщики рекламы, dev tools и т.д. Расширения могут собирать данные о пользователе, парсить телефоны и email и заносить их в спам базы. А могут наоборот, показывать свою рекламу на чужих веб-сайтах. Самое страшное — это то, что ни пользователь, ни разработчики сайта, на котором хозяйничает расширение, об этом не узнают. В каком окружении исполняются браузерные расширения? Как мы можем отслеживать это? Можем ли? А как можем защищаться? Давайте окунемся в эту гонку вооружений, где разработчики веб-сайтов являются догоняющими.

Комментарий программного комитета:

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

Farzad YousefZadeh
Futurice

Software Engineer at Futurice. Working with JavaScript, TypeScript, React Native. Public technical speaker. Passionate about UI engineering, statecharts and reactivity.

Доклады на HolyJS 2019 Moscow:
The art of explicit user interfaces

There are many reasons why developing user interface is hard. No matter which platform we target or the way we present our UI, the user interface is hard to develop due to different reasons. One of the hardest problems of UI development that has been shining more and more in recent years is the state management.

In this talk, Farzad will show how using current tooling isn't the complete solution and how our current approaches lack a whole modeling layer in between and what are the most critical mistakes we make in modeling our user interfaces these days. He will demonstrate how this modeling problem can be enhanced using state machines and statecharts in particular.

Комментарий программного комитета:

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

Иван Акулов
PerfPerfPerf

Google Developer Expert в веб-технологиях. Основал компанию PerfPerfPerf, которая помогает другим компаниям зарабатывать больше, делая веб-приложения быстрее. Выступает и пишет.

Доклады на HolyJS 2019 Moscow:
Делаем React-приложения быстрее

Наконец-то воркшоп не про скорость загрузки и Lighthouse! Мы поговорим про рантайм-перформанс: как понять, есть ли в React-приложении проблемы, как диагностировать их и как решать.

В программе: перформанс-профайлинг в девтулзах Chrome и React, частые и не очень кейсы, которые вызывают проблемы, и медленные приложения, которые вам придётся дебажить вместе с Иваном.

Guillermo Rauch
ZEIT

Guillermo Rauch is the founder of ZEIT, co-creator of Now and Next.js, and former CTO and co-founder of LearnBoost and Cloudup, acquired by Wordpress.com in 2013. His background and expertise are in the realtime web. He's the creator of socket.io, one of the most popular JavaScript projects on GitHub, with implementations in many different programming languages and frameworks. He created the first MongoDB ORM for Node.JS, MongooseJS. Before that, he was a core developer of the MooTools JavaScript framework. He's the author of "Smashing Node.JS" published by Wiley in 2012, best-selling book about Node.JS on Amazon in multiple programming categories. He's spoken at dozens of conferences all around the world about JavaScript and the realtime web, such as O'Reilly OSCon, QCon, and NDC. Originally from Argentina, he dropped out of high school and moved to the US to pursue his passions in the San Francisco startup world. He's passionate about open source as an education medium. He's a former mentor of an Open Source Engineering class organized and pioneered by Stanford, with students from Harvard, MIT, Carnegie Mellon, UPenn, Columbia, and others.

Доклады на HolyJS 2019 Moscow:
Client rendering, server rendering, pre rendering. The full spectrum of JS website and application performance delivery

This talk will share everything we've learned about the spectrum of approaches for creating and scaling JavaScript websites and applications.

Комментарий программного комитета:

Гильермо является сооснователем ZEIT, компании, которая пишет Next.js, который, в свою очередь, является сейчас одним из основных решений для динамических вещей на React. Доклад обещает быть очень интересным с точки зрения обширного взгляда на тему server-side rendering. И Гильермо, конечно, можно будет позадавать вопросы про Next.js.

Дмитрий Махнёв
HolyJS PC

Разработчик m.ok.ru. Более 9 лет в веб-разработке. Часто пишет HTML на Java. Любит хорошие доклады, дадаизм, тесты и Dart.

Дмитрий Пацура
Promise

Разработчик, 10 лет опыта, писал множество проектов в open-source, начиная от статического анализатора, заканчивая компилятором TypeScript. Ведущий самого безызвестного подкаста во всем frontend — UnderJS.

Related open source:

  • PHPSA — статический анализатор на PHP для PHP;
  • GHubber — мобильный клиент для GitHub на React Native;
  • StaticScript — язык программирования, использующий LLVM как бэкенд и typescript как фронтенд.

Кроме того, Дмитрий являлся контрибьютором в Zephir Language & Phalcon framework.

Доклады на HolyJS 2019 Moscow:
Разработка компилятора для TypeScript на TypeScript на базе LLVM

В начале доклада мы затронем различные архитектуры от интерпретатора до JIT-компилятора, узнаем зачем нужен bytecode и сделаем интерпретатор байт-кода от V8 на JS в браузере. Получив базовые представления, мы окунемся в тему написания компилятора для TypeScript.

В докладе будут затронуты такие темы, как:

  • Базовые понятие про компиляторы/интерпретаторы и bytecode;
  • Архитектура движков V8/JavaScriptCore/Hermes;
  • Стековые/регистровые виртуальные машины;
  • LLVM;
  • Архитектура Hermes;
  • Попытка написания компилятора StaticScript v1.
Александр Коротаев
Tinkoff.ru

Фронтенд-разработчик в Тинькофф, занимается кабинетом для бизнеса и внутренними сервисами. Один из организаторов сообщества SPB Frontend и подкаста Drinkcast. Любит заниматься визуализацией и играми.

Yulia Startsev
Mozilla

Yulia Startsev is a programmer at Mozilla, recently working on SpiderMonkey. She is also one of three co-chairs of Ecma's TC39, the standardizing body for JavaScript.

Доклады на HolyJS 2019 Moscow:
From specification to implementation

Every year, Ecma’s TC39 (technical committee 39) releases a rolling specification with new language features added to JavaScript. But how does a feature go from an idea to a cross-browser implementation?

In this talk, we join the Nullish Coalescing operator on it’s journey through the TC39 process, and we will dive into its implementation in SpiderMonkey. You will come away from the talk knowing about the process from start to finish.

Комментарий программного комитета:

Доклады про движок SpiderMonkey можно услышать очень редко и у вас есть отличная возможность послушать человека, который работает и в команде этого движка, и является сопредседателем TC39. В докладе Yulia расскажет о пути Nullish Coalescing в SpiderMonkey.

TC39 delegates

Michael Saboff, Aki Rose Braun, Yulia Startsev, Romulo Cintra, Сергей Рубанов, Nicolò Ribaudo.

Доклады на HolyJS 2019 Moscow:
TC39 Panel

TC39 is the standards committee that designs the JavaScript language (sometimes called ECMAScript). The panel will feature a range of committee members is your chance to ask questions about the past, present and future of JavaScript!

Submitting a Question To submit a question to the panel, please send it by google form or just tweet us mentioning @HolyJSconf and #tc39panel.

Everybody can submit a question, no conference ticket necessary!

Miguel Angel Duran Garcia
Adevinta

Miguel works as Enabler frontend at Adevinta, a marketplace specialist based in Barcelona, Spain. He accelerates teams by defining a common platform, building cross tools, sharing best practices and helping to solve meaningful problems. He is passionate about performance and is always looking for solutions through technology to offer the best experience to users.

Доклады на HolyJS 2019 Moscow:
React rendering strategies: Get the most out of performance, keep bots happy

Rendering your app on the client is expensive. Quite expensive if you’re using a library such as React. Applying a Server-Side Rendering strategy was the best solution to improve metrics like First Contentful Paint, and enhance the support for crawlers. Until now.

How can we improve the user experience in terms of performance while keeping the best support for crawlers? How can we mitigate the hydration cost? How to definitely improve our Time-To-Interactive metric of our React application? In this talk, we will share some of the techniques we have been using in Adevinta as well as our insights after applying them during months in production. We will explore what Dynamic Rendering and Progressive Rendering are, their benefits over the performance, the limitations of each one and how to implement them.

Комментарий программного комитета:

Испанский блогер, подкастер и тренер на Udemy поделится опытом оптимизации рендеринга React. Думаете, что рендеринг в React ограничивается VirtualDOM? Подумайте еще раз — вы можете использовать разные стратегии рендеринга, каждая из которых имеет свои достоинства и недостатки. И это работает не только с React. Речь пойдет про принципы, которые можно применять в других фреймворках.

Дмитрий Волошин
Otus

Закончил ГУУ, где получил степень MBA (MBI) в 2008 году. Кандидат педагогических наук, автор монографии «Концепция непрерывного обучения».

В 27 лет стал CIO крупного научно-производственного холдинга, в 2012 году присоединился к команде Mail.Ru и возглавил департамент исследований и образования. С 2016 года — директор корпоративной сетевой академии «Ростех», с 2017 года — старший вице-президент УК «ПроОбраз». Советник ректора МАИ, член общественно-делового совета при правительстве РФ.

Основатель компании Otus, специализирующейся в области онлайн-образования.

Доклады на HolyJS 2019 Moscow:
Карьерная эффективность и карьерный путь в ИТ
  • Что такое карьерная эффективность;
  • Модель The Sims как реалистичная метафора;
  • Карьерные этапы и кризисы;
  • Матрица карьерных этапов;
  • Как это происходит в ИТ или перескакивая через ступеньки.

Комментарий программного комитета:

Дмитрий Волошин расскажет про путь, по которому можно идти в своей карьере, в своём развитии, как и на что обращать внимание при переходе со ступеньки на ступеньку. И казалось бы, причем тут слово «ликвидность», как научно подходить к своему собственному развитию? Дмитрий объяснит это.

Nicolas Belmonte
Mapbox

Nicolas Belmonte is VP of Maps at Mapbox. Nicolas is responsible for C++, iOS, Android, Web and Embedded map rendering engines, Maps APIs for vector, raster and static maps and Map Design.

Prior to Mapbox Nicolas was Director of Engineering and Head of Data Visualization at Uber. Nicolas' group built advanced products to explore self-driving car, geospatial and business data in the context of urban mobility. Prior to Uber Nicolas was Staff Engineer at Twitter, building novel public-facing visualizations published at the NYTimes, Cannes Lions and during Twitter IPO.

Nicolas' interests cover data visualization, computer graphics, data and math art, and the Web.

Доклады на HolyJS 2019 Moscow:
Advanced geospatial visualization with JavaScript

Mapping is arguably the most ubiquitous form of visualization to date. Mapping is today leveraged both for expository and exploratory visualization and by verticals like media, government, travel, BI, mobility, security and gaming.

There are multiple ways to create map visualizations in JavaScript which depend on the audience, use-case, and platform we’re targeting. In this talk Nicolas will cover various forms of mapping visualizations including those using computer graphics APIs on the Web like WebGL. Nicolas will also cover map design techniques, scaling map data, and benefits of visualizing data in different tile formats.

Finally Nicolas will cover a unique set of map projections called Myriahedral Projections with interesting applications in digital fabrication.

Андрей Мелихов
Яндекс.Деньги

Работает ведущим разработчиком в компании Яндекс.Деньги. В свободное от работы время развивает некоммерческий проект «Девшахта», в рамках которого делает переводы и пишет оригинальные статьи на тему веб-разработки. Ведёт подкасты «Девшахта» и «Ночной фронтенд». Активно участвует в жизни петербургского (и не только) фронтенд-сообщества.

Доклады на HolyJS 2019 Moscow:
Сам себе бэкендер

Андрей Мелихов проведёт вас по пути от чистого Node до Nest: мы научимся писать отказоусточивое и масштабируемое приложение, изучим основы отладки и профилирования. После воркшопа вы сможете создавать бэкенд различного назначения, познакомитесь с концепцией API Gateway и научитесь делать SSR без сторонних фреймворков. Уровень: middle.

Роман Дворнов
Wrike

Исследователь, изобретатель велосипедов, евангелист веб-стандартов, идейный вдохновитель, критик, докладчик. Автор CSSTree, discovery.js, basis.js и других, мейнтейнер CSSO.

Доклады на HolyJS 2019 Moscow:
CSS definition syntax

CSS один из немногих языков, в которых используется свой внутренний язык для описания своего синтаксиса — definition syntax. Этот «язык» используется во всех CSS спецификациях. «Ну, и что?» — можете подумать вы, — «Я все равно не читаю спеки, я и так знаю синтаксис CSS». Всё может и так, но в нашу жизнь не так давно пришли Custom Properties, а сейчас встал вопрос, что нужно как-то описывать синтаксис их значений, иначе, например, анимация не сработает. И что придумали использовать для этого? Definition syntax! А еще CSS Houdini на подходе, его уже можно использовать, хоть и с оговорками, а также Paint Worklet, который принимает на вход параметры для описания синтаксиса.

Definition syntax на уровне стек с нами давно, но он проникает все больше на прикладной уровень. И знать его точно не будет лишним. А как он работает, что вообще это за синтаксис такой, откуда ноги растут, какие для этого есть инструменты? Об этом и будет доклад, как обычно, с глубоким погружением в технические детали и интересными архитектурными решениями.

Комментарий программного комитета:

текст

Андрей Роенко
Яндекс

TBD

Доклады на HolyJS 2019 Moscow:
WebAssembly без купюр

Андрей подробно расскажет что такое WebAssembly, как он работает и зачем нужен. Не будет никаких «мы скачали emscripten и что-то там скомпилировалось и как-то там работает».

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

Василий Ванчук

Увлеченный разработчик, который любит нестандартные задачи, любит как кодить, так и общаться. Обращает внимание на саморазвитие, много читает и помогает развиваться другим. Преподает на курсах и является активным участником сообщества Web Not Bombs.

Андрей Смирнов
IPONWEB

Руководитель группы клиентской разработки в IPONWEB. Бессменный ведущий подкаста Frontend Weekend и активный участник frontend-сообщества. В прошлом актёр студенческого театра ВМК МГУ.

Доклады на HolyJS 2019 Moscow:
Soft Effect: Исследование развития навыков

Вы заметили тот момент, когда все вокруг стали обсуждать soft skills? Разумеется, невероятно интересно обсуждать гибкие навыки на примере индустрии frontend-разработки, где благодаря низкому порогу входа собралось множество талантливых людей с абсолютно разным профессиональным бэкграундом. Но характерно то, что люди, объясняя пользу soft skills, приводят в качестве доказательной базы лишь рассуждения и истории из жизни.

У Андрея как и у многих есть сильное мнение, что в 2019 году разработчикам развивать soft skills важнее для успешной карьеры, чем hard skills, но ему хотелось бы это доказать необычным образом. Спикер приведет в пример различные статистические исследования (в том числе собственные) и проанализирует их результаты, а также расскажет, что из всего многообразия гибких навыков стоит развивать в первую очередь, и как это легче всего сделать.

Комментарий программного комитета:

Многие ругают доклады про soft skills из-за плохой доказательной базы. Андрей Смирнов собирается поменять ваше мнение, представив свое исследование в этой области. Из него мы узнаем не только какие навыки сейчас наиболее важны, но и динамику влияния их роста.

Prashant Palikhe
Independent

Prashant is a frontend developer at Frontmen in the Netherlands. Apart from coding, he is also responsible for creating a technical trajectory for developers within Frontmen. While not coding, he likes to travel, preach about technologies and break a sweat at the basketball court with friends.

Доклады на HolyJS 2019 Moscow:
From code to pixels in a Blink

Let’s take a journey through the browser’s rendering pipeline. How the code that we write, HTML, CSS and JavaScript gets converted into pixels on the screen in a Blink of an eye. And how we can leverage that information to understand why industry best practices are the way they are and write performant applications. Since the internals of browsers engines varies between vendors, let’s focus on Google Chrome’s rendering engine, Blink. The key takeaways of the talk will be bird’s eye overview of Blink’s architecture, how Blink’s rendering pipeline works, how APIs like requestAnimationFrame(), requestIdleCallback() fit into the picture, how to decipher the complex Chrome dev tools performance flame graph, what kind of parallelism browsers allow us to work with and how to use all these information to create highly performant frontend applications.

Eliran Eliassy
e-square.io

Eliran is an experienced FE developer, specialized in B2C applications Founder and developer @ e-square.io

Co-Organiser @ AngularUP Annual Conference Co-Organiser and manager @ Angular-IL meetup Writer for AngularInDepth

Доклады на HolyJS 2019 Moscow:
Get ready for Ivy — Angular 3rd generation renderer engine

Smaller bundles, faster compilations, better debugging, dynamic loading of module and components and the ability to change components through Higher order components.

After a long time of waiting, it’s finally coming for real — Ivy is HERE!

In this talk, Eliran will demonstrate why Angular Ivy is truly a game changer, what's the benefits of it, how it makes Angular much more dynamic and breaks the concept of NgModules. We will understand how we can leverage the Ivy renderer to create higher order components (HOC), what is incremental DOM and how to import non-routable components dynamically to make our application much faster and much flexible.

Михаил Башуров
EPAM Systems

Full stack-разработчик на JS и .NET. Обожает всякие новые штуки и иногда позволяет себе немного похайпить. Любит React, удобный и приятный глазу UI, транспиляцию кода и, конечно же, покопаться в кишочках.

Eric Schaefer
EyeEm

Eric builds applications for the web using full-stack JavaScript. Lately, he enjoys using React and GraphQL, with a functional programming approach. He has built software for Native Instruments, RedBull, Google, Zeit Online, and many more.

Доклады на HolyJS 2019 Moscow:
ReasonML for skeptics

The title is inspired by "ClojureScript for Skeptics" from Derek Slager.

In this talk, Eric wants to explore ReasonML from a skeptic's perspective.

This skeptic works in a team, on a mid-to-large size codebase. This skeptic does NOT work on a green-field project. This skeptic would have tried some other compile-to-JS languages like Elm or PureScript in the past. Maybe this skeptic even used one of these languages in a hack-day project.

Speaker would like to show the skeptic how intuitive ReasonML is to a seasoned Javascript developer, and how it can be used to improve their team's current Javascript codebase, immediately.

To do this Eric will demonstrate converting one component in an existing codebase to use ReasonML, all without even changing the current build system.

Romulo Cintra
CaixaBank "Silk"

Technology enthusiast, working in Software development and Architectures for more than 10 years. Contributor in Open Source projects, TC39 Delegate, and blogger in part-time.

His main goal is to democratize technology and empower developers, teams, and companies mostly in the financial sector to build better products. His main focuses are the web, mobile, and cloud. He loves and advocates for the future of the internet and decentralized technology culture where all the globe is connected.

Доклады на HolyJS 2019 Moscow:
i18n the principles for an accessible web

The main goal of the talk is to show how to make the web accessible by all people of all ages, from all races speaking different languages, because i18n should be part of a11y.

The JS land in the browser does not offer an API that promotes the MessageFormat. This means that a big percentage of developers writes their contents in English just because is the easiest way to be global, or they end up using a library that does the job of i18n and l10n for them.

The talk will show how a unique API can make the web more accessible and enhance the development experience.

Main Topics:

  • actual i18n, l10n landscape in web (Node, Android, iOS);
  • actual developer experience;
  • how many libraries exist to solve this problem and how they try to solve them;
  • we need Intl.MessageFormat?
  • how many people know from actual Intl. API's that solves some of these issues. (code samples of API);
  • the future (impact that Intl.messageFormat would have in Javascript);
  • scaling Intl.MessageFormat/ICU to be cross-platform.

Комментарий программного комитета:

Представитель TC39 раскроет тему интернационализации. Проблема актуальна для многих разработчиков и поэтому имеет много решений. У вас есть шанс узнать про то, какие варианты есть сейчас, и в каком виде эту проблему собираются решать средствами нового API в самом JavaScript.

Aki Rose Braun
Braintree

Aki has been writing JavaScript for nearly 20 years and still needs to google the parameters for array mutation methods every. Single. Time. At some point she accidentally stumbled into the standards world and is now one of three co-chairs of TC39, specifying JavaScript. She currently works for Braintree and represents PayPal in Ecma.

Michael Saboff
Apple

Michael Saboff is a Software Engineer working on the JavaScriptCore virtual machine for the past 9 years. He is a member of the JS standards committee, TC-39.

Доклады на HolyJS 2019 Moscow:
JavaScriptCore, many compilers make this engine perform

This talk will provide an overview of the WebKit open source Javascript virtual machine called JavaScriptCore. It will cover how JavaScript source is transformed into bytecode, and then executed by the various tiers in the engine. The talk will provide details on the four tiers that execute JS, the purpose of each tier and how code moves between these tiers. We’ll also cover the techniques we use to execute dynamic typed code in an optimal way, such as speculation, static analysis and profiling.

If you are curious as to what happens when your code executes and the transformations done to make your code perform, you don’t want to miss this talk.

Комментарий программного комитета:

Michael расскажет о внутреннем устройстве одного из самых быстрых движков для JS — JavaScriptCore.

Александра Калинина
Valor Software

Более 10 лет опыта в программировании. Хорошо подкована в веб-разработке: решает проблемы с дырявыми абстракциями. Имеет опыт в написании unit/integration/e2e/b2b тестов, используя mocha/chai/sinon. Большой опыт в технологиях веб-разработки, шаблонах проектирования, проектирования баз данных, разработки алгоритмов и структуры данных. Есть опыт в разработке проектных заданий и технической документации.

Доклады на HolyJS 2019 Moscow:
Переезд на Nestjs в условиях цейтнота

Взгляд на NestJS глазами заядлого ExpressJS'ра, в условиях «некогда объяснять, пилить надо».

Технологии: NestJS, ExpressJS.

Цель доклада (проблемы и их решения): рассмотреть бытовую ситуацию, когда опытный разработчик может показать заказчику бизнес-ценность перехода с экспресса на нест. Показать, с какими подводными камнями он столкнется при миграции и как их быстро обойти, чтобы вложиться в срок.

Объект исследования: миграция с ExpressJS на NestJS.

Целевая аудитория: все.

Что люди узнают и получат из доклада: практические навыки безопасной миграции, плюсы и минусы перехода на NestJS.

Mathieu Henri
Microsoft

Mathieu is a Senior Software Engineer at Microsoft. He works on the Profile card in Office and Office 365, and specializes in cross platform automation. Previously he worked 11 years on the Opera browsers. In his spare time, Mathieu creates tiny demos in JavaScript and Pico-8 and runs a Code Club with Elementary school children.

Доклады на HolyJS 2019 Moscow:
End to end testing a world of web, mobile & desktop apps

Things get complicated when your code targets multiple platforms and powers components used on Android, iOS, Mac, Win32 and the web from IE11 and up.

This is the testing journey of the Profile card serving +100M people in Outlook and Office 365: How we style, test and monitor our components for any hiccups. And boy do they misbehave at times!

Starting with one browser and some open source libraries, we worked our way up, improved the status quo and set a framework that scales our end to end testing across browsers and native applications.

Комментарий программного комитета:

Поделится опытом Microsoft тестирования под разные платформы начиная с мобильных платформ и заканчивая десктоптными браузерами (от IE11 и выше). Мэттью расскажет про решение противоречия между сложностью и длительностью тестов и максимально быстрым нахождением проблем.

Алексей Золотых
Infobip

Пишет на JavaScript c 2007 года. До перехода к JS работал верстальщиком, сверстал более 100 сайтов. Писал на jQuery, Backbone.js, Angular 1, Angular 2, React, Ext JS, PolymerJS. Любит пользовательские интерфейсы и кофе.

Зар Захаров
Т–Ж

В веб-разработке более 10 лет. Руководил отделом frontend в e-travel стартапе Voyanga. Был первым, кто записал русскоязычные курсы по AngularJS. Более 3 лет проработал в Альфа-Банк, где развивал розничный бизнес и помогал пользователям получать услуги быстрее. Сейчас работает в самом быстрорастущем проекте Тинькофф — в Т—Ж, где применяет лучшие практики, в том числе по созданию дизайн-системы с быстрой доставкой изменений из Figma.

Доклады на HolyJS 2019 Moscow:
Figma to React: доставка дизайна в код

В 2019 продуктовые дизайн-команды используют дизайн-систему на уровне графического редактора. Команда разработчиков переносит эту систему в код, используя компонентный подход React.

Но есть проблема. Финальной версии продукта не существует. Как не существует финального айфона. Продуктовые команды ежедневно развивают продукт. Но дизайн и код живут в разных мирах. Требуется постоянная параллельная синхронизация руками.

Как непрерывно доставлять изменения из дизайнерской дизайн-системы в React дизайн-систему?

Figma — это новый дизайн-инструмент. Figma в отличие от Sketch работает в вебе, родной среде компонентных дизайн-систем. У нее есть API. Александр и Зар покажут, как подружить дизайн-системы из двух миров.

Евгений Кот
Wrike

Долгое время занимался .NET, Microsoft stack. Работал в Quest Software, после этого в Dell, где начал заниматься фронтендом. Прошёл путь от CoffeeScript + Angular 1.0 до Dart + Angular 2.0. На данный момент трудится в Wrike, высоконагруженном SaaS-приложении с очень богатым клиентским кодом. Команда Wrike пишет на Dart и Angular 2.0 и стремится быть up-to-date со всеми современными течениями в мире веб.

Павел Черторогов
PS.kz

GraphQL-ниндзя, разработчик интернет-продуктов, опенсорс-мейнтейнер. С 2001 года основная специализация - веб-технологии. Обладает обширными практическими знаниями по бэкенду, фронтенду, администрированию и построению архитектуры. С конца 2015 года делает основной упор на изоморфные приложения. Летом 2016 начал разработку graphql-compose (генератора GraphQL-схем) в опенсорсе. Написал достаточно много материала на русском про GraphQL. В 2019 начал формировать best practice по дизайну.

Telegram — https://t.me/graphql_ru

Доклады на HolyJS 2019 Moscow:
GraphQL-фрагменты на клиенте: История появления, ошибки использования

Павел расскажет реальную историю Фейсбука о том, как писали модели на клиентах, как получали данные и работали с ними. Как эволюционировали со временем, решая те или иные проблемы.

В докладе будут разобраны следующие подходы: JSON Models (тяжелый ручной труд), Type Models (похоже на генерацию моделей из Swagger), Response Models (подход ApolloClient), Fragment Models (подход Relay).

Спикер также поделится частыми ошибками фронтендеров, которые совершаются при работе с GraphQL-фрагментами.

И если позволит время, то бонус треком Павел расскажет про то, как в академической среде стали появляться «серые» научные работы, которые уж больно круто описывают возможности GraphQL: "We'll show that GraphQL can reduce the size of the JSON documents returned by REST APIs in 94% (in number of fields) and in 99% (in number of bytes), both median results". GraphQL конечно хорош, но не настолько.

Михаил Полубояринов
Health Samurai

Full-stack developer, занимается разработкой с 2004 года. Организатор PiterJS и IT Global Meetup.

Виталий Брагилевский
JetBrains

Преподаватель функционального программирования, теории языков программирования и теории вычислений, член комитета по стандартизации языка программирования Haskell и наблюдательного комитета по разработке компилятора GHC языка Haskell, автор книги «Haskell in Depth» (Manning Publications).

Доклады на HolyJS 2019 Moscow:
JavaScript на службе у теоретической информатики

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

В этом докладе мы расскажем об одном подходе к изучению теоретической информатики (а конкретнее, теории алгоритмов), при котором программирование на JavaScript становится основным видом деятельности учащегося. Мы пройдёмся по основным разделам теории и посмотрим, чем нам там поможет Javascript.

Для начала мы введём три модели вычислений (λ-исчисление, рекурсивные функции и машины Тьюринга), покрутим их немного, чтобы разобраться, что к чему, а потом попробуем применить к теории вычислимости (там доказывают существование неразрешимых задач) и теории сложности вычислений (там классифицируют задачи по объёмам требуемых для их решения ресурсов — времени и памяти). Не то чтобы Javascript позволяет проделывать основную работу в рамках теоретической информатики, но вот иллюстрировать важные понятия и приёмы он точно способен, именно для этого мы им и воспользуемся. А ещё будет много упражнений по программированию. На Javascript! Все на изучение теоретической информатики с нашим любимым языком программирования!

Материалы с предыдущих конференций

Здесь мы собрали видеозаписи докладов с предыдущих конференций HolyJS.

Илья Климов
JavaScript.Ninja
Надежный JavaScript: в погоне за мифом

#typesystem #casestudy

HolyJS 2018 Moscow
Lucas da Costa
Converge.io
There is a bluebird in my talk that wants to get out

#fundamentals #math #fp

HolyJS 2018 Moscow
Павел Черторогов
PS.kz
ApolloClient или Relay с фрагментами, «волосатый» GraphQL и TypeScript — всё, что нужно для правильного статического анализа React-приложения

#statemanagement #bestpractices

HolyJS 2019 Piter
Андрей Ситник
Evil Martians
Продвижение опенсорс-проектов

#hype #oss #selfpromotion

HolyJS 2019 Piter
Александр Коротаев
Tinkoff.ru
JS-битва: как я написал свой eval()

#casestudy #gamedev #firsthand

HolyJS 2018 Moscow
Andrey Lushnikov
Google
Modern web testing and automation with Puppeteer

HolyJS 2019 Piter

Ещё больше видеозаписей докладов на нашем YouTube-канале.

Перейти на youtube

Осталось только купить билет!

50% off

Online-Personal

25 200
12 600 ₽
Количество подключений
1
Видеозаписи
Есть
Может покупать/компенсировать компания
Нет
Комплект документов для бухгалтерии
Нет
Возможность изменить участника
Нет
Организация группового просмотра в офисе
Нет

Online-Standard

25 200 ₽
Количество подключений
1
Видеозаписи
Есть
Может покупать/компенсировать компания
Есть
Комплект документов для бухгалтерии
Есть
Возможность изменить участника
Есть
Организация группового просмотра в офисе
Нет

Online-Corporate

151 200 ₽
Количество подключений
10
Видеозаписи
Есть
Может покупать/компенсировать компания
Есть
Комплект документов для бухгалтерии
Есть
Возможность изменить участника
Есть
Организация группового просмотра в офисе
Есть