- PVSM.RU - https://www.pvsm.ru -

RailsClub 2017: Интервью с Антоном Давыдовым. Важно не останавливаться и предлагать концептуально новые решения

Привет! Мы готовимся к RailsClub 2017 [1] и традиционно беседуем с нашими любимыми спикерами. Сегодняшний герой — человек, получивший Ruby Hero Russia [2] в прошлом году — Антон Давыдов [3]. Антон OpenSource-энтузиаст и один из кор-разработчиков Ruby-фреймворка Hanami [4]. Мы расспросили его о работе и взглядах на Ruby-разработку.

image

Над чем ты сейчас трудишься?
Я работаю в Healthcare стартапе, который может улучшить жизнь очень многим людям в США. К сожалению, подробности о продукте рассказать не могу, поскольку подписал NDA.
Если же говорить про OpenSource проекты, то сейчас мы дорабатываем версию Hanami 1.1. Также мы с Сергеем [5] создаем библиотеку для Event Sourcing [6] в Hanami [7]. Она уже работает без глобал стейта, делает subscribe & broadcast для ивентов, поддерживает несколько адаптеров и позволяет легко добавлять свои. В будущем у нее появится много крутых возможностей: ретраи, построение дерева событий и документация ивентов из коробки.

В Ruby нечто похожее делается с помощью гема Wisper…
Да, он очень похож. Но Wisper реализует pub/sub только в памяти одного instance. А мы хотим позволить разработчику выбирать, как обрабатывать такие сообщения: в одном инстансе или заскейлиться на несколько.

А как будут добавляться новые адаптеры?
Достаточно зарезолвить их в контейнер [8]. Сейчас у нас есть in-memory и Redis адаптеры, с которыми можно поиграть. В будущем появятся Kafka, RabbitMQ и, возможно, PostgreSQL.

Как ты видишь развитие Hanami в ближайшие четыре года?
Сейчас есть монополия в виде Rails. Я бы хотел видеть в Hanami достойную альтернативу. Это позволит развиваться всем фреймворкам. Hanami уже сейчас решает бизнес-проблемы, и многие разработчики вдохновляются этим инструментом. Надеюсь, в будущем мы сможем поменять мнение о Ruby как об умирающем языке и популяризировать новые идеи.

Как ты считаешь, сможет ли Hanami стать мейнстримом в будущем?
За последний год я увидел значительные изменения в отношении к фреймворку и его экосистеме. Это заметно по графику скачивания гемов, частоте появления постов, упоминанию на конференциях. Еще год назад, когда заходила речь о Hanami, люди крутили пальцем у виска, а сейчас подходят и говорят, что им нравится этот фреймворк и они его уже используют.

Как думаешь, почему именно Rails стал своеобразным стандартом в Ruby-разработке?
Я думаю, причин тому несколько. Во-первых, всем надоели многословные Java- и PHP-фреймворки, требовалось создать простое и работающее решение. Во-вторых, фреймворк позволяет быстро запускать продукты, на создание которых в других языках уходили бы недели и даже месяца. Для многих это стало глотком свежего воздуха, и Rails быстро обрел популярность.
Сейчас кроме Rails нет ни одного полноценного MVC-фреймворка. Существуют Sinatra и другие http-фреймворки, но они не дают возможности взять и одной командой начать работу над бизнес-задачами.

Какие, на твой взгляд, проблемы стоят перед Ruby-сообществом?
Многие мои друзья и знакомые говорят или говорили, что им слишком скучно в Ruby. Они из дня в день делают одно и то же, что в свою очередь убивает мотивацию. Поэтому многие разработчики начинают изучать другие языки и технологии. Я вижу в этом проблему. Людям не хватает чего-то кардинально нового, каких-то идей, которые позволят им иначе посмотреть на свою работу.
Важно не останавливаться и предлагать концептуально новые решения. Сейчас этим занимаются ребята из dry [9]/rom [10]. Но к сожалению, любой новый подход — не только в Ruby [11] — почти всегда воспринимается в штыки. С одной стороны, некоторая критичность должна иметь место, но к сожалению, это убивает мотивацию двигаться дальше и расти как сообщество.

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

Какой гем, по-твоему, может служить примером идеального кода?
Я бы точно не показал на Ruby core :). Я не могу сказать, что пишу хороший код, он не всегда нравится мне, поэтому сложно говорить о таких эфемерных понятиях, как качество и красота кода. Мне кажется, что лучшие гемы – это те, которые просто решают существующие проблемы и не создают новых.

Откуда ты узнаешь что-то новое о Ruby? Читаешь блоги или пользуешься другими источниками?
Мне нравятся агрегаторы ссылок, например, Reddit. Также я использую RSS. Это позволяет познакомиться с разными точками зрения на одну и ту же проблему.
Например, недавно появилась статья о том, почему Hanami – это плохо. И там был, по сути, ровно один пункт: в фреймворке магически вызывается метод call. Большая часть комьюнити дружно пыталась объяснить, что это нормально: излишняя явность иногда вредит. Очень интересно читать такие вещи – начинаешь смотреть на свою работу под другим углом.
Также у меня есть свой телеграм-канал [12], и его подписчики часто присылают мне интересные ссылки.

Помнится, ты делал платформу для совместной работы над OpenSource-проектами OSS Board. Ты еще занимаешься этим проектом?
Да, я его и сейчас продолжаю делать. Мне кажется, я недостаточно хорошо пропиарил OSS Board [13]. Очень сложно найти людей, которые будут создавать там таски и выполнять их, особенно если стоит задача чуть сложнее, чем внесение изменений в форму. Основная проблема проекта — в поиске специалистов, которые смогут добавить хорошо описанный таск, ведь за ним нужно следить, обновлять и общаться с разработчиками, а это очень большой труд. Но все равно находятся люди, которые помогают, за что я им очень признателен.

Что ты считаешь своим главным достижением в карьере?
На один из pull request в Rails я получил более 80 комментариев с вопросами по поводу каждой строки. Я так и не смог его доделать, но в итоге стал проще к относиться к подобным вещам.
Также я закончил проект в Google Summer of Code [14]. Там очень много людей сдаются на первом месяце, еще больше — на втором, и до конца доходят лишь единицы.

А что это был за проект?
Плагин для Sidekiq, который показывает статистику по всем задачам. Но, к сожалению, времени не хватает, и я его забросил, хотя это довольно востребованная библиотека.

Какие твои главные достижения в жизни?
Не побоялся выступить первый раз в жизни на английском языке на конференции EuRuKo-2016 [15] в Софии перед аудиторией в 700 человек. На русском делать доклад легче, ведь это твой родной язык. А когда не очень хорошо знаешь английский и никогда не выступал на нем, это очень волнительно.

На кого из OpenSource-разработчиков стоит равняться?
Смотреть на то, что делают другие разработчики, определенно стоит. Они генерируют и реализуют интересные идеи, которые можно помогать развивать или брать на заметку. Но в первую очередь нужно ориентироваться на самого себя и не сравнивать себя с другими.

О чем ты расскажешь на конференции и почему это стоит послушать?
Расскажу об опыте. Последние полтора года я занимаюсь не только фреймворком, но и его экосистемой. В какой-то степени меня можно назвать developer advocate ханами фреймворка. Поэтому в докладе постараюсь рассказать, зачем такая работа нужна, какие ошибки совершил и как взять этот опыт и замапить на другой фреймворк или технологию.

Все вопросы вы сможете задать Антону на конференции. Приходите! [1] Будет много всего интересного.
А поделиться этой статьей с англоязычными друзьями можно на Hype.Codes [16].

До встречи!

Автор: elena_voronina

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ruby/262100

Ссылки в тексте:

[1] RailsClub 2017: http://railsclub.ru/

[2] Ruby Hero Russia: http://rubyheroes.ru/

[3] Антон Давыдов: http://github.com/davydovanton

[4] Hanami: http://hanamirb.org

[5] Сергеем: https://twitter.com/makagon

[6] Event Sourcing: https://www.youtube.com/watch?v=STKCRSUsyP0

[7] Hanami: http://github.com/hanami/events

[8] контейнер: https://github.com/hanami/events#custom-adapter

[9] dry: http://dry-rb.org

[10] rom: http://rom-rb.org

[11] не только в Ruby: https://twitter.com/andrey_sitnik/status/888367972896702466

[12] телеграм-канал: https://t.me/pepegramming

[13] OSS Board: http://www.ossboard.org

[14] Google Summer of Code: https://developers.google.com/open-source/gsoc/

[15] EuRuKo-2016: http://euruko2016.org

[16] Hype.Codes: https://hype.codes/davydov-its-vital-not-stop-and-find-conceptually-new-solutions

[17] Источник: https://habrahabr.ru/post/335378/