FARM: Функциональная, асинхронная, реактивная, многопоточная Java
О чём курс
Одно блокирующее обращение к базе данных может остановить работу всего потока — здесь показывают, как перевести приложение на асинхронные рельсы, чтобы система обрабатывала тысячи запросов без перегрузки CPU. Курс сфокусирован на переходе от классической императивной модели Java к функциональному и реактивному программированию. Вы освоите инструменты для создания высоконагруженных систем: от глубокой настройки CompletableFuture и работы с неблокирующим вводом-выводом (NIO) до полноценного внедрения библиотек RxJava и Project Reactor в Spring WebFlux. Идеально подойдет Middle-разработчикам, которые хотят перестать писать «застревающий» код и начать строить масштабируемую событийно-ориентированную архитектуру.
Программа обучения
- Модуль 1: Функциональная Java
- Лямбда-выражения и встроенные функциональные интерфейсы
- Примитивные специализации, унарные и бинарные версии
- Метод map() и его примитивные специализации
- Короткозамыкающие операторы
- Применение Optional
- Фильтрация и обработка данных (stream, flatmap)
- Сортировка коллекций
- Сегментирование и классификация (Collectors)
- Немутирующие редукторы
- Каррированные функции
- Динамическая типизация и произвольные лямбда-выражения
- Ссылки на методы
- Модуль 2: Асинхронная Java
- Подмодуль 2.1: CompletableFuture
- Проблемы блокирующего кода
- Sync и async методы
- Combine-, compose- и anyOf-операции
- Обработка исключений
- Работа с пользовательскими ExecutorService-пулами
- Отмена операций
- Подмодуль 2.2: Неблокирующий ввод/вывод (NIO)
- NIO vs IO
- Потоко- и буфер-ориентированный ввод/вывод
- Блокирующий и неблокирующий режим
- Buffer, Channel, Selector
- Direct и non-direct буферы
- MappedFileBuffer
- Асинхронный ввод/вывод
- FileLock
- Архитектуры Netty и Node.js
- Подмодуль 2.1: CompletableFuture
- Модуль 3: Реактивная Java
- Подмодуль 3.1: RxJava
- Реактивный манифест
- Observable и Observer
- Реактивные потоки Java 9
- Методы с побочными эффектами
- Функциональная обработка ошибок
- «Горячие» и «холодные» паблишеры
- Расшаренные и connectable-паблишеры
- Утилизация конвейера (disposing)
- Реактивные операторы
- Subjects
- Schedulers и многопоточность
- Backpressure и Flowable-паблишеры
- Тестирование
- Подмодуль 3.2: Reactor
- Flux / Mono и их операторы
- Backpressure в Reactor
- Поддержка многопоточности
- Распараллеливание Flux-конвейеров
- Обертки для синхронных вызовов
- Reactor-процессоры
- Тестирование
- Подмодуль 3.3: Spring WebFlux и практика
- Подмодуль 3.1: RxJava
Другие материалы автора 4
ИС Игорь Судакевич Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.