«Ruby для меня — это отличный инструмент»

в 14:04, , рубрики: DRY, hanami, ROM, ruby, ruby on rails, Trailblazer, Блог компании Нетология, ооп

25 марта университет интернет-профессий «Нетология» совместно с сообществом ruby-разработчиков Moscow.rb провел митап на тему альтернативных решений в мире Ruby. Выясняем, есть ли нетривиальный Ruby и что-то кроме «рельсы», а также за что любить этот язык программирования.

image

Закрытый «камерный» митап с традиционным афтепати привлек чуть больше пятидесяти разработчиков. Три доклада и одна прямая речь основателя ruby-сообщества Антона Давыдова. Изначально и планировалась теплая ламповая атмосфера, в которой можно пообщаться и заодно узнать, насколько язык программирования Ruby популярен и важен для российского ИТ-сообщества.

Никита Шильников рассказывал о библиотеке ROM и фреймворке Hanami.

image

«Сейчас я предпочитаю собирать свой стек в проектах, это позволяет мне лучше понимать, как части приложения взаимодействуют друг с другом. Фреймворк должен оставаться открытым к модификации и не брать на себя «слишком много». А Hanami сразу разрабатывался с этим расчетом, и со временем становился все более открытым.

Когда меня спросили: «почему мы должны использовать ROM, а не взять Elixir и Phoenix», я понял, что лично для меня изучение нового языка программирования всегда сравнительно простой способ освоить новые подходы. Я могу использовать их в дальнейшем в работе на любом языке. Поэтому надо говорить «да» изучению новых языков. Моя цель в создании окружения на Ruby, которое не будет вынуждать менять стек только потому что он «уже не модный».

Как обычно, для изучения языка лучше всего написать какое-то небольшое приложение или библиотеку, это позволит посмотреть на инструмент под разными углами, лучше познакомиться с ним и начать работать над коммерческими проектами.

Если говорить о ROM, то это библиотека, которая призвана решить проблему работы со слоем хранения данных. ROM — это не ORM. Также же как библиотека Ecto для Elixir — это тоже не ORM. В общем, ROM и Ecto очень похожи. Задача, которую решает ROM — это отделение бизнес-логики приложения от метода хранения данных.

Говоря об основных принципах ROM, важно отметить следующее:

  • В ROM нет глобального состояния. Это большой плюс для разработчика: есть возможность контролировать то, куда пробрасывается локальное состояние.
  • В ROM почти все не мутабельно и нет публичного API, который приводит к изменению состояния. Вместо этого API просто возвращает новый объект. Это значительно снижает количество багов.
  • В ROM на основании явного API строятся более высокоуровневые абстракции. Если нужно что-то очень кастомное, то наверняка можно найти точки расширения для решения конкретной задачи.
  • И еще один принцип CQRS — это различные интерфейсы для чтения данных и для их записи. Вместо того, чтобы все прогонять в двух направлениях, есть один путь для чтения данных и другой для записи. Все просто».

image

Антон Давыдов, основатель ruby-сообщества и победитель Ruby Hero Russia Award 2016, еще более категоричен в выборе языка:

«Ruby для меня — это отличный инструмент, который позволяет получать максимум пользы от моего опыта разработчика и прокачивать скиллы. У этого языка одно из наиболее развитых сообществ, в котором поддержку и понимание найдёт как начинающий девелопер, так и опытный программист.

В Ruby много альтернативных решений, аналогов которым нет ни в одном другом языке. У всех на слуху фреймворк Ruby on Rails, но есть еще фреймворк Hanami, библиотеки ROM, Dry и Trailblazer.

Примерно 2 года назад я работал в небольшой компании, где не проводилось никаких тимбилдингов и прочих неофициальных мероприятий. В результате ты как будто живешь в информационном вакууме: тебе не с кем поделиться опытом и получить совет, всё профессиональное общение происходит в основном онлайн. Я решил, что с такой проблемой могут столкнуться многие разработчики, особенно те, кто работает удаленно. Создал сайт и твиттер Moscow.rb и начал проводить дринкапы в разных барах. Проект оказался удачным: встречи продолжаются уже 2 года, кому-то это даже помогло найти работу.

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

Многие слышали о ребятах из компании Evrone: они организуют Rails Club, проводят митапы в Рамблере. Я же стараюсь занять более нишевую позицию: делаю камерные мероприятия, где можно в комфортной обстановке пообщаться с известными в узких кругах разработчиками и обсудить насущные проблемы. На некоторых митапах у участников есть возможность проявить себя как спикера, понять, интересно ли расти в этом направлении и выступать на конференциях.

Если же говорить о целях — я понял, что мне просто приятно что-то создавать. Я хочу создать классное окружение единомышленников, здоровую атмосферу взаимопомощи, в которой будут рождаться новые идеи и каждый сможет профессионально развиваться.

Я core-разработчик Hanami, и для меня было делом чести запустить проект на базе этой технологии. Альтернативных решений в комьюнити по-прежнему остерегаются, поэтому я решил на собственном примере показать, как это работает».

image

Митап показал, что все устали от «рельсы» — известного фреймворка, который многие и ассоциируют с самим языком. Но что же на самом деле такое Ruby и за что его любить?

Ruby появился в далеком 1993 году, а первая официальная версия была выкачена спустя пару лет. Создатель языка Юкихиро Мацумото был энтузиастом программирования еще со времен студенчества, однако идея создания собственного инструмента появилась у него гораздо позже. Ruby создавался для написания простых и понятных приложений, потому что Юкихиро был фанатом ООП, поэтому не удивительно, что основной упор делался не на скорость работы программ, а на читабельность кода. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями.

Итак, за что любить Ruby?

  • Код можно читать. Даже вслух, если вам очень хочется.
  • В Ruby не надо много думать, разве что при обозначении переменных и выборе общего алгоритма. Тот самый случай, когда язык и прост, и сложен одновременно.
  • Если вы тот программист, который любит ООП — Ruby точно ваш выбор.
  • Искать ошибку? Нет, не слышал. Вы найдете ее в первых строчках кода, если он кривой.
  • Интеграционные тесты вполне могут быть на русском языке. Если с иностранными языками у вас не сложилось — любите Ruby.
  • Говорят, что ruby-сообщество одно из самых дружелюбных в мире. И форумы в том числе.
  • Библиотеки для работы с текстом, данными и массивными очень мощные. А их краткость и ясность вызывают безграничную любовь. Библиотек, кстати, достаточно много и они актуальные — это хорошо.
  • Скорость написания кода: начинаете проект, вписываете в Gemfile библиотеки, потом вас ждет настройка и всё — первая часть готова. Да-да, именно первая часть.

Достаточно ли этого, чтобы любить Ruby? Нам кажется, что да. Если вы считаете иначе или хотите поддержать нашу любовь к этому объектно-ориентированному языку, то добро пожаловать в комментарии.

Автор: Нетология

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js