HolyJS 2017 Piter

2-3 июня 2017
Санкт-Петербург, Россия
Смотреть
В избранное

Douglas Crockford

Senior JavaScript Architect в Yahoo!

Тимофей Чаптыков

Разработчик в Вконтакте

Slobodan Stojanovic

CTO and a partner в Cloud Horizon

Jakob Mattson

Entrepreneurial software developer в Rokos Capital Management

Дмитрий Шуранов

Фронтэнд-разработчик в Туту.ру

О мероприятии

Технические доклады трёх степеней хардкорности были рассчитаны на JS-разработчиков уровня Senior/Middle.
26 опытнейших JavaScript-разработчиков выступили с 27-ю докладами и провели обсуждения в дискуссионных зонах.

Для кого

  • Техническим директорам
  • Тимлидам
  • Разработчикам
  • Программистам
  • QA
Поделиться

Расписание

Развернуть все
пятница, 2 июня
День 1
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Douglas Crockford

Senior JavaScript Architect в Yahoo!

Numbers

This is the story of numbers, where they came from, how they work, and what they might do next. Computers are machines that manipulate numbers. Understanding the nature of numbers is essential for the making of good programs.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Тимофей Чаптыков

Разработчик в Вконтакте

React со скоростью света: не совсем обычный серверный рендеринг

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Slobodan Stojanovic

CTO and a partner в Cloud Horizon

8 1/2 things about serverless (with Node.js)

What is serverless? How does it work? Can you explain it with something as simple as Lego bricks?

This talk will answer that and at least six and a half more questions. It’s main goal is to explain serverless architecture, show you why it’s important, and finally, show you why it works great with Node.js and how to use it.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Jakob Mattson

Entrepreneurial software developer в Rokos Capital Management

Forgotten funky functions

In the day and age of frameworks, transpilers and build systems most developers new to JavaScript spend more time understanding these tools than the language itself. The powerful fundamentals of JavaScript — and the even more powerful recent additions — are lost when there's a library for everything. This talk aims to explore some of the useful and sometimes strange sides of the language. We'll talk about higher order functions, the object model and meta programming (traditional as well as modern). We will dive into the language itself and rediscover its forgotten funky functions.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Дмитрий Шуранов

Фронтэнд-разработчик в Туту.ру

Цена пропущенного фрейма

И снова говорим об анимации. Рынок hardware развивается семимильными шагами, новые четырёхъядерные Android-смартфоны уже мощнее, чем ноутбук четырёхлетней давности. Но, несмотря на все вычислительные мощности, многие анимации в вебе продолжают быть дёргаными и неопрятными.

Что заставляет браузер пропускать фреймы? Такие понятия, как отрисовка на GPU, композиция слоёв, анимация transform/opacity, давно известны и привычны. В докладе мы взглянем глубже на них, поговорим о том, к чему приводят пропущенные фреймы, как сгладить анимацию технически и визуально, какие есть инструменты разработки и отладки анимаций, а также о подходах и приёмах для достижения плавности.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Илья Климов

Владелец в WookieeLabs

«Строгий» JavaScript: типы против реальности

Строгая типизация: серебряная пуля или маркетинговый ход? Этот доклад — история о том, как небольшая компания год писала «типизированный JS» и что из этого вышло. Личный опыт войны с типизацией, какие проблемы возникли на пути «перехода», какую ценность (и с позиции разработки, и с позиции бизнеса) это принесло, и когда стоит об этом беспокоиться.

В докладе немного затронем TypeScript (в основном отвечая на вопрос «почему не он») и сконцентрируемся вокруг FlowType и его экосистемы — чтобы понять, «зачем нам еще один TypeScript», куда движется сообщество «типизаторов» и зачем к нему присоединяться.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Martin Splitt

Software Engineer в Archilogic

Rendering performance from the ground up

Web developers should care about web performance. Unfortunately web performance explanations usually start from the rendered website, go down to the DOM and stop with statements as ".. and it's fast because it's accelerated". We will do it the other way around: We will start with a pixel and work our way up: How does a piece of markup turn into pixels, how are they combined to the page? We will visit: Parsing Layers / Textures Painting Compositing / Transformations From this we will conclude what we need to do to help the platform make our sites slick and fast.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Patrick Stapfer

JavaScript Software Engineer в IT

The Road to a Statically Typed Future

JavaScript's dynamic nature and rich and expressive syntax are strengths of the language, making it an approachable and beginner-friendly language to get started with. However, this same flexibility through dynamic typing and runtime evaluation increases the difficulty of debugging and makes it tough to confidently change existing code.

This talk will discuss Patrick's personal journey and experience on using existing type systems within and outside of the JavaScript ecosystem, specifically Flow and ReasonML, and demonstrate how they can improve your workflow.

Patrick will talk about general concepts of why we need type definitions, how types will influence API designs, the differences between static and runtime types and how we can bridge the gap between a statically compiled, type-safe language and the JavaScript ecosystem.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Никита Исаев

CEO и ведущий разработчик в Jinnius

Архитектура современных JS-приложений: три фреймворка, три подхода

В ходе доклада мы сравним, как три популярных фронтенд-фреймворка (React, Angular 2, Vue) по-разному трактуют современные архитектурные паттерны, опираясь на собственную идеологию и внутреннюю логику. При этом мы проанализируем, в чем подходы различаются, в чём преимущества и недостатки каждого подхода, и какой из них выигрывает в той или иной ситуации.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Claudia Hernández

Senior Frontend Engineer в Dailymotion

Down the Rabbit Hole: JavaScript in Wonderland

What even makes sense in Javascript? For a language originally created in 10 days it surely has a lot of quirks and perks many JS developers are unaware of. Sometimes, it might even seem like we fell down the rabbit hole only to find that NaN is actually a Number, undefined can be defined, +!![] equals 1, Array.sort() may not work as you suspected and so much other nonsense that can trip any JS developer’s mind.

This talk is a collection of Javascript’s oddities and unexpected behaviors that hopefully will prevent some future headaches and help understand the language that we all love in a more deeper and meaningful way.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Залим Башоров

Разработчик в JetBrains

Kotlin как язык для разработки фронтенда

Kotlin — относительно новый язык программирования, который изначально разрабатывался для JVM, но сегодня может компилироваться в JavaScript и не только. В данном докладе будет рассказано про различные аспекты Kotlin JS:

  • взаимодействие с кодом на JavaScript;
  • какие есть отличия от Kotlin на JVM;
  • как использовать один и тот же код для разных платформ;
  • и т.д.
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
суббота, 3 июня
День 2
Секция 1

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

Разработчик в Wrike

ES2017 vs Typescript vs Dart. Сравниваем без эмоций

Перед разработчиками очень часто стоит непростая задача выбрать язык программирования для разработки клиентской части приложения. Как правило: выбор стоит между тремя китами: JavaScript, TypeScript и Dart. Доклад сравнит три этих технологии.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Алексей Богачук

Фронтенд-тимлид/архитектор в EPAM Systems

Offline Second

Существует множество рекомендаций, как начинать проекты, следуя принципу «Offline First». Но как добавить поддержку offline-режима в приложениях, которые уже написаны? Какие тактики и архитектурные подходы применять, чтобы не возникло необходимости полностью переписывать приложение? Какие технологии и библиотеки использовать для этого? Какие хранилища подойдут для реализации pull/push стратегий?

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Imad Elyafi

Engineer WebCore Experience Team в Pinterest

Migrating Pinterest profiles to React

We all have been in situation when we had to move from one platform to another. While it’s relatively easy to build a new web app in React, migrating a service that’s constantly changing and used by millions of people is a much more complicated challenge. It’s like changing the engines of an airplane while mid-flight. Some of the problems are: rendering JavaScript on the server, measuring the impact, debugging issues, dealing with old resource library and rendering React components inside of the existing JS Framework.

The talk is about techniques we tried and challenges we faced while migrating to React at Pinterest. Also, we’ll share our performance and engagement gains after migrating Pinterest’s profiles to React.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Douglas Crockford

Senior JavaScript Architect в Yahoo!

Goto There and Back Again

The March of Progress is not a stable thing. It moves in fits, and frequently changes direction. N steps forward. M steps back. Can we get there from here? Are we there yet? JavaScript has become incredibly popular, and yet is little loved and much hated. And it is trying to change while petrified by its own popularity. We'll look at the history of some current controversies in language design, starting with Dijkstra's letter to the editor. A go to technology is sometimes useful and so must be eliminated.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

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

Разработчик в Яндекс.Деньги

V8 под капотом

Мы все используем JavaScript каждый день, но мало кто задумывается, что происходит после того, как исходный код попадает в браузер. На примере движка V8 я расскажу про стадии, которые проходит наш код, прежде чем стать набором машинных инструкций для процессора. Расскажу, почему почти одинаковые, на первый взгляд, примеры кода показывают разные результаты на тестах и почему этим тестам нельзя доверять. Мы пройдёмся по истории движка V8 от самой первой версии без оптимизирующего компилятора до современного конвейера Ignition + Turbofan и узнаем, как авторам V8 удалось добиться столь впечатляющей производительности.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Алексей Носов

Software Engineer в Tinkoff

Демонстрация экрана в действии

Зачем и кому нужна демонстрация экрана пользователя? Как это реализовать? В докладе будет рассказано о существующих способах организации стриминга изображения в браузерной части приложения. Поговорим об их достоинствах и недостатках. Будет показано наше full-stack JS-решение, выросшее из простого прототипа, основанного на WebSocket-сервере. Вы узнаете об исследованиях и опытах, предшествовавших production-ready реализации. Обсудим, как можно сделать такое приложение устойчивым к обрывам соединений и выдерживающим большой трафик. Вы также узнаете о сжатии данных, парсерах, тестировании и внедрении RxJS.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Anjana Vakil

Engineer в ÜberResearch

Functional Programming in JS: What? Why? How?

Functional programming has become a hot topic in the JS community, leaving many JavaScripters wondering: What's all the hype about? What do functional programs look like, and why might I prefer them to imperative/object-oriented code? How do I get started writing code in a functional style?

If you've been asking yourself these questions, you'll enjoy this gentle, practical intro to functional programming. We'll explore the advantages and basic principles of the paradigm, in which holy, pure functions deliver us from the evils of mutable state. We'll see how rejecting side-effects and mutability in our code can avoid a lot of common JS headaches. And we'll learn how to use core JS features as well as some popular FP libraries like Mori and Ramda to start writing our own functional programs.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Георгий Буханов

Senior Frontend Developer в Toughbyte Ltd

React Loadable: Code Splitting with Server Side Rendering

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

Разделить один бандл на несколько помогают такие инструменты, как Browserify и webpack. Но как только требуется также организовать рендеринг на сервере и имплементировать универсальную загрузку данных для нашего приложения, решать эту проблему становится сложнее. Кроме того, нам нужно найти места в нашем приложении, где мы будем разбивать его на другие бандлы и загружать их асинхронно, а также подумать, как нам связать сервер и клиент.

Если открыть в документации React Router 4 раздел «Code-splitting + server rendering», то можно увидеть: «We’ve tried and failed a couple of times».

В докладе будет показано, как можно решить эту проблему с помощью простой библиотеки React Loadable. Для этого доклада вам пригодятся знания React, Babel (ES6), Node, webpack 2 и Redux.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Денис Радин

Фронтенд-инженер в Liberty Global

Переносим существующее web-приложение в виртуальную реальность

Виртуальная реальность — мощный тренд, который до текущего момента обходил стороной веб-разработчиков. Данный доклад о том, как интегрировать существующие web-приложения в мир виртуальной реальности, давая вашим пользователям новые возможности и UX, а себе дозу фана.

Должны ли мы использовать CSS или WebGL для проброса приложения в VR? Какие решения доступны на текущий момент и каких ошибок стоит остерегаться? Почему HTML так же хорош для разработки VR интерфейсов, как и для обычного, плоского Web? Как веб-разработчик может быть частью VR-революции?

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Алексей Иванов

Фронтенд-разработчик в Evil Martians

Внутреннее устройство бандла webpack

webpack стал де-факто стандартом для сборки крупных приложений на JS. Его используют почти все, но, как правило, в качестве черного ящика: «если положить вот сюда файлы и написать такие-то строчки в конфиг, то потом на выходе автомагически получится бандл».

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Сергей Юферев

Software Engineer в qiwi.ru

От фреймворков к сверхфреймворкам

Цена использования любой хорошей практики программирования складывается из масштаба приложения и из того, насколько удобно позволяют реализовать её текущий уровень развития языка и инструментов разработки: синтаксический сахар, наличие типизации, поддержка типизации в run-time, поддержка IDE.

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

О попытках решить эти проблемы в reactive-di, основанном на идеях внедрения зависимостей (DI) и реактивного программирования. Своего рода «докера» для кода, контролирующего состояние приложения и комбинирующего в себе идеи mobx, mol, cellx, angular2 di.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

George Mandis

Web developer в Snaptortoise

Make More Than Music with Tiny Computers, JavaScript and MIDI

Tiny computers such as the RaspberryPi, Arduino and C.H.I.P. have finally reached a level of performance and affordability that makes hardware experimentation accessible to everyone. At the same time, JavaScript has emerged as the lingua franca of web programming and can be found in many places beyond just the browser.

What if I told you there was a mature protocol that's been around since 1983 and was uniquely poised to take advantage of this development?

Well, wonder no more and meet MIDI!

Sitting at convergence of these two things is MIDI — a niche protocol that's been around since 1983 and was originally designed for musical instruments to communicate with one another. Its event-oriented approach to messaging feels right at home in the asynchronous world of JavaScript & Node, and the prevalence of MIDI support in older musical equipment means you can find unique, hackable and affordable hardware at your local pawnshop or Craig's List.

This unlikely tech stack — Tiny Computers + JavaScript + MIDI — can lend itself to creative programming beyond music. George's Talk will explain how to get started, walk through several examples and elaborate on the future of this stack, not only as a platform for experimentation but for education as well.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Владимир Гриненко

Руководитель группы общих компонентов интерфейсов в Яндекс

Зависимости в компонентном вебе, сделанные правильно

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

Мы в Яндексе придумали способ, как избавиться от всех этих проблем с зависимостями. В докладе будет рассказано, как применить новый подход на примере сборки на Gulp и Webpack. А также о пакете, который не только позволяет собирать таким образом проекты на React, но и обеспечивает множественное наследование для React-компонентов.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Игорь Алексеенко

Преподаватель в HTML Academy

Почему мой сайт тормозит и как это исправить

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Валерий Сорокобатько

Software Engineer в Plarium

CSS in JS. Зачем и почему?

Рассмотрим CSS in JS со всех сторон:


  • Зачем нам нужен CSS in JS?
  • Как это работает.
  • Динамический CSS.
  • Существующие решения и разница между ними.
  • Какой подход используем мы и почему.
  • CSS in JS-эксперименты: Browser extension и Service Worker для кеширования сгенерированного CSS.
  • Примеры, много примеров.
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Lea Verou

Research Assistant в Название компанииMassachusetts Institute of Technology (MIT)

JS UX: Writing code for humans

We tend to think of user interfaces and UX as designer concerns that do not apply to us. However, every time we write code to be used by others — or ourselves in the future! — we are creating a UI. A UI whose usability can be vastly improved by many UX principles, some tailored to code, others applying to every UI, ever. In this light-hearted talk you will learn a ton of tips and tricks to improve your API design, distilled from Lea’s experience of creating & managing dozens of successful open source projects with thousands of merged pull requests.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Билеты

Видеозапись
Доступ к записям всех докладов
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Организатор

JUG.ru
https://jugru.org

Организационный комитет: JUG.ru, info@jugru.org, 78126802918

Похожие мероприятия

4 апреля 2017
Докладов 16
Просмотров 6
java, javascript, qa, код, по, программирование, разработка, скрипт, тестирование
5 июня 2016
Докладов 25
Просмотров 6
java, javascript, qa, код, по, программирование, разработка, софт, тестирование
7-8 апреля 2017
Доклад 31
Просмотров 9
java, javascript, qa, по, программирование, разработка, софт, тестирование
ещё