Rubyschool.us list of contents (Russian)
Урок 1
- что такое Ruby
- что такое Ruby on Rails
- настраиваем окружение
- устанавливаем программы
Урок 2
- puts, print, gets. #, \n
- переменные
- специальные символы
- .chomp, .to_i, to_s
Урок 3
- irb
- типы данных: string, fixnum, float, integer
- class, array. Hash
- задача про сопротивление (закон Ома)
- преобразование типов данных (to_i переводим в to_s)
Урок 4
- интерполяция строк - #{}
- поддержка русского языка в Windows (#encoding: 866 + ANSI)
- удаление символа (.chomp!)
- методы
- пайпы ||
- задачи на преобразование типов и интерполяцию строк
- дз: вывести числа 1..10, определить чётные и нечётные
Урок 5
- методы (продолжение): upto, capitalize, strip, whitespace
- \n \t \r
- .times (считает от 0)
- .upto (считает от 1)
- задача: вывести на экран ряд цифр с помощью upto
- задача: “Привет #{name}, в вашем имени #{name.length} букв”
Урок 6
- блоки
- .sleep, .times, do...end, rand
- задания про upto, times, sleep
- задача: рассчитать накопления (сколько будем откладывать и сколько месяцев)
- formating disk, Matrix
- дз: доделать задачу про накопления
Урок 7
- if...end, операторы сравнения, exit
- задача: алгоритм "вы довольны зарплатой?" (Да\Нет)
- задача: посчитать, сколько гостей придёт
- задача: сделать игру "однорукий бандит"
Урок 8
- break, while true, ranges, each
- разница между .. и ...
- 1_000_000
- калькулятор
- if/else
- задача: игра - угадываем число
- ranges
Урок 9
- функции и методы (def)
- глобальные переменные (@)
- символы (:)
- массивы, добавление в массивы
Урок 10
- инициализация массивов (продолжение)
- задачи: двигаем робота, удаляем/добавляем учеников в список
- loop do
Урок 11
- разбор дз камень-ножницы-бумага
- хэши (hash)
Урок 12
- отличия хэшей от массивов
- задача: создаем словарик
- задача: переделываем “однорукого бандита” с использованием хэшей
- дз “Tic-Tac-Toe” (крестики-нолики)
Урок 13
- повторяем хэши
- использование if в одну строку
- merge
- сохранение в файл >, >>
- немного об HTML
Урок 14
- введение в ООП
- классы
- объекты
- attr_reader, attr_accessor
Урок 15
- задачи с классами: самолеты и аэропорты, альбомы и песни
- наследование
- дз: сделать программу с классами Artist - Album - Song
Урок 16
- статические методы
- lambda-функции
- yield
- наследование
- типы переменных
Урок 17
- мета-программирование (send)
- чтение и запись в файлы
- получение списка папок и файлов в каталогах
Урок 18
- GET/POST запросы
- задача: программа для подбора пароля
Урок 19
- установка DevKit на Windows
- установка Sinatra
- Helloworld на Синатре
Урок 20
- установка и работа с Git
- установка Ungit на Windows
- продолжение работы с Sinatra
Урок 21
- ещё немного HTML-разметки
- основы CSS
- Bootstrap
- установка готового небольшого приложения Sinatra с включенным Bootstrap'ом
Урок 22
- Рома создает репозиторий. а все копируют себе
- ещё немного теории по git
- доделываем приложение BarberShop для записи к парикмахеру (теперь уже с использованием Bootstrap)
Урок 23
- доработка приложения BarberShop
- немножко JS, jQuery
- делаем colorpicker при помощи jQuery плагина
Урок 24
- немного подробнее о коде из предыдущего jQuery плагина и просто JS и jQuery
- валидация
- сохранение значений в полях формы
Урок 25
- настройка git для пушей без запроса пароля (по ключу ssh)
- установка SQLite3
- немного про синтаксис SQL
- создание БД и таблиц
Урок 26
- связываем приложение BarberShop с SQLite
- устанавливаем datetimepicker
- выборка из БД, вывод информации
Урок 27
- разбираем домашнее задание
- выводим из БД в веб (в таблицу)
- создаем вторую таблицу, добавляем туда значения
- делаем выборку из БД, заносим в выпадающее меню
Урок 28
- повторение
- новое приложение-блог (Leprosorium)
- прием параметра из ссылки
Урок 29
- введение в ActiveRecord
- rake
- tux
- migrations
Урок 30
- продолжение ActiveRecords
- валидация при помощи ActiveRecord
Урок 31
- общая инфа по HTTP и запросам
- javascript
Урок 32
- повторение материала про классы
- работаем с localstorage
- создаём магазин пиццы
- разбираем вопросы, которые могут задавать на интервью при приёме на работу
Урок 33
- продолжаем разбор вопросов, которые могут задавать на интервью при приёме на работу
- немного про yield
- пишем PizzaShop
Урок 34
- небольшое объяснение про операторы для краткой записи операций x += 1; x ||= 1
- продолжаем делать pizzashop (javascript)
- устанавливаем Rails
- объяснение структуры Rails
Урок 35
- ещё разбор вопросов, которые могут задавать на интервью при приёме на работу
- разбираем тесты, представленные на Odesk
- продолжаем писать PizzaShop
Урок 36
- краткое объяснение REST
- анализ написанного приложения
Урок 37
- введение в pull-реквесты
- разбираем задачи с собеседования
- настройка отступов в Sublime text
- запускаем Rails
- режимы запуска Rails
- генераторы Rails
- создаем контроллер
- создаем модель
Урок 38
- разбираем задачи на интервью
- повторение
- разбираем REST маршруты
- сравнениваем resource и resources
Урок 39
- создаем основные контроллеры (по REST) для сущности articles
- создаем статичные страницы в RoR
Урок 40
- удаление статей
- атрибуты тегов data- (turbolinks)
- небольшой рассказ про render
- отношения one-to-many
- создаем форму для комментариев
Урок 41
- про типы связей (many-to-many, one-to-many, one-to-one)
- задача: доделать блог до минимального функционала (CRUD)
- полезные сервисы для веб-разработки
- rspec и тесты
- пишем пару простых тестов
Урок 42
- матчеры для тестов
- пишем тест, закрывающий баги на github
- devise: установка, минимальная настройка, создание ссылок для входа-выхода
Урок 43
- делаем ссылки входа, выхода и т. п. с помощью devise
- сессии и куки
- чуть-чуть про json
- добавляем поля username в devise
- настраиваем блог для поля username
Урок 44
- “интервью” с другом Романа - Алексеем. Вопросы про Odesk (Upwork) и в целом про ruby и программирование
- bootstrap
- основы responsive-дизайна
Урок 45
- принцип работы метода params в контроллерах (используется для приёма параметров через post)
- разница между render и redirect_to
- разница между before_filter и before_action
- немного про хелперы
- continuous integration и continuous delivery (CI и CD)
- немного про vagrant
Урок 46
- тестируем модели
- устанавливаем rspec в приложение blog (и capybara)
- устанавливаем shoulda-matchers
- устанавливаем FactoryGirl: простейшая настройка, создание фабрики, тестирование
- создаем фабрику с автоматическим назначением значений полей
Урок 47
- понятие о приёмочном тестировании (acceptance testing)
- пишем тест для capybara
- понятие о i18n (internationalization)
- применение i18n в capybara
- before и after hooks
Урок 48
- Scaffolding (генерация модели, вида и контроллера одной командой)
- недостатки скаффолдинга
- создание небольшого приложения при помощи скаффолдинга
- кратко про отправку имейлов
Урок 49
- полиморфные ассоциации (краткое объяснение что это такое и создание небольшого примера)
- паттерны
- Singleton. Разбор на примере.
- типы переменных в классе, принадлежащие экземпляру класса и классу
Урок 50
- регулярные выражения