Краткий пересказ RS Conf 2017

Александр Рулёв
5 min readFeb 21, 2017

--

В прошлый раз я рассказывал об анонсе ReportPortal.io от EPAM, сегодня расскажу о впечатлениях конфереции Rolling Scopes Conf 2017 практически от них же (плюс JetBrains и Mozilla).

Что ж, это, вероятно, самая крупная IT-конференция в Беларуси в этом году. Докладчиков понаехало со всех стран, как и участников (не помню, что на слайдах показывали, но там вроде было где-то 11+, включая Нигерию).

День первый

Пришёл, зарегистрировался (дали бейджик и кружку). Взял фломастер, дописал на бейджике Type Theorist в надеждах найти ещё кого-нибудь, кто знает, что такое алгебраические типы данных, зависимые типы, корекурсия, ну хоть что-нибудь (спойлер: не нашёл).

Front-end As I See It

Первым докладом выбрал Front-end As I See It против WARPSPEED: High performance tricks: Web Workers, GPU computing and Web Assembly, потому что я знаю про веб-воркеры, всякие GL-CL’и и жду не дождусь WebAssembly. Поэтому не пошёл на интересный технический доклад.

Анна Селезнёва из Evil Martians (которые мне нравятся, ибо существуют в стиле 37signals (ныне Basecamp)) рассказывала про всякие CSS-tricks, как ими можно творить безумные вещи и рисовать всякие приколюхи (иногда полезные). Что иногда бывает полезно, ибо в 99 из 100 javascript не способен угнаться за скомпилированным CSS’ом.

Оно всё дико круто, но чтобы сделать что-то на CSS нужно либо минимум полгода этим заниматься, либо что-то употреблять, ибо практически все фокусы крайне неочевидны, а чтобы додуматься до их комбинаций — нужно конкретно так поработать.

Dynamic Analysis with Babel

Второй доклад был про транспилирование кода, альтернатива — воркшоп по нейросетям. Я скептично отнёсся к нейросетям в смеси с javascript’ом, зная, что на больших данных нейросети обучают целыми кластерами, а на таких объёмах вычислений 300–700% оверхеда это непозволительная роскошь.

Этот доклад мне понравился больше всего за всю конференцию, ибо во-первых он показал, насколько это просто превратить один код в другой. А во-вторых привёл реальный пример использования этого для инструментации кода, чтобы начать логировать изменения полей объектов (т.е. в каждом объекте кроме поля со значением появляется такое же поле с постфиксом __history__, в котором список присваиваний этому полю со стектрейсами, где это случилось).

И в добавок примеры, что есть уже куча готовых таких штук для разного вида отладок и анализа (к примеру, DLint, который может детектировать различные странные поведения в рантайме (функции передаются лишние аргументы, которая она игнорирует, некорректное использование NaN’ов, undefined, кучу всего ещё)).

А существование отдадчика с машиной времени (она записывает историю выполнения и можно не выполнять её по шагам, а наоборот, возвращаться по шагам в прошлое) — это вообще просто рай дебаггинга.

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

Service Worker Crash Course

Альтернатива — продолжение нейросетей.

Service Worker’ы это такие штуки, которые вклиниваются между HTTP-запросами сайта и сервером и позволяют управлять реальным выполнением этих запросов. Например, некоторые можно не совершать, а сразу возвращать что-то из кеша. Плюс оно работает в фоне и в единственном экземпляре на все открытые вкладки сайта.

Штука полезная, если правильно настроить кеширование на бэкенде сильно сложно. В остальных случаях вполне можно обойтись хорошей архитектурой работы приложения с поставщиком данных (который будет предоставлять промежуточные данные/закешированные/содержать оффлайн-состояние, которое затем синхронизируется с серверами при появлении связи).

Why (Mobile) Web Compatibility is (so) important?

Доклад от Mozilla про webcompat.

GraphQL beyond the limit

Два доклада про GraphQL. Может быть и удобно, если у нас куча CRUD’а, но во-первых мне не лень SQL-запрос написать, во-вторых это больше готовое клиент-серверное решение для прототипирования, а когда возникнут вопросы, как это всё дело масштабировать — неизвестно что будет.

Пропустил доклады о PatternFly и HTTP/2, не показались интересными, съездил домой, перекусил и поехал на афтерпати (о нём в самом конце).

День второй

ECMAScript 2017 and beyond

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

По процессу TC39 каждая фича имеет пять уровней готовности от 0 до 4, где 0 — набросок на салфетке, 4 — однозначно будет включено в следующий релиз, 3 — всё готово, API не должно меняться, немного сбора отзывов и в продакшен.

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

Service Design: Case study

Альтернатива — два воркшопа Polymer.

Доклад про бизнес-аналитику (?), докладчик рассказывал про кейс работы с компанией Liberty Global, как они собирали людей, выясняли проблемы компании, искали решения, дизайнили приложение для помощи настройки оборудования, предоставляющего интернет (ибо докладчик сказал, у нас приходят мастера и всё делают, а у них там почему-то нет).

My Vanilla CSS

Доклад Вадима Макеева, его все знают кроме меня.

Интересный доклад-агитация отказа от CSS-препроцессоров. Ибо они часто вносят слишком много сложности, которая, по незнанию, либо вредит, либо превращается в неподдерживаемый код.

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

Миграция с Angular 1 на Angular 2+

Альтернатива — ещё доклад про Service Workers. Этот доклад очевидно, о чём. Половину доклада угорали со всей этой фреймворковой движухе и о том, что как потом они все будут мигрировать с Angular 2 на AngularX, а вторую половину я проспал (афтерпати всё-таки).

Designing for Composability

Альтернатива — тоже классный доклад Shells written in JavaScript, быть может, посмотрю в эту сторону когда-нибудь, но мне были бы более интересны python/Haskell-шеллы, нежели js.

Андрей Листочкин рассказывал про архитектуру разработки UI-компонентов. У меня то всегда компоненты отлично комбинируются друг с другом, а вот людей, которые действительно делают так, как делать нельзя — вполне себе хватает и, надеюсь, им этот доклад помог.

Afterparty

Так получилось, что мои товарищи уехали ещё с первого дня/не пошли на второй. So, пришлось идти в CRAFTMAN самому. Где я всё-таки подсел к незнакомым-затем-знакомым ребятам и понеслось. Оказалось, что я вполне понятно могу базово беседовать с иностранцами (или конкретно одним, как минимум), выяснилось, что он работал с человеком, который тоже из Бреста, правда, который во Франции). Официальное afterparty было в субботу, но затем ребята пособирались то тут, то там, на afterafterparty и в воскресенье (правильно, чего им, набрали себе отпусков на понедельники).

Москвичи оказались бархопперами и за выходные получилось посетить больше баров, чем за всю остальную жизнь и перетусить на полгода вперёд, явно не мой ритм. Из интересного: попробовал Guinness, коктейль Джеймса Бонда «взболтать, но не смешивать» Веспер, побывал в спикизи-баре.

Видел (ок, как минимум сидел за одним столом) настоящих разработчиков Яндекса (БЭМа нет!), Рамблера (он ещё жив и они сами об этом постоянно шутят), World Poker Club (говорят, 60% игрушечного покера РФ), Ethernium (блокчейн, умные контракты).

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

--

--

Александр Рулёв

Самопровозглашённый самопровозгласитель