Что такое Ruby on Rails и зачем это нужно

Один из важнейших — это DRY, Don’t repeat yourself — «Не повторяйся». Суть этого принципа в том, чтобы избегать дублирования кода и логики, используя уже существующие решения. Этот подход особенно важен в среде Ruby on Rails и является ключевым в ее архитектуре. О нем я вместе со специалистами Kursfinder.ru хочу поговорить сегодня.

Что такое Ruby on Rails

Rails — фреймворк, который используется при разработке сайтов и приложений. Другими словами, это уже готовая платформа, которая имеет собственные инструменты, структуру, модули и т. д. Эти элементы позволяет ускорить разработку. Кстати, освоить фреймворк в короткие сроки вам помогут курсы Ruby on Rails из нашей подборки.

Rails используется для программирования на ООП-языке Ruby. Язык основан на идеи «потребности человека выше компьютерных». Другими словами, Ruby является простым в использовании языком сценариев. Rails создан так, чтобы еще больше упростить решение рабочих задач за счет двух основных принципов:

  1. DRY, о котором я уже говорила в начале статьи. Его необходимо соблюдать, так как Railsобрабатывает единый для всех приложений код, который повторяется и позволяет уменьшить потребность в написании лишних строк. На практике это выглядит следующим образом:
  • чтобы повторно использовать и поддерживать работу контроллеров создается сервис, решающий определенную задачу и дает конечный ответ контроллерам;
  • модели остаются пригодными для повторного применения за счет концернов — расширений стандартных модулей;
  • функции пишутся таким образом, что их можно применять в разных местах;
  • выполняется создание общего контроллера, наследующего свойства от контроллера действий, общий контроллер, который наследует свойства от контроллера действий, а они, в свою очередь, наследуются прочими контроллерами;
  • из-за того, что не требуется писать одну и ту же информацию повторно, код на Railsполучается меньше, проще, он легче масштабируется и в нем меньше ошибок.
  1. «Соглашение важнее конфигурации». Принцип, который говорит о том, что в процессе разработки нужно следовать соглашениям, определенным инфраструктурой, а не менять конфигурацию самой платформы. На практике это выглядит так:
  • при наличии таблицы с названием userсоздается файл модели user.rb в папке моделей;
  • в случае, когда запрос поступает к пользовательскому контроллеру и функции индексирования, файл представления будет располагаться в views→ users под названием index.html.erb или index.html.haml.

Для чего нужен фреймворк, где его используют

Ruby on Rails — это fullstack-фреймворк, который применяется как для серверной разработки, так и для создания пользовательских интерфейсов. Серверная часть включает модели, контроллеры, маршрутизацию, а также инструменты для работы с базами данных и обработки запросов от клиента. Компоненты интерфейса включают представления и шаблоны. Шаблоны часто используются для авторизации и аутентификации, чтобы определить, предоставлять ли доступ к закрытым разделам сайта.

Rails находят применение в различных сферах:

  • интернет-магазины — фреймворк включает инструменты для e-commerce, обработки заказов, платежей и других функций;
  • социальные сети и платформы для обмена мультимедийными файлами;
  • системы для управления проектами и задачами;
  • сервисы бронирования и аренды (жилье, автомобили, билеты и т. д.);
  • образовательные платформы и онлайн-курсы;
  • новостные сайты и блоги с большим объемом контента.

Множество известных сайтов и приложений работают на Ruby on Rails, среди них: Twitch, Ask.fm, Kickstarter и Bloomberg.

Как работает Ruby on Rails

Работа Rails основывается на архитектурном шаблоне Model-View-Controller (MVC), что переводится как «Модель — Представление — Контроллер». Для лучшего понимания этой структуры рассмотрим пример интернет-магазина, торгующего товарами.

Модели — это шаблоны данных, которые применяются в приложении или на сайте. В контексте интернет-магазина модели представляют данные о товарах или других объектах.

Rails упрощает настройку таблиц базы данных, используя язык Ruby, благодаря чему разработчикам не нужно писать запросы на SQL. Модель служит местом для хранения данных, создания новых методов, определения областей видимости и других логических операций с базой данных.

Представление — это код, который формирует данные, отправляемые в браузер в ответ на запрос, поступивший на сервер. Этот код записывается в файл show.html.erb и может выглядеть следующим образом: