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

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

Это когда веб-разработка как по рельсам

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

Что такое Ruby on Rails

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

Фреймворк Rails предназначен для программирования на объектно-ориентированном языке Ruby. В его основе лежит идея «потребности человека выше компьютерных», поэтому Ruby — это простой в использовании язык сценариев. В продолжение этой философии Rails создан таким образом, чтобы сделать процесс разработки как можно проще. Это достигается за счёт двух принципов философии Rails.

1. DRY, или «не повторяйся», о котором мы говорили в самом начале. Его соблюдение состоит в том, что Rails обрабатывает общий для всех приложений повторяющийся код и позволяет писать меньше кода. Вот как это выглядит на практике:

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

Поскольку мы не пишем одну и ту же информацию снова и снова, наш код на Ruby on Rails получается удобнее в сопровождении, более масштабируемым и содержит меньше ошибок.

2. «Соглашение важнее конфигурации». Этот принцип состоит в том, что при разработке нужно следовать соглашениям, которые определены инфраструктурой, а не менять конфигурацию платформы по-своему. Вот как это выглядит на практике:

  • если у нас есть таблица с названием user, мы создаём файл модели под названием user.rb в папке моделей;
  • если запрос поступает к пользовательскому контроллеру и функции индексирования, то файл представления будет находиться в папке views → users под названием index.html.erb или index.html.haml.

Зачем это нужно и где используется

Ruby on Rails — полноценный фулстек-фреймворк, его можно использовать как для разработки серверной части, так и для создания интерфейсов. Для серверных компонентов в нём есть модели, контроллеры и маршрутизация, а также инструменты для работы с базами данных и обработки запросов от клиентской части. Для интерфейсов в Rails есть представления и шаблоны. Например, одно из самых частых применений фреймворка — авторизация и аутентификация пользователя, когда нужно понять, пускать посетителя в закрытую часть сайта или нет.

Rails используют для разработки в таких сферах:

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

На Ruby on Rails создано множество сайтов и приложений, например AirBnB, Twitch, Basecamp, GitHub, SoundCloud, Ask.fm, Kickstarter и Bloomberg.

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

Принцип работы Ruby on Rails основан на архитектуре MVC — Model-View-Controller («Модель — Представление — Контроллер»). Чтобы объяснить эту архитектуру, представим интернет-магазин, в котором есть какие-то товары.

Модель — шаблоны данных, которые будут использованы на сайте или в приложении. В интернет-магазине это код ресурса или объекта, например товара. Модели в Rails — это специальные классы, которые наследуют методы от ActiveRecord::Base. Это такой модуль, который преобразует объекты в реляционную базу данных, например MySQL или PostgreSQL. За счёт этого Rails позволяет легко создавать, читать, обновлять и удалять объекты. Например:

#создаём новый магазин
store = Store.new
#задаём имя магазина
store.name = "Лучшая покупка"
#добавляем описание магазина
store.description = "Магазин электроники..."
#сохраняем магазин
store.save
#находим объект модели и сохраняем его в переменную
s = Store.find_by_name("Лучшая покупка")
#выводим название магазина
s.name
  #добавляем описание переменной
  s.description = "Выставочный зал для Amazon.com"
#обновляем наш магазин в базе данных
s.save
  #удаляем объект из базы данных
  s.destroy

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

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

<!-- отображение товара --!>
<div class="product_show">
<!-- отображение названия товара --!>
<span><%= @product.name %></span>
<!-- отображение описания товара --!>
<span><%= @product.description %></span>
</div>

Обычно это действие отображается внутри какого-то другого файла *.html.erb, который называется макетом и содержит все высокоуровневые элементы в верхних и нижних колонтитулах каждой страницы, на панелях навигации и так далее.

Контроллер — это элемент, который содержит бизнес-логику, центральная единица, которая связывает модели и представления, полагаясь при этом на методы модели. Если мы направим запрос вида /products/4 контроллеру products, то внутри этого контроллера будет метод, чтобы что-то сделать с этим идентификационным номером:

#определяем класс ProductsController как подкласс ApplicationController
class ProductsController < ApplicationController
#определяем внутри класса ProductsController метод отображения товара по идентификатору
  def show
    @product = Product.find_by_id(params[:id])
  end
end

Поток запросов и ответов в архитектуре MVC будет выглядеть так:

  1. Клиент отправляет запрос веб-серверу.
  2. Сервер принимает запрос от компонента контроллера.
  3. Запрос оценивается и пересылается по нужному маршруту. Маршрут интерпретирует запрос и сопоставляет его с методом контроллера.
  4. Контроллер использует модель для доступа к данным из БД, обращаясь с ними согласно требованиям бизнес-логики.
  5. После проверки контроллер упорядочивает данные для представления.
  6. Контроллер отправляется в представление для отображения в index.html.
  7. Получив данные, представление создаёт ответ для отправки обратно на веб-сервер.
  8. Этот HTTP-ответ возвращается клиенту вместе с данными JSON.

Что такое Ruby on Rails

Плюсы Ruby on Rails

Хотя фреймворк Ruby on Rails существует довольно давно, он всё ещё популярен и используется для разработки по многим причинам:

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

С чего начать

Для работы с Ruby on Rails потребуется несколько программ и инструментов:

  1. Язык программирования Ruby — его нужно скачать с официального сайта и установить на компьютер.
  2. RubyGems — пакетный менеджер для Ruby, с помощью которого можно устанавливать и управлять библиотеками и фреймворками. Обычно RubyGems устанавливается вместе с Ruby.
  3. Rails — установить фреймворк можно через командную строку с помощью такой команды:

    gem install rails

  4. Система управления базами данных, например MySQL, PostgreSQL, SQLite и так далее. Установка и настройка СУБД нужна для проектов Rails.

У нас есть несколько статей о базах данных и системах управления ими, почитайте, если интересно:

Изучить Ruby on Rails на русском:

Ресурсы на английском языке:

Что дальше

В следующей статье мы рассмотрим синтаксис и основные конструкции Ruby on Rails. Подпишитесь, чтобы не пропустить продолжение.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy