Самоучитель Ruby: Вступление. Подготовительные шаги. Переменные. Обзор типов данных. Комментарии.

Поехали! Ю.А. Гагарин

Вступление

Коль скоро вы решили обратиться к этому самоучителю, я не буду тратить время на долгие рассказы о том, что такое Ruby, когда этот язык появился, кем был создан, какие имеет достоинства и недостатки. На всякий случай лишь скажу, что у него достаточно высокий порог вхождения. Программы, написанные на этом языке, могут быть как простые и понятные, так и сложные и запутанные, так что спустя полгода будет сложно разобраться в написанном - всё зависит от мастерства программиста. Ruby имеет ряд достаточно сложных концепций и отличительных особенностей, ведь он был вдохновлён, в том числе, семейством функциональных языков программирования Lisp. Тем не менее, овладев этим языком, вы поймёте, что для создания полезных программных продуктов не обязательно писать тысячи строк кода - программы на Ruby зачастую получаются ёмкие и выразительные. Кроме того, изучив Ruby, можно будет перейти к такому замечательному веб-фреймворку как Rails, который за последние годы стал весьма популярен. Я, в свою очередь, сделаю всё возможное, чтобы вы смогли окунуться в увлекательный мир Ruby и узнать как можно больше нового. Начнём!

Внимание! Данный самоучитель распространяется под лицензией Creative Commons Attribution-ShareAlike 3.0 только на сайте ilyabodrov.me (и на его псевдониме radiant-wind.com); копирование материала возможно только с указанием оригинального источника. Если на каком-то ресурсе вам пришлось заплатить деньги, чтобы получить доступ к данному самоучителю, я очень рекомендую потребовать возврат средств, а также сообщить мне о данном факте. Спасибо за понимание.

Об авторе

Меня зовут Илья, я специалист IT и web-программист (опыт работы более 8 лет). Я написал более тридцати пяти статей по Ruby и Rails, записал около десятка скринкастов по автоматизированному тестированию и метапрограммированию и создал курс по BackboneJS. Кроме того, я даю частные уроки по программированию для людей со всего мира, работаю преподавателем в МАИ, занимаюсь фрилансом и участвую в проектах Open Source. Более подробно обо мне можно прочитать на главной странице данного сайта. Я очень люблю помогать людям и делиться своими знаниями, именно поэтому я решил написать данный самоучитель по Ruby.

Полезные ссылки

Подготовка

В данном самоучителе я предполагаю, что вы используете Ruby версии 2 и выше (самой свежей версией на момент написания самоучителя является 2.3.1). Информацию об установке Ruby на различные платформы можно найти на официальном сайте; там же перечислены существующие менеджеры Ruby (RVM, uru и другие). Эти менеджеры нужны для того, чтобы легко переключаться между разными версиями Ruby на одной машине. Впрочем, устанавливать менеджер для прохождения данного курса необязательно. Отдельное замечание для пользователей Windows: вам потребуется использовать RubyInstaller, а также отдельно установить Development Kit, выбрав нужную версию из списка внизу (инструкции по установке находятся здесь). Development Kit нужен для того, чтобы компилировать под Windows некоторые библиотеки для Ruby, написанные на C/C++.

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

  • Notepad++ (очень прост и удобен в использовании, поддерживает массу языков);
  • vim (его предпочитают многие опытные программисты);
  • Sublime Text 2;
  • Можете попробовать различные интегрированные среды разработки (IDE): Aptana Studio, Komodo, RubyMine и прочие, но я бы пока от них отказался. IDE хороши при написании сложных проектов (например, на Rails), но для простых упражнений они громоздки и требуют значительно больше ресурсов, чем простые редакторы.

Система контроля версий Git (дополнительный раздел)

Создавая всё более и более сложные проекты, со временем вы ощущите потребность хранить различные версии вашего программного кода. Конечно, это можно делать путём создания файлов my_file.rb my_file_backup.rb my_file_2016.rb my_file_new_2016.rb и т.п., но в них очень легко запутаться. Именно поэтому были придуманы системы контроля версий, и Git - одна из самых популярных из них (особенно среди разработчиков Ruby). Подробное обсуждение Git не входит в цели данного курса (на официальном сайте можно найти очень подробное руководство), поэтому пока запомним, что система контроля версий позволяет отслеживать изменения, сделанные в проекте, перемещаться по истории изменений и отменять некорректные.

Чтобы начать работу с Git, необходимо в первую очередь установить клиент Git для вашей ОС. Затем выполните две команды для первичной настройки:

git config --global user.name "Name"
git config --global user.email email@example.com

Таким образом вы идентифицируете себя; в истории изменений проекта будет указано ваше имя для каждого сделанного вами изменения. Далее в терминале перейдите в нужную директорию с помощью команды cd и выполните

git init

чтобы инициализировать отслеживание изменений. Команда

git add -A

добавляет все файлы в репозиторий (хранилище) Git.

git commit -m "Initial commit"

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

Помимо всего прочего, вы можете опубликовать свой проект в Интернете, например, чтобы попросить помощи для решения какой-либо ошибки или для демонстрации своих навыков работодателю. Существует два основных web-сайта, совместимых с Git: GitHub (стандарт де-факто для большинства разработчиков Ruby, чрезвычайно популярный ресурс, который, кстати, написан на Rails) и BitBucket (его преимущество в том, что он позволяет бесплатно создавать приватные, закрытые хранилища, тогда как на GitHub за это придётся платить). Регистрация на обоих сайтах чрезвычайно проста, а руководство по настройке можно найти здесь (GitHub) и здесь (BitBucket).

Проделав все необходимые манипуляции и создав свой репозиторий (хранилище), вы можете опубликовать изменения с помощью команды

git push

GitHub и BitBucket предлагают такой полезный функционал, как вики-страницы (например, для написания документации к программе), трекер ошибок, статистику проекта и прочее. Настройка и использование одного из этих сайтов (равно как и Git в целом) совершенно необязательна для успешного завершения данного курса, но в дальнейшем я настоятельно советую потратить некоторое время на их изучение. Поверьте, в них нет ничего сложного.

Работа с терминалом

Запуск программ Ruby осуществляется из командной строки (терминала). Конечно, вы можете использовать стандартный терминал, доступный в вашей ОС, но для Linux я очень советую установить tmux (terminal multiplexer), а для Windows - ConEmu. Данные решения позволяют запускать сразу несколько терминалов из одного окна, что весьма удобно. Для запуска программы используйте команду

ruby my_file.rb

Здесь ruby - это название команды, а my_file.rb - файл с программой (обратите внимание на расширение .rb).

Кроме того, существует полезная интерактивная консоль Ruby (Interactive Ruby), вызываемая командой

irb

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

Переменные, типы данных, комментарии

Ruby - язык программирования, который использует динамическую типизацию с забавным названием "утиная": "если нечто выглядит как утка и крякает как утка, то весьма вероятно, что это утка". Как сообщает Википедия, это означает, что "границы использования объекта определяются его текущим набором методов и свойств, в противоположность наследованию от определённого класса".

Первое, что нужно запомнить: тип данных переменной не нужно явно указывать, как это делается в языках вроде C или Java. Это значит, что такая программа

new_string = 'my string'

вполне корректна. Здесь мы создаём новую переменную с именем new_string и присваем ей строковое значение 'my string'. В дальнейшем мы узнаем, что переменные имеют разные области видимости, но пока не будем на этом останавливаться. Никаких главных процедур (например, как в C#) объявлять не надо - мы только что написали первую программу на Ruby, состояющую из одной строки.

Кстати, давайте договоримся сразу, что будем называть наши переменные по мере возможности осмысленно (не a, b, c), писать их имена прописными буками, разделяя отдельные слова нижним подчёркиванием _. Такое именование называется "snake case" (т.к. нижнее подчёркивание напоминает змею) и используется большинством программистов Ruby.

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

  • Строки
  • Числа
  • Логические значения
  • Массивы
  • Хэши
  • Символы

В листинге, приведённом чуть выше, мы создали строковую переменную, однако по ходу выполнения программы ничто не мешает этой переменной принять, например, логическое значение:

new_string = 'my string'
# more code
new_string = false

Это не будет ошибкой, но так делать не рекомендуется, дабы не усложнять программу без нужды.

Комментарии

Обратите внимание на строку # more code - это однострочный комментарий, который должен начинаться с символа решётки #. Писать комментарии для своего кода (особенно для сложных конструкций) является хорошей практикой; это особенно важно при работе в команде. Комментарии бывают не только однострочные, но и многострочные. Таким комментарии полезны если, например, нужно кратко описать назначение какого-либо метода.

=begin
Anything can be written
between begin and end.
This is an example of
a multiline comment.
=end
new_string = 'test'

Все строки, располагающиеся между =begin и =end, являются комментарием и не будут интерпретированы. Строка 7 - уже не комментарий, а код, объявляющий новую строковую переменную. Обратите внимание, что комментарии лучше писать на английском языке, особенно для проектов, которые вы выкладываете в общий доступ на такие сайты, как GitHub и BitBucket - так код будет проще понять разработчикам со всего мира.

Заключение

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

Хотите узнать больше? Нужна консультация? Запишитесь на частный урок прямо сейчас и я свяжусь с вами в течение ближайших 24 часов! Вместе мы обязательно сумеем решить возникшую проблему :).

Follow me on Twitter to get updates about new articles >>

Comments

Please authorize via one of the following social networks to leave a comment: