В эту субботу мы встречаемся со всеми рубинистами на главной конференции, посвящённой этой технологии — РубинРоссия 2019 .
28 сентября совсем близко, и в этом интервью вопросы для Ксавье Нория подготовлено разработчиком компании Evrone Павел Аргентов , а помогли ему студенты и преподаватели, с которыми он работает над курсом «Языки интернет-программирования» в МГТУ.
Редкое фото с последнего визита Шавьера в Россию - на RailsClub Москва 2012. Что, на ваш взгляд, самое интересное или важное из того, что произошло за последнее время в мире RoR?
Я думаю, что Rails 6 был впечатляющим релизом.
Новые основные компоненты, поддержка нескольких баз данных, параллельное тестирование; новый погрузчик, «отдающий в историю» всем известные грабли-автозагрузчики.
Вы зарабатываете на жизнь консультантом по Rails. Что это дало вам как программисту? Главным образом, это дало мне опыт и знания, которых не могла дать обычная работа.
Консалтинг обогащает. Каждая компания и каждая команда уникальны.
Вы знакомы с различными сферами бизнеса, культурами, рабочими процессами, архитектурами, особенностями и предпочтениями.
Адаптация к меняющейся среде и сложные задачи помогают отточить навыки решения проблем.
Продолжая предыдущий вопрос, исходя из вашего опыта, о чем следует помнить разработчикам Rails? Разработчикам сначала необходимо как можно глубже знать Ruby и Rails. Это означает чтение книг и документации, а не случайных сообщений в блогах.
Мастер должен владеть своим инструментом.
Например, вам необходимо хорошо разбираться в SQL, чтобы Active Record была катализатором процесса, а не черным ящиком.
Используйте Active Record, чтобы легко и безопасно генерировать SQL-код, который в противном случае был бы написан вручную, и легко обрабатывать полученные наборы данных.
Хорошее понимание HTTP важно, поскольку это язык, на котором приложение разговаривает с внешним миром (включая, не забывайте, WebSockets).
Есть много других вещей, о которых следует помнить, но я бы особенно выделил производительность.
Вам нужно знать, как проводить тесты, вам нужно знать о ГВЛ в МРТ и все такое.
Находите ресурсы по теме, изучайте их, развивайте осознанную интуицию.
Действительно ли Ruby является языком, который делает умы программистов лучше? Как получить от этого максимальную пользу? Лично я скептически отношусь к таким обобщениям.
Ruby волнует меня, а Scala волнует программистов Scala. Я использую Perl уже много лет, и он мне нравится, но многим он не нравится.
Разные мозги находят удовольствие в разных формализмах, и даже ваши собственные предпочтения могут со временем измениться.
Вам как программисту лучше использовать как можно больше языков и парадигм.
Языком, который сломал мне мозг, был Пролог.
Больше всего на меня повлияла парадигма «литературного программирования» в стиле Кнута.
Пройдя через эти совершенно разные способы программирования, вы становитесь лучше.
Я считаю Ruby особенно гибким и высокоуровневым.
Мышление высокого уровня помогает рассуждать «ближе к проблеме».
Именно это меня и привлекает в языках очень высокого уровня (VHLL).
По образованию я математик и могу работать с любым формализмом, который мне предлагают; Языки программирования здесь — детские игрушки.
Например, полнота по Тьюрингу — это не то же самое, что практическая эквивалентность.
Трудно придумать что-то лучше, чем VHLL, для решения реальных задач.
Вы чувствуете себя действительно сильным и продуктивным, потому что здесь меньше искусственной сложности и вы можете лучше сконцентрироваться на реальном решении проблемы.
Решение реальных задач — вот что побудило меня продолжить карьеру в программировании.
В общем, «там, где нужно С, берите С».
Мы делаем конференцию скорее «Ruby», чем «on Rails».
Какие варианты использования Ruby существуют помимо Rails или даже за пределами веб-разработки? Если я правильно помню, первой программой Ruby, которую я использовал, был менеджер портов/пакетов FreeBSD. Это было в начале 2000-х, еще до появления Rails. Популярное программное обеспечение Ruby, не имеющее прямого отношения к веб-разработке, — это Vagrant, Metasploit, Jekyll, Chef, Puppet или Homebrew. Кроме того, системы в компаниях Rails редко состоят только из веб-интерфейса.
Обычно существует целая экосистема программного обеспечения.
Компания, основным языком которой является Ruby, обычно также имеет серверное программное обеспечение на чистом Ruby (возможно, в сочетании с другими технологиями).
Например, в компании Stuart Delivery, которую я сейчас консультирую, я только что внедрил сервис, который принимает сообщения, поступающие из Kafka в Redis, для обработки сотрудниками Sidekiq. Также мы работали над нетривиальным проектом миграции данных и суперинтересным бизнес-эмулятором.
Все написано на чистом Ruby. Бэкэнд-интерфейс компании — это Rails, но «за кулисами» и по всей платформе существует еще много разных программ и языков.
Это частое явление в моей практике.
Время спойлеров — о чем будет ваш доклад на RubyRussia 2019? Я расскажу о Zeitwerk, новой жемчужине Ruby, которая реализует автозагрузку, перезагрузку и активную загрузку для проектов Ruby. Rails 6 по умолчанию делегирует эти функции Zeitwerk. Какое у вас лучшее впечатление от мира Ruby? Возможно, код, технология, знания или отношение? Это субъективное впечатление, но я думаю, что мир Ruby удивительно инновационный.
Мы говорили об этом с Теренсом Ли некоторое время назад. Начнем с того, что, думаю, трудно не согласиться с утверждением, что Rails представляет собой настоящую революцию в веб-разработке.
Такие компании, как Heroku, New Relic, Shopify или GitHub, были просто революционными.
Однако, по моему опыту, люди, которые тяготеют в первую очередь к определенным сообществам, в некоторой степени слепы к тому, что происходит в сообществах по соседству.
Я считаю, что инновации можно найти в любом сообществе, будь то Scala, Haskell или даже Brainfuck. Итак, если бы я мог глобально наблюдать за каждым сообществом, я бы обнаружил, что сообщество Ruby не является особенно инновационным, потому что все они в некоторой степени инновационны.
На ваш взгляд, нужно ли Rails что-то вроде стандартной библиотеки компонентов CMS? Например, леса для сборки стандартных деталей CMS? На мой взгляд, это немного выходит за рамки Rails. Позвольте мне также использовать этот вопрос, чтобы прокомментировать, что скаффолды — это просто доступный способ провести быструю демонстрацию на конференции или создать приложение, чтобы что-то протестировать, воспроизвести ошибку, посмотреть, как работает определенная функция.
Лесов "в бою" я никогда не видел, для практического использования они не пригодны.
Современные решения, как правило, неоднородны: мы можем использовать Julia для машинного обучения, Java для тяжелых бизнес-задач.
Предоставляет ли Ruby достаточно инструментов для языкового взаимодействия? Есть ли инструменты, которые облегчат это? JRuby изначально взаимодействует с Java. Вы можете писать расширения C для MRI, вы можете переносимо обертывать библиотеки C с помощью FFI, а Helix позволяет писать расширения на Rust. Вообще говоря, с процессами проще взаимодействовать стандартными способами, используя файловую систему, сокеты, HTTP, базы данных, gRPC, брокеры сообщений.
Как многие заметили, Ruby больше не является «новым и блестящим».
Теперь это больше «старый добрый язык».
Студенты, с другой стороны, молоды.
Как мотивировать их интерес к изучению Ruby? В 2000-х годах я в свободное время в течение семи лет преподавал Perl студентам Барселонского университета.
До моего курса они занимались в основном C и Java, а я преподавал скриптовые языки на примере Perl. Это было очень весело.
Что вам нужно, так это увлекательная программа, которая одновременно обучает программированию, подчеркивает возможности этих языков и позволяет вам глубже разобраться в конкретных вариантах выбора.
В случае Ruby это варьируется от простых реализаций ООП до фантастических возможностей метапрограммирования.
Например, вы можете показать, как работает модель Active Record, без единой строчки кода в теле класса.
На выбор есть десятки языков программирования.
Почему стоит выбрать Ruby, почему не Python или JavaScript, а как насчет Clojure, Rust, C++, Go? Все варианты спорны, или наоборот – это все отличные варианты.
Выберите один, сделайте курс запоминающимся, заставьте студентов изучать программирование, лучшие практики, концепции идиом, позвольте им научиться проверять документацию, исследовать важные связанные вопросы, выходящие за рамки формализма.
Это то, что заставит их вырасти, фундаментально подготовит их к профессии.
На мой взгляд, в этом заключается роль университета.
Есть много разных инструментов для одного и того же: Core Rails с Active Record, Dry-rb и другие.
Должны ли мы искать альтернативы? Разве они не делают Rails «дорожками» вместо «путей»? Во многом это зависит от индивидуальных предпочтений.
Вам обязательно следует изучить и понять подходящие вам комбинации инструментов, слоев, узоров.
Важно помнить, что «способ Rails» не означает «сбрасывать все приложение в папки по умолчанию».
Это распространенное заблуждение.
Вам нужны декораторы? Объекты обслуживания, ПОРО? Большой! Это не противоречит так называемому «Пути Rails».
Rails предоставляет стандартный набор абстракций и организации кода, который, по нашему мнению, достаточно хорош для многих применений, по крайней мере, в качестве отправной точки.
А затем, если вам нравится записывать действия контроллера в виде однострочных строк, которые перекладывают всю работу на сервисные объекты, вы можете сделать это таким образом.
Некоторым людям это может не понравиться.
Разные люди, разные мозги.
До встречи на RubyРоссия! Напомним, конференция уже в эту субботу, Регистрация Все еще открыт. Будут не только доклады, но и стенды лучших компаний: Организатор - Еврон Генеральный партнер - Топтал Золотой партнер - Гетт Серебряные партнеры - Валарм , JetBrains , букмекер И Кэшвагон Бронзовый партнер - В продаже Теги: #Интервью #Конференции #конференция #ruby #ruby onrails #интервью #ror #railsclub #railsclub #railsclub #railsclub #rubyrussia #rubyrussia
-
Грин, Томас Хилл
19 Oct, 24 -
Вы Уже Пишете Движок Социальной Сети? :)
19 Oct, 24