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

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

    image


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

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

    А как будут добавляться новые адаптеры?
    Достаточно зарезолвить их в контейнер. Сейчас у нас есть 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/rom. Но к сожалению, любой новый подход — не только в Ruby — почти всегда воспринимается в штыки. С одной стороны, некоторая критичность должна иметь место, но к сожалению, это убивает мотивацию двигаться дальше и расти как сообщество.

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

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

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

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

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

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

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

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

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

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

    До встречи!
    Метки:
    RailsClub 61,18
    Конференция разработчиков на Ruby и RoR
    Поделиться публикацией
    Комментарии 4
    • +1
      МРКЩИ!
    • 0
      Например, недавно появилась статья о том, почему Hanami – это плохо.

      Не "почему Hanami — это плохо", а почему на его взгляд Hanami не достичь распространения Rails: типа Hanami позиционирует себя как фреймворк без магии и в то же время сам ее использует

      • +1
        Если не ошибаюсь, Hanami, прежде всего, позиционируется как фреймворк с лучшей архитектурой, легковестностью и скоростью. И архитектура, на мой взгляд, там действительно хорошая.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое