NRuby

Форк
0

..
/
igorsimdyanov.ruby-master 
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
README.md

Самоучитель 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

Содержание

Предисловие

  • Цель книги
  • Как создавалась книг
  • Терминология
  • Исходные коды
  • Задания
  • Типографские соглашения
  • Благодарности

Глава 1. Введение в язык Ruby

  • Философия Ruby
  • Реализации Ruby
  • Версии
  • Установка Ruby
  • Запуск программы на выполнение
  • Задания

Глава 2. Быстрый старт

  • Соглашения Ruby
  • Комментарии
  • Элементы языка
  • Вывод в стандартный поток
  • Как пользоваться документацией?
  • Задания

Глава 3. Утилиты и гемы

  • Утилиты
  • Интерактивный Ruby
  • Шаблонизатор
    erb
  • Утилита
    rake
  • Утилита
    rdoc
  • Гемы
  • Задания

Глава 4. Предопределенные классы

  • Синтаксические конструкторы
  • Строки. Класс
    String
  • Символы. Класс
    Symbol
  • Целые числа. Класс
    Integer
  • Вещественные числа. Класс
    Float
  • Диапазоны. Класс
    Range
  • Массивы. Класс
    Array
  • Хэши. Класс
    Hash
  • Логические объекты
    true
    и
    false
  • Объект
    nil
  • Задания

Глава 5. Переменные

  • Типы переменных
  • Присваивание
  • Клонирование
  • Задания

Глава 6. Константы

  • Создание и определение констант
  • Предопределенные константы
  • Ключевые слова
    __LINE__
    и
    __FILE__
  • Метод
    require
  • Метод
    require_relative
  • Подключение стандартных классов
  • Подключение гемов
  • Задания

Глава 7. Операторы

  • Операторы — это методы
  • Арифметические операторы
  • Присваивание
  • Операторы строк
  • Операторы сравнения
  • Поразрядные операторы
  • Оператор безопасного вызов
  • Ключевое слово
    defined?
  • Приоритет операторов
  • Задания

Глава 8. Ветвление

  • Ключевое слово
    if
  • Логические операторы
  • Ключевое слово
    unless
  • Условный оператор
  • Ключевое слово
    case
  • Советы
  • Задания

Глава 9. Глобальные методы

  • Создание метод
  • Параметры и аргументы
  • Возвращаемое значение
  • Получатель метода
  • Псевдонимы методов
  • Удаление метода
  • Рекурсивные методы
  • Предопределенные методы
  • Логические методы
  • bang-методы
  • Задания

Глава 10. Циклы

  • Цикл
    while
  • Вложенные циклы
  • Досрочное прекращение циклов
  • Цикл
    until
  • Цикл
    for
  • Задания

Глава 11. Итераторы

  • Итераторы и блоки
  • Обход итераторами массивов и хэшей
  • Итератор
    times
  • Итераторы
    upto
    и
    downto
  • Итераторы коллекций
  • Итератор
    tap
  • Сокращенная форма итераторов
  • Досрочное прекращение итерации
  • Класс
    Enumerator
  • Задания

Глава 12. Блоки

  • Блоки в собственных методах
  • Передача значений в блок
  • Метод
    block_given?
  • Возврат значений из блока
  • Итератор
    yield_self
  • Передача блока через парамет
  • Различие
    { ... }
    и
    do ... end
  • Блоки в рекурсивных методах
  • Класс
    Proc
  • Методы
    proc
    и
    lambda
  • Различия
    proc
    и
    lambda
  • Задания

Глава 13. Классы

  • Создание класса
  • Класс — это объект
  • Как проектировать классы?
  • Переопределение методов
  • Открытие класса
  • Тело класса и его свойства
  • Вложенные классы
  • Константы
  • Переменные класса
  • Задания

Глава 14. Методы в классах

  • Сохранение состояния в объекте
  • Установка начального состояния объекта
  • Специальные методы присваивания
  • Синглетон-методы
  • Методы класса
  • Обработка несуществующих методов
  • Метод
    send
  • Задания

Глава 15. Преобразование объектов

  • Сложение строк и чисел
  • Методы преобразования объектов
  • Сложение объектов
  • Сложение объекта и числа
  • Сложение объекта и строки
  • Сложение объекта и массива
  • Перегрузка
    []
    и
    []=
  • Перегрузка унарных операторов
    +
    ,
    и
    !
  • Какие операторы можно перегружать?
  • DuckType-типизация
  • Задания

Глава 16. Ключевое слово self

  • Ссылки на текущий объект
  • Значения
    self
    в разных контекстах
  • Приемы использования
    self
  • Задания

Глава 17. Наследование

  • Наследование
  • Логические операторы
  • Динамический базовый класс
  • Наследование констант
  • Иерархия стандартных классов
  • Переопределение методов
  • Удаление методов
  • Поиск метода
  • Задания

Глава 18. Области видимости

  • Концепция видимости
  • Открытые методы
  • Закрытые методы
  • Защищенные методы
  • Закрытый конструктор
  • Паттерн «Одиночка» (Singleton)
  • Вызов закрытых методов
  • Информационные методы
  • Области видимости при наследовании
  • Области видимости методов класса
  • Задания

Глава 19. Модули

  • Создание модуля
  • Оператор разрешения области видимости
  • Пространство имен
  • Вложенные классы и модули
  • Доступ к глобальным классам и модулям
  • Задания

Глава 20. Подмешивание модулей

  • Класс
    Module
  • Подмешивание модулей в класс
  • Подмешивание модулей в объект
  • Синглетон-методы модуля
  • Области видимости
  • Стандартный модуль
    Kernel
  • Поиск методов в модулях
  • Метод
    prepend
  • Методы обратного вызова
  • Уточнения
  • Псевдонимы методов
  • Задания

Глава 21. Стандартные модули

  • Модуль
    Math
  • Модуль
    Singleton
  • Модуль
    Comparable
  • Модуль
    Enumerable
  • Модуль
    Forwardable
  • Маршаллизация
  • JSON-формат
  • YAML-формат
  • Задания

Глава 22. Свойства объектов

  • Общие методы
  • Неизменяемые объекты
  • Заморозка объектов
  • Небезопасные объекты
  • Задания

Глава 23. Массивы

  • Модуль
    Enumerable
  • Заполнение массива
  • Извлечение элементов
  • Поиск индексов элементов
  • Случайный элемент массива
  • Удаление элементов
  • Замена элементов
  • Информация о массиве
  • Преобразование массива
  • Арифметические операции с массивами
  • Логические методы
  • Вложенные массивы
  • Итераторы
  • Сортировка массивов
  • Задания

Глава 24. Хэши

  • Создание хэша
  • Заполнение хэша
  • Извлечение элементов
  • Поиск ключа
  • Обращение к несуществующему ключу
  • Удаление элементов хэша
  • Информация о хэшах
  • Хэши как аргументы методов
  • Объединение хэшей
  • Преобразование хэшей
  • Сравнение ключей
  • Преобразование ключей хэша
  • Задания

Глава 25. Классы коллекций

  • Множество
    Set
  • Класс
    Struct
  • Класс
    OpenStruct
  • Задания

Глава 26. Исключения

  • Генерация и перехват исключений
  • Исключения — это объекты
  • Стандартные ошибки
  • Создание собственных исключений
  • Перехват исключений
  • Многократная попытка выполнить код
  • Перехват исключений: почти всегда плохо
  • Блок
    ensure
  • Блок
    else
  • Перехват исключений в блоке
  • Задания

Глава 27. Файлы

  • Класс
    IO
  • Создание файла
  • Режимы открытия файла
  • Закрытие файла
  • Чтение содержимого файла
  • Построчное чтение файла
  • Запись в файл
  • Произвольный доступ к файлу
  • Пути к файлам
  • Манипуляция файлами
  • Задания

Глава 28. Права доступа и атрибуты файлов

  • Типы файлов
  • Определение типа файла
  • Время последнего доступа к файлу
  • Права доступа вUNIX-подобной системе
  • Задания

Глава 29. Каталоги

  • Текущий каталог
  • Создание каталога
  • Чтение каталога
  • Фильтрация содержимого каталога
  • Рекурсивный обход каталога
  • Удаление каталога
  • Задания

Глава 30. Регулярные выражения

  • Как изучать регулярные выражения?
  • Синтаксический конструктор
  • Оператор
    =~
  • Методы поиска
  • Синтаксис регулярных выражений
  • Модификаторы
  • Где использовать регулярные выражения?
  • Примеры
  • Задания

Глава 31. Веб-программирование

  • Протокол HTTP
  • Веб-серверы
  • Гем Rack
  • Ruby on Rails
  • Задания

Глава 32. Автоматическое тестирование

  • Типы тестирования
  • Преимущества и недостатки тестирования
  • Фреймворки для тестирования
  • Задания

Заключение

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

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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.