Содержание курса
Ruby 4 и современный backend
8 уроков
1.
Что мы строим — Wharf
↗
2.
Ruby 4 без легаси — что стоит знать сразу
↗
3.
Инструменты — mise, gem, bundler, редактор
↗
4.
IRB как рабочий инструмент
↗
5.
Первый HTTP-ответ без Rails — Rack
↗
6.
Bundler, Gemfile и воспроизводимая сборка
↗
7.
Как читать ошибки Ruby
↗
8.
Практика — скелет Wharf на Rack
↗
Значения, объекты и выражения
8 уроков
1.
Всё объект — ссылки, идентичность, изменяемость
↗
2.
Строки — кодировки, заморозка, интерполяция
↗
3.
Числа и деньги
↗
4.
nil, truthiness и безопасная навигация
↗
5.
Присваивание, деструктуризация, множественные значения
↗
6.
Условные выражения и case
↗
7.
Методы — параметры, keyword-аргументы, возврат
↗
8.
Практика — типы значений домена Wharf
↗
Коллекции и Enumerable
8 уроков
1.
Array — устройство и операции
↗
2.
Hash — порядок, значения по умолчанию, ключи
↗
3.
Set, Range и Comparable
↗
4.
Блоки, proc и lambda
↗
5.
Enumerable — карта операций
↗
6.
Ленивые перечисления и Enumerator
↗
7.
Data и Struct
↗
8.
Практика — агрегация тарифов Wharf
↗
Классы, модули и объектный дизайн
8 уроков
1.
Классы, состояние и инициализация
↗
2.
Видимость и публичный контракт
↗
3.
Модули как пространство имён и примесь
↗
4.
Цепочка предков и разрешение методов
↗
5.
Композиция вместо наследования
↗
6.
Равенство, хеширование и значения
↗
7.
Метапрограммирование в меру
↗
8.
Практика — доменные объекты Wharf
↗
Ошибки, паттерн-матчинг и контракты
8 уроков
1.
Исключения — иерархия и обработка
↗
2.
Проектирование собственных ошибок
↗
3.
Result вместо исключений
↗
4.
Паттерн-матчинг — case-in
↗
5.
deconstruct и deconstruct_keys
↗
6.
RBS — сигнатуры типов
↗
7.
Steep — проверка типов в CI
↗
8.
Практика — типизированный слой ошибок Wharf
↗
Конкурентность — Thread, Fiber, Ractor
8 уроков
1.
Модель выполнения Ruby
↗
2.
Thread
↗
3.
Синхронизация — Mutex, Queue, ConditionVariable
↗
4.
Fiber и планировщик файберов
↗
5.
Async-ввод-вывод на практике
↗
6.
Ractor
↗
7.
Таймауты, отмена и деградация
↗
8.
Практика — параллельный опрос перевозчиков
↗
Гем, Rack и тестирование Ruby-кода
8 уроков
1.
Структура гема
↗
2.
Rack изнутри
↗
3.
Свой middleware
↗
4.
Minitest
↗
5.
RSpec
↗
6.
Тестовые двойники и границы
↗
7.
RuboCop и статический анализ
↗
8.
Практика — гем wharf-tariffs
↗
Rails 8.1 — каркас приложения
8 уроков
1.
Что Rails 8.1 даёт из коробки
↗
2.
rails new для API
↗
3.
Автозагрузка Zeitwerk
↗
4.
Конфигурация и окружения
↗
5.
Инициализаторы и загрузка приложения
↗
6.
Из чего собран Rails
↗
7.
Консоль, runner и генераторы
↗
8.
Практика — каркас Wharf API
↗
Маршрутизация и контроллеры
8 уроков
1.
Router
↗
2.
Контроллер и жизненный цикл запроса
↗
3.
Strong parameters
↗
4.
Фильтры и обработка ошибок
↗
5.
Middleware-стек Rails
↗
6.
Рендеринг и переговоры о формате
↗
7.
Файлы, загрузки и большие тела
↗
8.
Практика — HTTP-слой Wharf
↗
Active Record — моделирование и миграции
8 уроков
1.
Модель и соглашения
↗
2.
Миграции
↗
3.
Типы колонок PostgreSQL
↗
4.
Ассоциации
↗
5.
Полиморфизм и составные ключи
↗
6.
Валидации и ограничения БД
↗
7.
Callbacks
↗
8.
Практика — схема данных Wharf
↗
Active Record — запросы и транзакции
8 уроков
1.
Relation
↗
2.
where, join, includes и N+1
↗
3.
Агрегаты и аналитика
↗
4.
Скоупы, Arel и повторное использование
↗
5.
Транзакции
↗
6.
Блокировки
↗
7.
Массовые операции
↗
8.
Практика — отчёты и выборки Wharf
↗
Доменный слой приложения
8 уроков
1.
Почему толстая модель ломается
↗
2.
Service object
↗
3.
Form object
↗
4.
Query object
↗
5.
Политики доступа
↗
6.
Доменные события
↗
7.
Машина состояний
↗
8.
Практика — сервисы Wharf
↗
Аутентификация и авторизация
8 уроков
1.
Пароли и их хранение
↗
2.
Сессии и генератор аутентификации
↗
3.
Токены API
↗
4.
JWT
↗
5.
Вебхуки и подпись запросов
↗
6.
Авторизация
↗
7.
Rate limiting и защита
↗
8.
Практика — аутентификация Wharf
↗
Дизайн HTTP API
8 уроков
1.
Ресурсы, версии, совместимость
↗
2.
Сериализация
↗
3.
Ошибки API
↗
4.
Пагинация, фильтры, сортировка
↗
5.
Идемпотентность
↗
6.
HTTP-кэширование
↗
7.
Документация API
↗
8.
Практика — публичный API Wharf
↗
Фоновые задачи и Solid Queue
8 уроков
1.
Active Job
↗
2.
Solid Queue
↗
3.
Надёжность выполнения
↗
4.
Идемпотентные задачи
↗
5.
Расписания и повторяющиеся задачи
↗
6.
Приоритеты и конкурентность
↗
7.
Наблюдение за очередью
↗
8.
Практика — конвейер уведомлений Wharf
↗
Кэш, производительность и устойчивость
8 уроков
1.
Solid Cache
↗
2.
Стратегии кэширования
↗
3.
Ключи и инвалидация
↗
4.
Профилирование
↗
5.
Пулы соединений и таймауты
↗
6.
Внешние вызовы
↗
7.
Бюджет ответа и нагрузка
↗
8.
Практика — ускоряем Wharf
↗
Real-time — Action Cable и Solid Cable
8 уроков
1.
WebSocket в Rails
↗
2.
Соединение и аутентификация
↗
3.
Каналы и подписки
↗
4.
Solid Cable
↗
5.
Broadcast из моделей и задач
↗
6.
Turbo Streams для backend-разработчика
↗
7.
Масштабирование и обратное давление
↗
8.
Практика — живая лента перевозок
↗
Тестирование Rails-приложения
8 уроков
1.
Что и на каком уровне тестировать
↗
2.
Данные тестов
↗
3.
Модельные тесты
↗
4.
Request-тесты
↗
5.
Задачи, почта и время
↗
6.
Внешние сервисы в тестах
↗
7.
Скорость и стабильность набора
↗
8.
Практика — тестовый набор Wharf
↗
Наблюдаемость, безопасность и деплой
8 уроков
1.
Логи
↗
2.
Метрики и события
↗
3.
Трассировка
↗
4.
Health checks и готовность
↗
5.
Безопасность приложения
↗
6.
Docker-образ
↗
7.
Kamal 2
↗
8.
Практика — релиз Wharf
↗