Events

Saint P RubyConf 2019 — как это было

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

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

Офис JetBrains

Конференция проходила в центральной части, где находится конференц-зал.

Офис JetBrains

А вот так он выглядел во время докладов, практически все места были заняты

Конференц-зал JetBrains

И теперь самое время переходить к впечатлениям о самой конфереции, для начала первое отличие от прошлого года докладов стало в разы больше. В отличии от Ruby Russia 2018 тут все было организовано в 1 поток, в этом были и свои плюсы и минусы. Из плюсов, то что можно было свободно послушать все доклады и не разрываться, когда несколько интересных докладов идут в одно и тоже время. Хотя это и минус, если доклад не очень интересен, то альтернатив особо нет, ну разве что пойти пить кофе\чай и с кем-то поговорить.

Сама конфереция за счет одного потока была разделена на 2 дня, 1 и 2 июня, и после первого дня была официальная афтерпати (хотя по факту народ начал тусить еще с 31 числа).

Расписание выглядело таким образом:

June, 1
9:30    Doors opened
11:00   Bozhidar Batsov - Ruby 3.0 Redux
12:00   Andrzej Krzywda - Business logic in Ruby without frameworks, libraries, and persistence
13:00   Dmitry Tsepelev - Thinking in graphs: Why GraphQL is not about mapping database to schema
14:00   Piotr Solnica - Moving Beyond #call: Demystifying Functional Ruby
15:00   Michal Papis - Aspergers in IT
16:00   Julian Pokrovsky - Simple distributed systems in Ruby
17:00   Benjamin Roth - Case Study: how we made our core process 100 times faster (at least)
18:00   Anna Selezniova - Between Ruby and Javascript
19:00   Afterparty

June, 2
10:00   Doors opened
11:00   Nickolay Sverchkov - Anything new, Rails 6?
12:00   Ivan Nemytchenko - Embrace multi-model thinking!
13:00   Tatiana Shepeleva - How to test microservices and stay sane
14:00   Lightning talks
15:00   David Halasz - How to hijack, proxy and smuggle sockets with Rack/Ruby
16:00   Kir Shatrov - Running Jobs at Scale
17:00   Andrey Voronkov - Typical Rails app in Kubernetes - Tips & Tricks
18:00   Hiroshi Shibata - The Future of library dependency management of Ruby
19:00   Closing words

Как видно список докладов весьма внушительный и на каждый из них выделялось по 40+ минут, остальное время оставалось на небольшие перерывы и общение. И да, в отличии от Ruby Russia все доклады и Lightning talks были только на английском языке.


Открывал первый день конференции Bozhidar Batsov автор gem'a RuboCop, который использует наверное каждый уважающий себя и свой проект Ruby разработчик. Его доклад был весьма интересный, в нем рассказывается о грядущих фичах Ruby 3.0, которая если все пойдет по плану появится уже в следующем году, ждем-с так сказать.

Фото с Bozhidar Batsov

Кстати, я не сразу обратил внимание, на то что Bozhidar Batsov (он справа) в этот момент ходил с чужим бейджем, то как это произошло так и останется загадкой ¯\_(ツ)_/¯


Следующий хороший доклад был от Andrzej Krzywda, в нем рассказывается о организации бизнес логики не привязываясь к фреймворку или какой-то библиотеке. Приятным бонусом было то что Andrzej подарил участникам конференции промокод на его книгу Fearless Refactoring - Rails Controllers. Я к сожалению еще не успел ее прочитать, но начало выглядит весьма интересно и содержит полезные советы, надеюсь смогу найти что-то новое для себя.


Один из самых крутых в плане содержания и подачи был доклад от Nickolay Sverchkov о том что нас ждет в новой версии Rails 6 и какое влияение новые фичи могут оказать на развитие других open source gem'ов. Лично я уже жду, когда будет стабильный релиз Rails 6 чтобы попробовать ее в своих проектах. Доклад был весьма веселый с кучей забавных шуток, одна из них мне на столько понравилась, что пожалуй этот слайд я добавлю и сюда тоже :)

Шутка про Hanami

Для тех кто не знает, на фото Anton Davydov один из разработчиков Ruby фреймворка Hanami. Hanami не так популярен и развит как Rails, но в нем есть весьма крутые архитектурные идеи и как минимум только поэтому стоит с ним ознакомится.

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

- Action Mailbox
- Action Text
- Parallel Testing
- Multi DB


Так же мне понравился доклад и в целом мысли изложенные Ivan Nemytchenko, так что советую послушать и его доклад. Довольно интересные мысли по организации и структурировании архитектуры Rails приложений. В промежутке между докладами удалось лично пообщаться и обсудить вопрос, который волоновал меня, по тому как структурировать сервисные классы и их взаимодействие.

По сути вопрос состоял в том, как организовывать взаимодействие сервисных классов и переиспользовать их логику для нескольких пользовательских сценариев.
К примеру у нас есть сервисный класс реализовывающий дествие - отмена заказа. Затем у нас появляется сценарий, когда при подтверждении одного заказа из набора, мы должны отменить остальные варианты. Логично, что за обработку этих сценариев отвечают разные сервисные классы, но при этом основая логика по отмене у них одинаковая и в случае первого сценария, она находится на верхнем уровне и вызывать из одного сервисного класса другой. Такая ситуация возникла у меня в рабочем проекте такая и вокруг нее возник спор, плохо или нет. Мне не нравится такая реализация, и причина ее возниковнения был соблазн решить задачу простым способом.
Обсудим этот вопрос с Иваном, он рассказал что правильнее в такой ситуации выносить всю логику, связанную с действием в отдельный сервисный слой, и для обоих верхнеуровневых сервисов непосредственно этот уровень. На мой взгляд это реально правильное решение, вот за такое живое общение я люблю конференции, всегда приятно встретить человека с аналогичным мышлением и подходами. Осталось найти время на рефакторинг и переделать в соответствии с этим принципом.


К сожалению не бывает такого, чтобы абсолютно все доклады понравились, тем более что они были настолько разнообразные да и еще в таком количестве. И так для меня таковыми стали доклады от Michal Papis и Anna Selezniova.

Доклад Michal Papis был про синдром Аспергера, тема возможно интересная для размыления, но честно говоня я не понимаю какое он имеет отношение к конференции о Ruby, возможно это был бы не плохой доклад для Lightning talks. Michal один из основных разработчиков RVM (топ 1 по количеству коммитов) и мне было бы интереснее послушать про то как работает тот же RVM... Но как бы там ни было, спасибо ему за доклад!

Касательно второго доклада Between Ruby and Javascript, который рассказаывала Anna Selezniova, мне не совсем ясна его цель, что именно планировалось показать и рассказать с его помощью. Думаю большиство разработчиков в достаточной мере знакомы с JavaScript и знают описанные моменты работы в этих двух языках. Вообще я изначально думал, что доклад будет о какой-то хитрой интеграции или взаимодествии двух языков, но на практике вышло не так. Но какое бы я не испытал впечатление от доклада, спасибо за выступление!


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

Stickers

Вообще если подводить итоги, впечатления о конференции отличные, смог услышать интересные вещи и получить пищу для размышлений. Привез новый набор стикеров для своей коллекции и для коллег, а так же офигенную толстовку! Интересно, что будет на Saint P RubyConf 2020? Через год узнаем :)

Отдельное спасибо организатором за проделанную работу!


Сайт конференции — https://spbrubyconf.ru/
Часть информации для этой статьи была взята оттуда (расписание докладов, ссылки профили спикеров и тд)

Видео с записями докладов на YouTube — День 1 и День 2.

PS: На этом думаю все, я не ставил целью пересказать все доклады, a лишь выделил самые основыне моменты и свое впечатление, не сомневаюсь, что кто-то может считать иначе. А так, советую посмотреть доклады на YouTube и самим сделать выводы. Кстати, после последнего доклада весьма оригинально рассказывается о грядущих курсов по Ruby в Санкт-Петербурге ;)

Теперь ждем Ruby Russia 2019, которая по плану будет 28 сентября в Москве.