Skip to content

Примеры к книге "Самоучитель Ruby. Игорь Симдянов"

Notifications You must be signed in to change notification settings

igorsimdyanov/ruby

Repository files navigation

Самоучитель Ruby

Примеры к книге "Самоучитель Ruby"

обложка книги

Цель книги

Цель книги — полное и последовательное изложение языка программирования Ruby. Книга рассчитана как на начинающих разработчиков, не владеющих ни одним языком программирования, так и на опытных программистов, желающих освоить Ruby. Ruby-разработчикам со стажем книга так же будет полезна, поскольку освещает нововведения языка, начиная с версии 2.0 до версии 2.6.

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

Как создавалась книга...

Книга была написана за 6 месяцев, однако подготовка к ее созданию заняла 7 лет, на протяжении которых я работал Ruby-разработчиком в компаниях Newsmedia, Rambler&Co и Mail.ru. В каждой из них вел авторские курсы, посвященные программированию баз данных, программированию на Ruby, автоматическому тестированию и веб-программированию с использованием фреймворка Ruby on Rails. Однако большая часть времени была посвящена разработке Ruby-проектов: портал Rambler.ru, телеканал Life, газета izvestia.ru.

Об авторе

Симдянов Игорь Вячеславович, разработчик с 20 летним стажем, ведущий разработчик группы компаний Rambler&Co, преподаватель и методист GeekBrains (Mail.ru). Автор двух десятков книг по веб-разработке и базам данных.

Приобретение книги

Купить бумажную книгу в книжных Интернет-магазинах

Помощь и отзывы

Раздел Issues

Содержание

Предисловие

  • Цель книги
  • Как создавалась книг
  • Терминология
  • Исходные коды
  • Задания
  • Типографские соглашения
  • Благодарности
  • Философия Ruby
  • Реализации Ruby
  • Версии
  • Установка Ruby
  • Запуск программы на выполнение
  • Задания
  • Соглашения Ruby
  • Комментарии
  • Элементы языка
  • Вывод в стандартный поток
  • Как пользоваться документацией?
  • Задания
  • Утилиты
  • Интерактивный Ruby
  • Шаблонизатор erb
  • Утилита rake
  • Утилита rdoc
  • Гемы
  • Задания
  • Синтаксические конструкторы
  • Строки. Класс String
  • Символы. Класс Symbol
  • Целые числа. Класс Integer
  • Вещественные числа. Класс Float
  • Диапазоны. Класс Range
  • Массивы. Класс Array
  • Хэши. Класс Hash
  • Логические объекты true и false
  • Объект nil
  • Задания
  • Типы переменных
  • Присваивание
  • Клонирование
  • Задания
  • Создание и определение констант
  • Предопределенные константы
  • Ключевые слова __LINE__ и __FILE__
  • Метод require
  • Метод require_relative
  • Подключение стандартных классов
  • Подключение гемов
  • Задания
  • Операторы — это методы
  • Арифметические операторы
  • Присваивание
  • Операторы строк
  • Операторы сравнения
  • Поразрядные операторы
  • Оператор безопасного вызов
  • Ключевое слово defined?
  • Приоритет операторов
  • Задания
  • Ключевое слово if
  • Логические операторы
  • Ключевое слово unless
  • Условный оператор
  • Ключевое слово case
  • Советы
  • Задания
  • Создание метод
  • Параметры и аргументы
  • Возвращаемое значение
  • Получатель метода
  • Псевдонимы методов
  • Удаление метода
  • Рекурсивные методы
  • Предопределенные методы
  • Логические методы
  • bang-методы
  • Задания
  • Цикл while
  • Вложенные циклы
  • Досрочное прекращение циклов
  • Цикл until
  • Цикл for
  • Задания
  • Итераторы и блоки
  • Обход итераторами массивов и хэшей
  • Итератор times
  • Итераторы upto и downto
  • Итераторы коллекций
  • Итератор tap
  • Сокращенная форма итераторов
  • Досрочное прекращение итерации
  • Класс Enumerator
  • Задания
  • Блоки в собственных методах
  • Передача значений в блок
  • Метод block_given?
  • Возврат значений из блока
  • Итератор yield_self
  • Передача блока через парамет
  • Различие { ... } и do ... end
  • Блоки в рекурсивных методах
  • Класс Proc
  • Методы proc и lambda
  • Различия proc и lambda
  • Задания
  • Создание класса
  • Класс — это объект
  • Как проектировать классы?
  • Переопределение методов
  • Открытие класса
  • Тело класса и его свойства
  • Вложенные классы
  • Константы
  • Переменные класса
  • Задания
  • Сохранение состояния в объекте
  • Установка начального состояния объекта
  • Специальные методы присваивания
  • Синглетон-методы
  • Методы класса
  • Обработка несуществующих методов
  • Метод send
  • Задания
  • Сложение строк и чисел
  • Методы преобразования объектов
  • Сложение объектов
  • Сложение объекта и числа
  • Сложение объекта и строки
  • Сложение объекта и массива
  • Перегрузка [] и []=
  • Перегрузка унарных операторов +, и !
  • Какие операторы можно перегружать?
  • DuckType-типизация
  • Задания
  • Ссылки на текущий объект
  • Значения self в разных контекстах
  • Приемы использования self
  • Задания
  • Наследование
  • Логические операторы
  • Динамический базовый класс
  • Наследование констант
  • Иерархия стандартных классов
  • Переопределение методов
  • Удаление методов
  • Поиск метода
  • Задания
  • Концепция видимости
  • Открытые методы
  • Закрытые методы
  • Защищенные методы
  • Закрытый конструктор
  • Паттерн «Одиночка» (Singleton)
  • Вызов закрытых методов
  • Информационные методы
  • Области видимости при наследовании
  • Области видимости методов класса
  • Задания
  • Создание модуля
  • Оператор разрешения области видимости
  • Пространство имен
  • Вложенные классы и модули
  • Доступ к глобальным классам и модулям
  • Задания
  • Класс Module
  • Подмешивание модулей в класс
  • Подмешивание модулей в объект
  • Синглетон-методы модуля
  • Области видимости
  • Стандартный модуль Kernel
  • Поиск методов в модулях
  • Метод prepend
  • Методы обратного вызова
  • Уточнения
  • Псевдонимы методов
  • Задания
  • Модуль Math
  • Модуль Singleton
  • Модуль Comparable
  • Модуль Enumerable
  • Модуль Forwardable
  • Маршаллизация
  • JSON-формат
  • YAML-формат
  • Задания
  • Общие методы
  • Неизменяемые объекты
  • Заморозка объектов
  • Небезопасные объекты
  • Задания
  • Модуль Enumerable
  • Заполнение массива
  • Извлечение элементов
  • Поиск индексов элементов
  • Случайный элемент массива
  • Удаление элементов
  • Замена элементов
  • Информация о массиве
  • Преобразование массива
  • Арифметические операции с массивами
  • Логические методы
  • Вложенные массивы
  • Итераторы
  • Сортировка массивов
  • Задания
  • Создание хэша
  • Заполнение хэша
  • Извлечение элементов
  • Поиск ключа
  • Обращение к несуществующему ключу
  • Удаление элементов хэша
  • Информация о хэшах
  • Хэши как аргументы методов
  • Объединение хэшей
  • Преобразование хэшей
  • Сравнение ключей
  • Преобразование ключей хэша
  • Задания
  • Множество Set
  • Класс Struct
  • Класс OpenStruct
  • Задания
  • Генерация и перехват исключений
  • Исключения — это объекты
  • Стандартные ошибки
  • Создание собственных исключений
  • Перехват исключений
  • Многократная попытка выполнить код
  • Перехват исключений: почти всегда плохо
  • Блок ensure
  • Блок else
  • Перехват исключений в блоке
  • Задания
  • Класс IO
  • Создание файла
  • Режимы открытия файла
  • Закрытие файла
  • Чтение содержимого файла
  • Построчное чтение файла
  • Запись в файл
  • Произвольный доступ к файлу
  • Пути к файлам
  • Манипуляция файлами
  • Задания
  • Типы файлов
  • Определение типа файла
  • Время последнего доступа к файлу
  • Права доступа вUNIX-подобной системе
  • Задания
  • Текущий каталог
  • Создание каталога
  • Чтение каталога
  • Фильтрация содержимого каталога
  • Рекурсивный обход каталога
  • Удаление каталога
  • Задания
  • Как изучать регулярные выражения?
  • Синтаксический конструктор
  • Оператор =~
  • Методы поиска
  • Синтаксис регулярных выражений
  • Модификаторы
  • Где использовать регулярные выражения?
  • Примеры
  • Задания
  • Протокол HTTP
  • Веб-серверы
  • Гем Rack
  • Ruby on Rails
  • Задания
  • Типы тестирования
  • Преимущества и недостатки тестирования
  • Фреймворки для тестирования
  • Задания

Заключение

Приложение 1. Справочные таблицы

Приложение 2. Содержимое электронного архива

About

Примеры к книге "Самоучитель Ruby. Игорь Симдянов"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages