JavaScript Frameworks Day 2015 — как это было

Fwdays это гонка за наклейками и футболками ©

В эти выходные прошел третий по счету JS Frameworks Day. С каждым разом мероприятие переезжает все дальше от центра Киева — первое было на Михайловской, второе на Большевике, а третье — вообще за Киевом (привет, Ramada Encore на Столичном шоссе). Но, как бы далеко/долго не приходилось ехать, данный ивент стоит того. Накопив большой опыт проведения конференций большого и не очень масштаба, организаторы каждый раз приятно удивляют уровнем мероприятия.

Еще только готовясь купить парочку билетов, я прикидывал, как удобнее/быстрее доехать до Рамады. Однако, все размышления были зря, так как от м. Выдубичи раз в 20 минут отходили два небольших гостиничных автобуса. Удобно? Еще бы! А еще удобней получилось, когда вечером такие-же автобусы отвезли всех желающих от отеля до метро. За это отдельное спасибо. Стоп, начинать записи о своих впечатлениях начиная с конца, как-то не правильно, потому конец будет вконце (кэп одобряет).

Воскресное утро 26 апреля началось не с кофе, а со сборов компании из 4-х человек возле Фуршета на Выдубичах. Первую пару автобусов пришлось пропустить по причине позднего приезда меня с одной стороны и большого количества желающих попасть в эти самые автобусы с другой. А вот во вторую пару уже сели без проблем. Дорога до отеля занимает от силы минут 10.

Регистрация как обычно проходила в два потока: А-Л и М-Я. Возможно, так совпало, но во второй поток народу было куда больше, чем в первый. Может быть, стоит разделять не по середине алфавита, а по кол-ву людей на каждую группу букв. Раздаточный материал включал в себя 0,5л минералки, что было весьма кстати. Фирменный блокнотик (с купоном на обед), ручка, листик для оригами, материалы от спонсоров — все это так же досталось каждому участнику.

Так как приехали мы довольно рано и до открытия конференции оставался еще где-то час, то было решено немного пройтись по отелю (предварительно заняв места в главном зале). Почему-то мы не пошли на второй этаж, а нашли небольшую бар-стойку на первом. Тут часть людей вспомнила, что утро неплохо бы начать с кофе. Цены «приятно радуют» — чашка латте стоит 55 грн (об этом спросили уже после того, как заказ принесли). Мда, Европа же… Уже позже мы узнали, что на втором этаже чай/кофе/печеньки и т.д. можно взять бесплатно. Такие дела. На том же втором этаже пол весь был покрыт довольно мягким ковром. По началу постоянно возникало желание разуться.

Открытие конференции прошло довольно быстро. Даже спонсоров не вспомнили. Так как первым докладом для себя мы выбрали «Немного о функциональном программирование в JavaScript» Алексея Коваленко, то необходимо было быстро перейти во второй зал. Вообще, второй зал — это два маленьких зала, стена между которыми убирается. Но даже так, он все равно был меньше, чем первый. Как результат, первый доклад мы слушали стоя. Да, места надо было занимать именно тут. Жаль, что именно этот доклад был первым. Сам еще до конца не проснулся и мозг улавливал информацию через раз. А ведь улавливать было что. Алексей понятно и доступно рассказывал о вещах, с которыми мне до этого сталкиваться практически не приходилось. Функторы, монады (хотя это слово нельзя употреблять, — прим. автора доклада), каррированные функции — эти слова уже не просто малознакомые термины. Осталось промотивировать себя потрогать все это в Lodash (curry) или Ramda (curry).

Вторым докладом в нашей программе был «Frameworks in 2015» Андрея Листочкина. Посмотрели на популярные нынче Angular, Ember, React. Вспомнили про «не взлетевшие» проекты. Так же пересмотрели хронологию развития некоторых идей (в частности, появление компонентов). «Выбирая фреймворк, Вы выбираете целую эко-систему» — нельзя не согласиться. Особенно это заметно по Эмберу (Ember CLI вместе с Testem, Broccoli, Ember Addons, QUnit Driver). Для себя отметил обязательным к ознакомлению — Flux, Ember Glimmer, ES.Next (вошедший в Babel). Честно говоря, от обзорного доклада я ждал немного, но был очень приятно удивлен багажом полученной информации.

Получасовой перерыв. Можно выпить чайку и скушать какой-нибудь бутербродик. С первым проблем не возникло. Со вторым — возникло. Еда разлеталась в считанные минуты. И не удивительно — кормили очень вкусно. Потынявшись немного между стендами и променяв свои личные данные на возможность выиграть книгу по node.js/js, перешли к третьему докладу.

Решено было послушать про Angular2 от Евгения Жаркова. Как известно, вторая версия Angular еще в разработке и документации к ней мало. Из доклада уяснил, что вторая версия разительно отличается от первой, что все идет по пути компонентов, что даже само приложение теперь компонент. Узнал новое слово — «транспиляция». Показанный на слайдах механизм валидации форм, чем-то напомнил мне rules в Yii (почему — не знаю). По неизвестным мне причинам, звук на этом докладе был не очень качественным.

Короткий перекур. Вообще, в паузах между докладами скучать не приходилось — разные конкурсы проводились как спонсорами на своих стендах, так и самими организаторами. Тут были и «mind-games», и квест, и фотографирование.

«How to deploy to production 10 times a day» Андрея Шумада. Кажется, я впервые слушал доклад на украинском языке. Довольно непривычно (не в плане понимания). Рассмотрели что такое Continuous Deployment, Continuous Integration (Jankins, Travis, Team City) и как вести разработку на основе коротких циклов разработки, используя механизм feature-brunching в VCS. Получилось довольно интересно. Автор рассказывал про личный опыт и опыт его команды. Мне с таким подходом сталкиваться раньше не приходилось, потому он по началу попал в фазу отрицания («та ну — бред какой-то»). Однако, через некоторое время я его переосмыслил («а почему бы и нет»).

Обед. В обмен на талон из блокнота каждому выдали большой пакет с едой. В него попал пластиковый контейнер с шаурмой, яблоко, 0.5 минералки и йогурт. Вкусно, но мало. Рядом с отелем есть торговый центр, а в нем есть Фуршет. Туда и отправились дабы подкрепиться основательно. Сам ТЦ напоминал ТЦ из фильма «Down of Dead» — здоровенное здание с кучей магазинчиков, но людей всего десятка два (с учетом посетителей конференции).

«Использование компонентной архитектуры в веб-приложениях» Юлии Пучниной был первым послеобеденным докладом. Второй (и последний) доклад, который я слушал стоя. Запомнился тезис, что «сделать из котика собачку теперь просто». Так же запомнилось, что композиция может использоваться вместо иерархии наследования. Доклад был короткий, так что еще успел попасть на «Inside The AngularJS Directive Compiler», который шел параллельно. Было много Angular’овского кода, который был не очень понятен (с самим Angular я знаком очень слабо).

Fun time и кофе пауза. Разные конкурсы, возможность перекусить или просто посидеть на свежем воздухе. Кому что нравится.

Осталось всего два доклада. «The Grail: React based Isomorph apps framework» Эльдара Джафарова. Узнал для себя, что изоморфный код — это код, который используется и на BE, и на FE. Поговорили про изоморфные рендеринг, роутинг, бизнес-логику и т.д. Пришли к выводу, что «there is no server».

Последним был доклад Владимира Агафонкина «Как работают современные интерактивные карты на WebGL». Единственный доклад, который был «многопоточным». Владимира можно было слушать и куда больше, чем отведенные ему 40 минут. Просто и понятно рассказать о сложных вещах — это надо уметь. Владимир рассказал о том, какие возможности должны обеспечивать современные карты — поворот, масштабирование, перспективы. И все это должно делаться быстро и плавно. И SVG для этих целей не подходит. А подходит WebGL — технология очень быстрой отрисовки треугольников (со слов докладчика). Да-да, с помощью треугольников можно рисовать линии, полигоны, текст и т.д. Это задачи, которые влияют на производительность. А ведь есть еще чисто алгоритмические задачи — размещение надписей (и динамическое обновление направления, размера и т.д), триангуляция полигонов и т.д. Для текста, кстати, используется технология SDF, предложенная компанией Valve (той самой, что сделала HL, Portal, Dota2, L4D). Да, карты ж используют не только на ПК, но и на телефонах, планшетах и т.д. Соответственно, карты пишутся не только на JS, но и на С++. Со слов Владимира, чтоб сделать pull-request в код карт, надо написать одинаковый функционал как на JS, так и на C++. Вопрос тестирования рендеринга карт не остался в стороне. При тестировании берется эталонная картинка и сравнивается с той, что была срендерена.

Ссылки, на которые надо обратить внимание — LeafletJS, ESLint, mapbox/earcut.

Так незаметно наступил вечер воскресенья. День выдался очень насыщенным. Уставший, но довольный еду домой.

P.S. Спасибо организаторам конференции за еще один отличный ивент. С нетерпением жду следующих 🙂

, , ,

Оставить комментарий

Top ↑ | Main page | Back