Дорога
Однажды я с тремя моими коллегами – Сашей, Вовой и Серёжей – собрались на на RubyConfBY в Минске. Поднялись мы рано утром в воскресенье, попрыгали в машину и поехали за триста километров послушать умных людей.
Тут надо сказать, что это первая подобная конференция в Беларуси. Мой опыт посещения таких мероприятий сводится к двум поездкам на Rubyshift в Киев и это довольно положительный опыт. Докладчики чаще всего интересные, больше половины тем занимательны, вопросы из зала тоже добавляют интереса. Опять же, видишь одномоментно больше программистов, чем за предыдущий год, и понимаешь, что ты такой не один – есть целая толпа подобных тебе задротов.
Итак, мы приехали в Минск. Навигатор в Яндекс.Картах привел нас на другой берег речки и предложил перебраться вплавь. Мы не сразу это поняли, а когда начали что-то подозревать, уверенно идущие впереди люди нас успокоили. "Наверно, они что-то знают", – подумали мы и спокойно пошли дальше.
Дальнейшие события показали, что люди впереди тоже шли по навигатору.
К счастью, Саша вовремя заметил маячащий вдали пешеходный мост и мы пробежались в ту сторону. Дальше нам уже везло – идущая в ту же сторону, в которую показывал навигатор, толпа фриков с рюкзаками и неуловимой печатью на лице, говорящей "свои!" не могла оказаться никем иным, кроме таких же посетителей конференции по программированию. А ведь если бы не они, я бы мог и не решиться позвонить в эту дверь.
Немало подивившись столь экзотическому входу, мы прошли внутрь и были вознаграждены:
Конференция
Мы заранее знали, что мы опаздываем на первое выступление, но в итоге оказалось, что мы пришли аж на середину второго. Выступление было про статический анализ кода в Руби, средствами специальных гемов для метрик, делали это ребята из JetBrains, соответственно, с позиций разработчиков RubyMine и PyCharm. Что запомнилось, это отвага молодого человека, выходящего на конфереции рубистов, и заявляющего "Я работаю на Питоне, и хотел бы обрисовать разницу между этими языками и подходами". Однако же обошлось без крови.
За ними вышел представитель главного спонсора этой конференции – компании Toptal – и в краткой приветственной речи стал зазывать к себе работать. Ну что делать, кто девушку ужинает, тот её и танцует.
Следующим был небезызвестный в Руби сообществе Божидар Батсов, активно продвигающий свой стандарт форматирования кода в Руби. Тут стоит сказать, что я уже давно хочу, чтобы в Руби сообществе появилось что-то похожее на PEP8 и столь же авторитетное, но думаю, что это безнадёжно. Одна из ценностей Руби, в отличие от Питона, гласит "должно быть много способов сделать это" – и по определению, любые подобные стандарты обречены быть уделом отдельных команд и проектов. А жаль.
На выступление "Rails in production" мы возлагали массу надежд. Однако, оно оказалось некоей версией урока "Как оно в продакшене устроено" для чайников. Вот прямо капитан очевидность у кафедры. Как же я был удивлён, когда вопросы из зала вскрыли в выступающем профессионального и эрудированного девопса и администратора, работавшего с кучей интересных и сложных проблем и инструментов. Жалко, что он решил сделать выступление "Rails in production 101", а не сделать выступление из ответа на любой из этих вопросов.
Выступление "Почему мы увольняемся с работы" порадовало прикольным разбором ценностей agile manifesto.
В этом месте могла бы быть ваша реклама, но был всего лишь перерыв на обед. Саша каким-то верхним чутьём просто по названию выбрал нам отличное заведение общественного питания, в которое кроме нас, кстати, никто не пошёл – все прельстились раздаваемыми на стойке регистрации скидками в какое-то близлежащее кафе.
Вторая половина конференции
Потяжелев, мы вернулись в конференцзал. Следующий выступающий не запомнился мне совершенно. Ну вот что-то он рассказывал о том, как время от времени он устраивал хакатоны и это порождало в дальшейшем классные штуки, которыми долго пользовался он или ещё кто-то. Воспринималось это как чистой воды автобиография. Однако, он за скобками заметил полезный для меня инструмент, который я как-то пропустил:
dokkufy. Так что, время не прошло совсем уж даром.
Майкла Паписа, автора RVM и давнего завсегдатая конференций по Руби, я уже знал в лицо. И его появлению не обрадовался. На Рубишифте он плакался о том, что почему-то все пользуются rbenv, а ведь rvm лучше, он такой хороший, такой красивый. На этой он рассказывал, что Бандлер не нужен, потому что всё есть в новом Rubygems. Нет, кое-что из того, что он сказал, весьма дельно и я сделал несколько заметок на будущее, но, чёрт побери, скучными у него получились даже дельные вещи.
Сытный обед и два увлекательных выступления сыграли с нашим другом Сергеем плохую шутку – его стало настолько неудержимо клонить в сон, что он покинул нас и отправился спать в машину. Отряд хоть и заметил потерю бойца, но мы мужественно остались ждать Ника Саттерера.
Но до него пришлось послушать социальное выступление "ребята, давайте жить дружно". Оно было обо всём и ни о чём, и должно было убедить нас участвовать в жизни сообщества – делиться кодом, временем, ходить на конференции и выступать на конференциях. Нашлось место и RailsGirls и SummerOfCode, и многим другим подобным явлениям. В целом было позитивно, бодро и приятно. Запомнилась просьба встать и обнять камеру (Friday hug в воскресенье) ну и самым чистым английским на всей конференции.
Апотоник!
Наконец-то мы дождались звезду конфереции – Ника Саттерера. Для меня было самое полезное выступление на всей конференции, потому что я думал примерно о том же последние две недели.
Ник продвигал свой фреймворк поверх Рельсов –
trailblazer. И надо сказать, что совокупность идей однозначно прекрасна. Вернуть ООП в Рельсы, правильно разделить ответственность между слоями, и даже изничтожить эту рельсовскую гадость, при которой наверху файловой структуры приложения ты не видишь приложения, а видишь рельсы. Мои мысли по поводу trailblazer заслуживают отдельного текста, скажу лишь, что многие вещи я бы сделал слегка по-другому (для большей целостности), но то, что это движение куда надо – я уверен.
Нотку грусти вносит то, что большая часть проектов Апотоника так и осталась незавершённой. Возможно, trailblazer так и не придёт к поставленным целям. Но я прошу вас – посмотрите, это интересно.
Домой
Тут мы позорно сбежали, не слушая следующих двух выступлений. По нашим расчётам получалось, что если послушать и их, мы возвращались домой к часу ночи, а если не слушать – к одиннадцати. А как уже упоминалось, завтра был понедельник.
Расчёт времени возвращения оказался верным.
Мысли и выводы
Спорно для меня решение выступать русскоязычным выступающим на русском языке. Да, это странно, когда два русскоязычных собеседника общаются на английском и обоим тяжело – но зато на Рубишифте не скучают приглашённые гости.
А вот бесспорно для меня то, что структура Рубишифта, когда между каждым выступлением есть десяти-пятнадцятиминутный перерыв – это однозначно правильно. Здесь это было не так и некоторые выступления шли подряд. Это плохо и вот почему: когда есть перерыв, этап вопросов из зала плавно переходит в этап зажимания докладчика в угол наиболее заинтересовавшимися и уже интерактивного обсуждения с ним, пока незаинтересовавшиеся пьют кофе, а следующий докладчик готовится к выступлению. Здесь этого недоставало.
Ну а вообще посещать подобные мероприятия приятно и полезно.
Благодарности
Вове, купившему билеты, Саше, решившему проблему голода на обеденном перерыве и, конечно же, человеку, без которого поездка бы не состоялась – нашему чудесному пилоту, Сергею.