Курс на Stepik
Обложка курса «Elixir с нуля для backend-разработчика» на Stepik
999 ₽

Elixir с нуля для backend-разработчика ★ 0.000

Открыть на
STEPIK.ORG

Практический курс по Elixir 1.20 и OTP 28 для разработчиков, которые уже пишут серверный код на другом языке: процессы и супервизоры, Phoenix 1.8, Ecto и PostgreSQL, Oban, LiveView, тестирование и эксплуатация. Всё строится на сквозном проекте Klaxon — сервисе приёма сигналов мониторинга и эскалации инцидентов, который к концу курса запускается одной командой.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Elixir с нуля для backend-разработчика»Учеников на курсе 2
Сертификаты, выданные на курсе «Elixir с нуля для backend-разработчика»Сертификатов выдано 0
Отзывы о курсе «Elixir с нуля для backend-разработчика»Отзывов получено 0
Рейтинг курса «Elixir с нуля для backend-разработчика»Рейтинг курса 0.000
Уроки в курсе «Elixir с нуля для backend-разработчика»Количество уроков 172
Тесты в курсе «Elixir с нуля для backend-разработчика»Количество квизов 78
Стоимость курса «Elixir с нуля для backend-разработчика»Стоимость курса 999 ₽ —
Обновления курса «Elixir с нуля для backend-разработчика»Обновления курса — —
Дата публикации курса «Elixir с нуля для backend-разработчика»Дата публикации курса — ———
Последнее обновление курса «Elixir с нуля для backend-разработчика»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «Elixir с нуля для backend-разработчика» 19 разделов Уроки в курсе «Elixir с нуля для backend-разработчика» 172 урока Тесты в курсе «Elixir с нуля для backend-разработчика» 78 тестов Последнее обновление курса «Elixir с нуля для backend-разработчика» обн. 31 октября 2026

Elixir и BEAM: зачем это backend-разработчику

8 уроков
1. Что мы строим: Klaxon ↗
2. BEAM: процессы, планировщик, изоляция отказов ↗
3. Установка инструментов и рабочее окружение ↗
4. IEx как основной инструмент исследования ↗
5. Mix: проект, задачи, зависимости ↗
6. Первый HTTP-ответ без Phoenix: Plug и Bandit ↗
7. Отказы и супервизия: обзор модели ↗
8. Как устроен курс и сквозной проект ↗

Данные и сопоставление с образцом

10 уроков
1. Иммутабельность и связывание значений ↗
2. Базовые типы: числа, атомы, булевы значения, nil ↗
3. Строки, бинарные данные и кодировки ↗
4. Кортежи и списки ↗
5. Maps и keyword lists ↗
6. Сопоставление с образцом ↗
7. Охранные выражения ↗
8. case, cond, if и ранний выход ↗
9. Функции: анонимные, захват, замыкания ↗
10. Практика: парсер входящего сигнала ↗

Модули, функции и организация кода

9 уроков
1. Модули, публичные и приватные функции ↗
2. Множественные клаузы и рекурсия ↗
3. Конвейер |> и стиль потоков данных ↗
4. Enum: работа с коллекциями ↗
5. Stream: ленивые вычисления ↗
6. Comprehensions ↗
7. Структуры и доменные типы ↗
8. Атрибуты модуля, документация и doctests ↗
9. Практика: нормализация и агрегация сигналов ↗

Полиморфизм, контракты и ошибки

9 уроков
1. Протоколы ↗
2. Поведения ↗
3. Кортежи-результаты и договорённости об ошибках ↗
4. with: композиция шагов ↗
5. Исключения ↗
6. exit, throw и сигналы процессов ↗
7. Typespecs и Dialyzer ↗
8. Постепенная типизация Elixir ↗
9. Практика: доменные ошибки Klaxon ↗

Процессы: конкурентность на BEAM

9 уроков
1. spawn, send, receive ↗
2. Ссылки, мониторы и завершение ↗
3. Task: параллельные вычисления ↗
4. Agent и простое состояние ↗
5. GenServer: серверный цикл ↗
6. call, cast, info и таймауты ↗
7. Состояние, завершение и утечки ↗
8. Наблюдение за процессами ↗
9. Практика: дедупликация сигналов в GenServer ↗

OTP: супервизоры и архитектура приложения

9 уроков
1. Дерево супервизии ↗
2. Перезапуски, интенсивность, child_spec ↗
3. Application: точка входа системы ↗
4. DynamicSupervisor ↗
5. Registry и адресация процессов ↗
6. Процесс на сущность ↗
7. ETS: разделяемые таблицы ↗
8. persistent_term, счётчики и атомарные операции ↗
9. Практика: дерево процессов эскалации ↗

Проект, конфигурация и зависимости

8 уроков
1. mix.exs: зависимости и версии ↗
2. config.exs, runtime.exs и окружения ↗
3. Секреты и переменные окружения ↗
4. Границы приложений: контексты против umbrella ↗
5. Формат, Credo и статический анализ ↗
6. Выбор пакетов из Hex ↗
7. Собственные mix-задачи ↗
8. Практика: конфигурация Klaxon ↗

Plug: HTTP-слой BEAM

8 уроков
1. Plug.Conn: анатомия запроса ↗
2. Function plug и module plug ↗
3. Plug.Router ↗
4. Bandit и жизненный цикл соединения ↗
5. Тело, заголовки, коды ответов ↗
6. Ошибки в Plug ↗
7. Собственные плаги: request_id и логирование ↗
8. Практика: ingest-эндпоинт на чистом Plug ↗

Phoenix: каркас веб-приложения

10 уроков
1. Структура Phoenix-приложения ↗
2. Endpoint и конвейеры ↗
3. Роутер: scope, pipeline, ресурсы ↗
4. Контроллеры ↗
5. JSON-ответы ↗
6. Ошибки и FallbackController ↗
7. Параметры запроса и их проверка ↗
8. Заголовки безопасности, CORS и статика ↗
9. Первые тесты веб-слоя ↗
10. Практика: API-контур Klaxon ↗

Ecto: схемы, changesets, миграции

10 уроков
1. Repo и пул соединений ↗
2. Миграции ↗
3. Schema ↗
4. Changeset: cast и валидация ↗
5. Ограничения БД и changeset-констрейнты ↗
6. Встроенные схемы и параметры ↗
7. Ассоциации ↗
8. Пользовательские типы ↗
9. Сиды и тестовые данные ↗
10. Практика: схема данных Klaxon ↗

Ecto: запросы и транзакции

10 уроков
1. Query DSL ↗
2. Композиция запросов ↗
3. Join, preload и N+1 ↗
4. Агрегации и группировки ↗
5. fragment и специфика PostgreSQL ↗
6. Транзакции и Ecto.Multi ↗
7. Блокировки и конкурентные обновления ↗
8. upsert и on_conflict ↗
9. Пагинация ↗
10. Практика: запросы дашборда ↗

Контексты: доменный слой

8 уроков
1. Контекст как граница ↗
2. Зависимости между контекстами ↗
3. Команды и запросы ↗
4. Доменные события ↗
5. Валидация в домене и в БД ↗
6. Ошибки контекста в HTTP ↗
7. Тестирование контекста ↗
8. Практика: контекст Incidents ↗

Аутентификация и авторизация

9 уроков
1. phx.gen.auth: что генерируется ↗
2. Сессии, cookie и живые сессии ↗
3. Scopes в Phoenix 1.8 ↗
4. API-токены ↗
5. Плаг аутентификации API ↗
6. Авторизация: политики ↗
7. Ограничение частоты запросов ↗
8. Аудит действий ↗
9. Практика: доступ к API Klaxon ↗

Дизайн HTTP API

8 уроков
1. Контракт и версионирование ↗
2. Идемпотентность ↗
3. Формат ошибок ↗
4. Списки: фильтры, сортировка, пагинация ↗
5. OpenAPI-спецификация ↗
6. Исходящие вызовы: Req ↗
7. Подписи и повторные доставки вебхуков ↗
8. Практика: публичный API v1 ↗

Фоновые задачи и надёжность доставки

9 уроков
1. Почему не Task.start ↗
2. Oban: установка и модель ↗
3. Worker, аргументы, результат ↗
4. Ретраи и backoff ↗
5. Уникальность и дедупликация задач ↗
6. Очереди, приоритеты и ограничения ↗
7. Периодические задачи ↗
8. Transactional outbox ↗
9. Практика: доставка оповещений ↗

Кэш, производительность и устойчивость

8 уроков
1. Кэш на ETS ↗
2. Ограничение частоты на счётчиках ↗
3. Пулы и таймауты ↗
4. Back-pressure и ограничение конкурентности ↗
5. Circuit breaker ↗
6. Профилирование и бенчмарки ↗
7. Память, очереди сообщений и утечки ↗
8. Практика: нагрузочная проверка ingest ↗

Real-time: PubSub, Channels, LiveView

9 уроков
1. Phoenix.PubSub ↗
2. Channels ↗
3. Аутентификация сокета ↗
4. Presence ↗
5. LiveView: жизненный цикл ↗
6. LiveView: события и streams ↗
7. Компоненты и обновления из домена ↗
8. Тестирование real-time ↗
9. Практика: живой дашборд инцидентов ↗

Тестирование

9 уроков
1. ExUnit ↗
2. Ecto Sandbox и асинхронные тесты ↗
3. Фикстуры и фабрики ↗
4. Тесты HTTP API ↗
5. Mox и границы подмены ↗
6. Тестирование процессов и OTP ↗
7. Property-based тесты ↗
8. Покрытие, CI и качество ↗
9. Практика: тестовый набор Klaxon ↗

Наблюдаемость, релизы и эксплуатация

12 уроков
1. Logger и структурные логи ↗
2. Telemetry: события и обработчики ↗
3. Telemetry.Metrics и репортеры ↗
4. Метрики в Prometheus ↗
5. Трейсинг через OpenTelemetry ↗
6. LiveDashboard и диагностика на живом узле ↗
7. mix release ↗
8. Docker-образ и миграции при деплое ↗
9. Graceful shutdown и health checks ↗
10. Кластеризация ↗
11. Выкатка без простоя ↗
12. Практика: запуск Klaxon в docker compose ↗