Чему вы научитесь
- Понимать реактивную парадигму: Объяснять принципы Reactive Streams и отличие Reactor от обычного Java Stream API.
- Создавать любые источники данных: Генерировать потоки через just(), fromIterable(), generate() и create() для асинхронных событий.
- Трансформировать и фильтровать данные: Применять map, filter, distinct и операторы ограничения (take/skip) для обработки потоков.
- Управлять побочными эффектами: Использовать doOnNext() для логирования и перехвата сигналов, не нарушая цепочку.
- Ветвить и комбинировать потоки: Осознанно выбирать между flatMap (асинхронность), concatMap (порядок) и zip (объединение) для сложных сценариев.
- Решать проблему Backpressure: Настраивать стратегии переполнения и использовать buffer/window для пакетной обработки.
- Обрабатывать ошибки и пустоту: Применять onErrorResume для резервных потоков, retry с экспоненциальной задержкой и switchIfEmpty вместо Optional.
- Управлять потоками выполнения: Переключать контекст через subscribeOn и publishOn, используя различные виды Schedulers.
- Работать с горячими потоками и контекстом: Трансформировать Cold в Hot через share() и передавать данные через Context (аналог ThreadLocal).
- Избегать антипаттернов: Находить блокирующий код через BlockHound и рефакторить вложенные подписки.
- Тестировать асинхронный код: Писать тесты с StepVerifier, управлять виртуальным временем и мокать издатели через TestPublisher.
О курсе
Для кого этот курс
Начальные требования
Java Core:
- Уверенное владение Java 8 и выше (лямбда-выражения, функциональные интерфейсы, Stream API).
- Понимание работы с коллекциями (List, Set, Map) и итерациями.
- Знание основ многопоточности (Thread, ExecutorService) и понимание, что такое блокирующий vs неблокирующий код.
Базовое понимание асинхронности:
- Представление о callback-функциях, Future и CompletableFuture (будет плюсом, но не обязательно).
Инструменты:
- Умение работать с IDE (IntelliJ IDEA или Eclipse).
- Базовые навыки работы с Maven или Gradle для подключения зависимостей.
- Опыт написания модульных тестов с JUnit (базовый уровень).
---
Чего НЕ требуется:
- Опыт работы с Project Reactor или Spring WebFlux — курс начинается с самых основ.
- Знание реактивного программирования в целом — всё объясняется с нуля.
- Глубокое понимание асинхронных фреймворков — достаточно базового уровня Java.
---
Если вы уверенно пишете на Java и понимаете лямбды, курс будет для вас комфортным и полезным. Всё остальное — теорию, практику и нюансы — мы разберём вместе.
Преподаватели курса
Как проходит обучение
Курс построен на сочетании теории и интенсивной практики с мгновенной обратной связью.
---
Формат занятий:
- Теоретические модули — структурированные материалы с разбором каждого оператора, концепции или подхода. Всё сопровождается примерами кода и объяснением внутреннего устройства Reactor.
- Интерактивные тесты — после каждого блока вас ждут десятки тестовых заданий с автоматической проверкой. Тесты охватывают все сценарии: от базового синтаксиса до сложных комбинаций с ошибками, временем и конкурентностью. Мгновенный фидбек помогает сразу закрепить материал и увидеть свои ошибки.
- Практические задачи — в финальном модуле собраны задания разного уровня сложности, где нужно применять все изученные операторы и подходы в комплексе. Задачи приближены к реальным ситуациям: обработка запросов, агрегация данных, рефакторинг синхронного кода.
---
Что входит в курс:
- 12 модулей с поэтапным усложнением.
- Сотни тестов на усвоение материала.
- Итоговые практические задачи.
- Доступ к материалам в любое время (самостоятельный темп).
---
Результат: вы не просто прочитаете теорию — вы напишете десятки реактивных цепочек, протестируете их, разберёте ошибки и будете готовы применять Reactor в реальных проектах.
Что вы получите
- - **Глубокое понимание Project Reactor** — от внутреннего устройства до продвинутых концепций (горячие/холодные издатели, контекст, backpressure), что выделит вас на собеседованиях.
- - **Навыки, востребованные работодателем** — реактивное программирование становится стандартом в высоконагруженных микросервисах на Spring WebFlux, и эти знания ценятся на рынке.
- - **Сотни интерактивных тестов с автоматической проверкой** — вы сразу видите свои ошибки и закрепляете каждый оператор на практике, а не просто читаете теорию.
- - **Готовые реактивные цепочки и паттерны** — вы научитесь писать чистый, читаемый реактивный код без антипаттернов, который можно сразу применять в работе.
- - **Навыки тестирования реактивного кода** — освоите StepVerifier, VirtualTimeScheduler и TestPublisher для уверенного покрытия асинхронных сценариев.
- - **Рефакторинг синхронного кода** — научитесь грамотно переносить императивную логику на реактивные рельсы, понимая, когда это оправдано.
- - **Избегание типичных ошибок** — разберёте антипаттерны (вложенные subscribe, блокировки, потеря сигналов) и научитесь их находить с помощью BlockHound.
- - **Доступ к материалам в любое время** — вы учитесь в своём темпе и можете возвращаться к сложным темам когда угодно.