Найти в Дзене
Журнал «Код»

Что такое 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, или «не повто
Оглавление

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

В разработке есть устойчивые принципы, которые действуют для всех языков программирования. Один из них — 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 позволяет легко создавать, читать, обновлять и удалять объекты. Например:

-2

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

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

-3

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

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

-4

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

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

Плюсы 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. Подпишитесь, чтобы не пропустить продолжение.