Ruby язык программирования доклад

Обновлено: 14.06.2024

Удивляетесь, почему Ruby так популярен? Его поклонники называют его красивым, искусным языком. И в то же время они говорят, что он удобный и практичный. Что же перевешивает?

Идеалы создателя Ruby

Ruby – это тщательно сбалансированный язык. Его создатель Юкихиро Мацумото (также известный как “Matz”), объединил части его любимых языков (Perl, Smalltalk, Eiffel, Ada и Lisp) чтобы сформировать новый язык, в котором парадигма функционального программирования сбалансирована принципами императивного программирования.

Основываясь на этом, он добавляет:

Ruby прост на вид, но очень сложен внутри, подобно человеческому телу 1 .

Рост популярности Ruby

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

Индекс TIOBE, который измеряет рост популярности языков программирования, помещает Ruby в десятку общепризнанных языков программирования. Во многом, рост популярности языка приписывается популярности программного обеспечения, написанного на Ruby, в особенности – Ruby on Rails, фреймворку для разработки веб-приложений.

Ruby также абсолютно открыт. Открыт для бесплатного использования, изменений, копирования и распространения.

Всё в Ruby – объекты.

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

Во многих языках числа и другие примитивные типы данных не являются объектами. Ruby под влиянием языка Smalltalk позволяет задать методы и переменные объекта всем типам данных. Это упрощает использование Ruby, так как правила применимые к объектам – применимы ко всему Ruby.

Гибкость Ruby

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

Например, сложение выполняется операцией плюс ( + ). Но, если вы хотите использовать для этого более читаемое слово plus – вы можете добавить такой метод прямо в Numeric , внутренний класс языка Ruby.

Операторы в Ruby – синтаксический сахар для методов. Вы также можете переопределить их.

Блоки — по-настоящему выразительная конструкция

Блоки в Ruby также являются отличным источником гибкости. Программист может добавить замыкание к любому методу, описывая, как этот метод должен действовать. Замыкание — это блок, являющийся одной из наиболее популярных конструкций для пришедших в мир Ruby из мира императивных языков программирования, таких как PHP или Visual Basic.

В коде выше блок описан внутри конструкции do . end . Метод map применяет блок кода к представленному списку слов. Многие другие методы в Ruby оставляют путь, открытый для программиста, чтобы тот написал собственный блок кода, детально говорящий методу, что тот должен сделать.

Ruby и примеси

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

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

Визуальное представление Ruby

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

  • var — может быть локальной переменной.
  • @var — переменная объекта.
  • $var — глобальная переменная.

Данная символика повышает читабельность, позволяя программисту легко идентифицировать роль каждой переменной. Это также позволяет не использовать утомительное self. для каждого объекта.

Помимо основ

Ruby полон другими особенностями и конструкциями, и вот некоторые из них:

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

Писать расширения на C в Ruby проще, чем в Perl или Python при помощи очень элегантного API для вызова Ruby из C. Он включает в себя вызовы для встраивания Ruby в программное обеспечение, чтобы использовать его как скриптовый язык. Также доступен интерфейс SWIG.

Ruby может подгружать сторонние библиотеки динамически, если позволяет операционная система.

В Ruby реализованы независимые от операционной системы потоки. Таким образом, на любых платформах, где вы запускаете Ruby, вы также можете использовать многопоточность, не зависимо от того, поддерживает ли данная система потоки или нет. Вы можете использовать возможности многопоточности даже в MS-DOS!

Ruby отличается высокой переносимостью: он был разработан большей частью на GNU/Linux, но работает на многих типах UNIX, macOS, Windows, DOS, BeOS, OS/2, и так далее.

Другие реализации Ruby

Ruby как язык имеет несколько разных реализаций. Данный сайт посвящен реализации MRI (“Matz’s Ruby Interpreter” – Ruby интерпретатор Матца) или CRuby, но также существует несколько других. Они бывают очень полезны в различных ситуациях, предоставляют большую интеграцию с другими языками или окружениями, или имеют возможности, которых нет в MRI.

Гост

ГОСТ

Основные особенности Ruby

Ruby — язык программирования (ЯП), обладающий следующими особенностями:

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

Ruby относится к категориям высокоуровневых, рефлективных и интерпретируемых языков. В нем реализована концепция объектно-ориентированного программирования (классы с полями и методами, наследование, полиморфизм, инкапсуляция, примеси, методы-одиночки, итераторы, замыкания и т.д.).

К уникальным свойствам языка можно отнести:

  • целые числа могут иметь неограниченную длину;
  • собственная модель работы с исключениями;
  • наличие возвращаемых значений у всех операторов;
  • собственная реализация потоков (плюс поддержка потоков UNIX).

В то же время специалисты указывают на следующие недостатки языка:

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

Следствием перечисленных недостатков является сравнительно низкая скорость запуска и выполнения программ.

В настоящее время Ruby поддерживается во всех популярных операционных системах для персональных компьютеров (Windows, Linux, MacOS). Он применяется не только для веб-разработки, но и в качестве скриптового языка для создания административных утилит и настройки приложений.

В качестве скриптового языка Ruby также задействован в таких продуктах, как

  • RPG Maker (RPG Maker XP);
  • RGSS (Ruby Game Scripting System);
  • Amarok;
  • SketchUp;
  • KOffice;
  • WATIR (англ. Web Application Testing in Ruby);
  • Google SketchUp ;
  • XChat.

История развития Ruby

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

Готовые работы на аналогичную тему

Рисунок 1. Юкихиро Мацумото. Автор24 — интернет-биржа студенческих работ

Ruby быстро стал популярным языком. Во второй половине 1990-х и начале 2000-х вышло несколько десятков учебников по нему. В Японии он стал более востребованным, чем даже набравший в то же время огромную популярность Python. С середины 2000-х Ruby приобретает множество приверженцев в США и Европе. С появлением фреймворка Ruby-On-Rails (RoR), пригодного для разработки веб-приложений, язык становится одним из лидеров отрасли.

В начале 2010-х гг. количество программистов, пишущих на Ruby, утроилось по сравнению в концом 1990-х. Учебники и руководства по нему в это время были переведены на основные национальные языки, в том числе русский. В это же время в развитии Ruby произошла некоторая заминка: до версии 1.8 Ruby сохранял совместимость с собственным ранее написанном кодом. Затем разработка разделилась на ветвь, поддерживающую прежний стандарт и версию 1.9.*, (предтеча Ruby 2), где было решено отказаться от устаревшего наследия.

В 2013 г. вышла версия Ruby 2.0. В 2018 г. в версии 2.6 была предпринята попытка повысить скорость работы программ за счет внедрения JIT-компиляции.

В настоящее время рост популярности Ruby несколько приостановился, но он остается востребованным языком для прототипирования и запуска стартапов.

Рисунок 2. Популярность языков для веб-разработки. Автор24 — интернет-биржа студенческих работ

Примеры программы на Ruby

Ruby — объектно-ориентированный язык. В нём даже примитивы (строки, числа) выражены как объекты. Каждая функция является методом того или иного объекта. Переменные в Ruby представляют собой ссылки на объекты, а присваивание представляет собой копирование ссылок. Особенностью Ruby является то, что методы можно добавлять динамически в любые классы и объекты. Например, типичная программа-приветствие может выглядеть так:

Рисунок 3. Вычисление факториала на Ruby. Автор24 — интернет-биржа студенческих работ

fraimed

Содержание

Возможности языка

Философия языка

Юкихиро Мацумото, создателю языка Ruby принадлежат следующие высказывания: "Человек создан для творчества, и я всегда знал, что люблю творить. Увы, я обделён талантом художника или музыканта. Зато умею писать программы."

"Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому я должен уметь быстро и эффективно объяснить ему, что делать."

Установка

Три способа установки Ruby

Вы можете получить копию Ruby несколькими способами, и разные люди предпочитают каждый из трех способов по разным причинам. Каждый будет описан в отдельной секции ниже, но вот краткий обзор:

Существует сторонние инструменты для установки Ruby. Они упрощают установку как совсем новичкам, так и продвинутым пользователям. Компиляция из исходников уже долгие годы является проверенным путем установки приложений. Этот способ знаком большому числу разработчиков приложений. Наконец, некоторые менеджеры пакетов поддерживают Ruby. Данный способ будет наиболее знаком людям, которые предпочитают пользоваться средствами операционной системы.

И наконец, если вы хотите использовать несколько версий Ruby на одной машине, посмотрите секцию сторонних приложений и использования RVM. В ней описан лучший на данный момент способ сделать это, если конечно вы знаете зачем вам это надо.

Сторонние инструменты

Многие руби-программисты используют сторонние инструменты для установки Ruby. Эти инструменты предоставляют различные преимущества, но не все из них официально поддерживаются. В любом случае их сообщество может оказать помощь.

Ruby Version Manager (RVM) – популярный инструмент для установки Ruby. Он позволяет устанавливать и управлять несколькими копиями Ruby в вашей системе, также как и несколькими альтернативными имплементациями Ruby.

RVM доступен для Mac OS X, Linux или любой другой UNIX-подобной операционной системы. Пользователи Windows могут обратить внимание на похожий проект pik или использовать RubyInstaller описанный в следующей секции.

RVM устанавливается следующей командой:

Последние инструкции по установке RVM можно найти на странице установки RVM. Данная команда позволяет установить RVM и последнюю версию Ruby. При помощи RVM можно установить большинство имплементаций Ruby перечисленных ниже. Чтобы посмотреть все поддерживаемые версии, наберите rvm list known.

RubyInstaller

RubyInstaller – проект, помогающий установить Ruby на ОС Windows. Он предоставляет всё, что нужно для настройки полноценного окружения.

Чтобы воспользоваться RubyInstaller, скачайте его со . Далее лишь запустите установщик и все готово!

Если вы устанавливаете Ruby для того, чтобы воспользоваться Rails, вам пригодится RailsInstaller. Он использует RubyInstaller, но предоставляет вам дополнительные инструменты, которые помогут развернуть верное окружение для Rails.

Компиляция из исходного кода

Установка из исходного кода – способ для тех, кто хорошо знаком со своей платформой и кому, возможно, нужны специальные настройки для своего окружения. Это также хорошее решение в случае когда для вашей платформы нет готовых собранных пакетов.

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

  • Текущая стабильная: Ruby 2.2.4
  • Предыдущая стабильная: Ruby 2.1.8
  • Старая стабильная (Из 2.0.0 серии): Ruby 2.0.0-p648
  • Слепки:
    • Стабильный слепок: Это архив свежайшего стабильного слепка текущей стабильной ветки.
    • Nightly слепок: Это архив того что в SVN на данный момент. Может содержать баги и другие проблемы. Используйте на собственный риск.

    Исходный код Ruby доступен по всему миру на нескольких зеркальных сайтах.

    Системы управления пакетами

    Если вы не можете скомпилировать ваш собственный Ruby и не хотите использовать сторонний инструмент для установки – вы можете воспользоваться пакетным менеджером вашей операционной системы.

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

    Ruby на Linux

    Debian GNU/Linux и Ubuntu используют систему управления пакетами apt. Вы можете использовать ее следующим образом:

    Да, данная команда установит Ruby 1.9.2 или новее. Это так называемая “совместимая версия библиотеки” для 1.9.1 судя по имени.

    Arch Linux использует систему управления пакетами pacman. Чтобы получить Ruby, просто напишите следующее:

    На других системах вы можете поискать в репозитории пакетного менеджера вашего дистрибутива. Хотя возможно, верным выбором будет использование RVM.

    Ruby на Mac OS X

    Ruby 1.8.7 полностью поддерживается в Mac OS X Lion так же, как и многие популярные гемы. За подробностями смотрите вики Ruby на Mac OS Forge.

    Mac OS X Tiger поставляется с Ruby версии 1.8.2 и Leopard поставляется с 1.8.6. Но для тех, кто еще не обновился до Leopard, существует множество способов установить последнюю версию Ruby.

    Многие люди на Mac OS X используют Homebrew как пакетный менеджер. И это действительно просто – установить Ruby:

    А также, так как OS X является UNIX-подобной ОС, скачивание и установка из исходного кода настолько же эффективна, как и другие решения. Чтобы помочь вам с установкой новой версии Ruby на OS X, наилучшей идеей будет воспользоваться RVM. Наберите rvm notes, чтобы получить специфичную информацию для вашей операционной системы.

    Подробные инструкции по установке Ruby (и Rails) написал Dan Benjamin: для Tiger, для Leopard, и для Snow Leopard. Данные инструкции помогут вам запустить окружение очень быстро. Для Lion поможет данная инструкция.

    Ruby на Solaris и OpenIndiana

    Чтобы установить Ruby на OpenIndiana, пожалуйста, используйте клиент Image Packaging System, или IPS. Данная система установит последние бинарные файлы Ruby и RubyGems прямо из сетевого репозитория OpenSolaris для Ruby 1.9. Это просто:


    рассказывали об этом языке и профессии Ruby-разработчика. А сегодня попросили преподавателя факультета разработки на Ruby и Ruby on Rails Игоря Симдянова подробнее рассказать о технических особенностях Ruby и дополнительных знаниях и навыках, которые помогут стать успешным Ruby-разработчиком.

    В чём особенности освоения языка Ruby?


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

    Ещё одна особенность заключается в том, что циклические задачи почти всегда решаются при помощи итераторов, а сами циклы почти не используются. Код, в котором присутствуют точки с запятой или куча while-циклов, выдаёт в вас начинающего Ruby-разработчика.

    Таких правил десятки — некоторые даже сложно удержать в голове, поэтому был разработан и даже автоматизирован в виде гема RuboCop Ruby Style Guide. Правила этого гайда предназначены для того, чтобы сделать код легко читаемым и максимально компактным с точки зрения Ruby-сообщества.

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

    С каких языков проще всего переучиться на Ruby-разработчика?

    Синтаксически Ruby довольно самобытен и мало чем похож на другие языки программирования. Поначалу это немного раздражает, но со временем ты понимаешь, что это сделано неспроста, и, будь всё иначе, в Ruby были бы внутренние противоречия.

    Самый близкий по духу язык — это Python, причем версии 3. Далее идут PHP и Perl и вообще все интерпретируемые динамические языки программирования, которые популярны в веб-разработке.

    Впрочем, при переходе с другого языка в любом случае придется переосмысливать каждую синтаксическую конструкцию.

    Какие hard и soft skills нужны для успешной работы с Ruby и Ruby On Rails?

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

    Во-первых, потребуется владение системой контроля версии Git. На мой взгляд, технология не самая простая для начинающих, однако без неё начать работать не получится.

    Во-вторых, язык Ruby — кросс-платформенный, и его можно изучать на любой операционной системе. Однако Ruby on Rails — точнее, экосистема компонентов (гемов) для него, сильно зависит от операционной системы. Для нормальной скоростной работы на Ruby on Rails и доставки результатов работы на сервер потребуется знание основ операционной системы Linux. И в реальной работе Ruby-специалиста, скорее всего, будет ждать Linux или MacOS.

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

    Сейчас веб-разработчики делятся по специализациям. Кто-то хорошо разбирается в backend-части: Ruby on Rails, базах данных, языке Ruby. Кто-то специализируется на frontend-части: визуальном представлении сайта с использованием языка JavaScript, его фреймворков, каскадных таблиц стилей CSS, языка разметки HTML. Если ваша цель — создание сайта в одиночку, то в какой-то мере вам придётся освоить хотя бы азы профессии frontend-разработчика.

    Повторю, что всё вышеперечисленное не требуется для изучения языка программирования Ruby — это скорее требования для работы в качестве специалиста на Ruby on Rails.

    Что касается soft skills, обычно к разработчикам не предъявляют каких-то особенных требований. Конечно, большим плюсом будет уверенный английский — чем лучше вы его знаете, тем больше источников обучения и рабочих мест будет вам доступно. Также, в связи с тем, что сейчас очень много удалённой работы, ценится умение поддерживать себя в тонусе, иметь заряд энтузиазма и горящие глаза, любопытство к новым технологиям, стремление пробовать и разбираться со всем, что будет встречаться на вашем пути.

    Frontend, тестирование, DevOps — зачем это Ruby-разработчику?


    Для начала карьеры в качестве junior-разработчика достаточно изучить сами Ruby и Ruby on Rails. Блоки по тестированию, frontend-разработке и доставке Ruby on Rails на сервер — это уже более углублённое обучение.

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

    Также у нас есть отдельный блок по frontend-разработке. В целом факультет Ruby on Rails строится с уклоном в backend-специализацию, однако студенты, которые хотят стать fullstack-специалистами, на этом курсе могут получить достаточно информации о работе frontend-специалиста.

    Наконец, в курсе, посвященном доставке приложения на Ruby on Rails на сервер, мы будем осваивать основы системного администрирования и DevOps с уклоном в обслуживание приложений. Большая часть курса будет посвящена доставке приложений на Ruby on Rails на сервер и автоматизации этого процесса. Также мы познакомимся с CI/CD, Docker, даже затронем Kubernetes.

    Ruby on Rails — это инструмент для быстрого запуска стартапа в составе компактных команд разработки, а в стартапе вы должны уметь всё: программировать, тестировать, администрировать. Грубо говоря, вы должны суметь запустить новый Twitter двумя сотрудниками. Как мне кажется, эти три курса и готовят студентов к этому.

    Ruby: полезные ресурсы для изучения


    Из-за того, что бум популярности Ruby пришелся только на 2006 год, по нему очень мало литературы — все книги (в том числе и книга самого создателя языка Юкихиро Мацумото) издавались маленькими тиражами или не переводились вообще. Почти все, кто приходят в Ruby, изучают его в основном по англоязычным источникам, поэтому наличие уверенного английского долгое время было дополнительным барьером.

    Из изданной в России литературы могу посоветовать следующие книги:

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

    Ruby — язык программирования, бум популярности которого пришелся на 2006 год и был связан с выпуском фреймворка Ruby on Rails. Он позволяет быстро и с минимальной стоимостью создавать крутые веб-приложения. На Ruby написаны такие известные проекты как GitHub, Airbnb, Twitter, а также сам GeekBrains.

    Ранее мы уже рассказывали об этом языке и профессии Ruby-разработчика. А сегодня попросили преподавателя факультета разработки на Ruby и Ruby on Rails Игоря Симдянова подробнее рассказать о технических особенностях Ruby и дополнительных знаниях и навыках, которые помогут стать успешным Ruby-разработчиком.

    В чём особенности освоения языка Ruby?


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

    Ещё одна особенность заключается в том, что циклические задачи почти всегда решаются при помощи итераторов, а сами циклы почти не используются. Код, в котором присутствуют точки с запятой или куча while-циклов, выдаёт в вас начинающего Ruby-разработчика.

    Таких правил десятки — некоторые даже сложно удержать в голове, поэтому был разработан и даже автоматизирован в виде гема RuboCop Ruby Style Guide. Правила этого гайда предназначены для того, чтобы сделать код легко читаемым и максимально компактным с точки зрения Ruby-сообщества.

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

    С каких языков проще всего переучиться на Ruby-разработчика?

    Синтаксически Ruby довольно самобытен и мало чем похож на другие языки программирования. Поначалу это немного раздражает, но со временем ты понимаешь, что это сделано неспроста, и, будь всё иначе, в Ruby были бы внутренние противоречия.

    Самый близкий по духу язык — это Python, причем версии 3. Далее идут PHP и Perl и вообще все интерпретируемые динамические языки программирования, которые популярны в веб-разработке.

    Впрочем, при переходе с другого языка в любом случае придется переосмысливать каждую синтаксическую конструкцию.

    Какие hard и soft skills нужны для успешной работы с Ruby и Ruby On Rails?

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

    Во-первых, потребуется владение системой контроля версии Git. На мой взгляд, технология не самая простая для начинающих, однако без неё начать работать не получится.

    Во-вторых, язык Ruby — кросс-платформенный, и его можно изучать на любой операционной системе. Однако Ruby on Rails — точнее, экосистема компонентов (гемов) для него, сильно зависит от операционной системы. Для нормальной скоростной работы на Ruby on Rails и доставки результатов работы на сервер потребуется знание основ операционной системы Linux. И в реальной работе Ruby-специалиста, скорее всего, будет ждать Linux или MacOS.

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

    Сейчас веб-разработчики делятся по специализациям. Кто-то хорошо разбирается в backend-части: Ruby on Rails, базах данных, языке Ruby. Кто-то специализируется на frontend-части: визуальном представлении сайта с использованием языка JavaScript, его фреймворков, каскадных таблиц стилей CSS, языка разметки HTML. Если ваша цель — создание сайта в одиночку, то в какой-то мере вам придётся освоить хотя бы азы профессии frontend-разработчика.

    Повторю, что всё вышеперечисленное не требуется для изучения языка программирования Ruby — это скорее требования для работы в качестве специалиста на Ruby on Rails.

    Что касается soft skills, обычно к разработчикам не предъявляют каких-то особенных требований. Конечно, большим плюсом будет уверенный английский — чем лучше вы его знаете, тем больше источников обучения и рабочих мест будет вам доступно. Также, в связи с тем, что сейчас очень много удалённой работы, ценится умение поддерживать себя в тонусе, иметь заряд энтузиазма и горящие глаза, любопытство к новым технологиям, стремление пробовать и разбираться со всем, что будет встречаться на вашем пути.

    Frontend, тестирование, DevOps — зачем это Ruby-разработчику?


    Для начала карьеры в качестве junior-разработчика достаточно изучить сами Ruby и Ruby on Rails. Блоки по тестированию, frontend-разработке и доставке Ruby on Rails на сервер — это уже более углублённое обучение.

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

    Также у нас есть отдельный блок по frontend-разработке. В целом факультет Ruby on Rails строится с уклоном в backend-специализацию, однако студенты, которые хотят стать fullstack-специалистами, на этом курсе могут получить достаточно информации о работе frontend-специалиста.

    Наконец, в курсе, посвященном доставке приложения на Ruby on Rails на сервер, мы будем осваивать основы системного администрирования и DevOps с уклоном в обслуживание приложений. Большая часть курса будет посвящена доставке приложений на Ruby on Rails на сервер и автоматизации этого процесса. Также мы познакомимся с CI/CD, Docker, даже затронем Kubernetes.

    Ruby on Rails — это инструмент для быстрого запуска стартапа в составе компактных команд разработки, а в стартапе вы должны уметь всё: программировать, тестировать, администрировать. Грубо говоря, вы должны суметь запустить новый Twitter двумя сотрудниками. Как мне кажется, эти три курса и готовят студентов к этому.

    Ruby: полезные ресурсы для изучения


    Из-за того, что бум популярности Ruby пришелся только на 2006 год, по нему очень мало литературы — все книги (в том числе и книга самого создателя языка Юкихиро Мацумото) издавались маленькими тиражами или не переводились вообще. Почти все, кто приходят в Ruby, изучают его в основном по англоязычным источникам, поэтому наличие уверенного английского долгое время было дополнительным барьером.

    Из изданной в России литературы могу посоветовать следующие книги:

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

    Читайте также: