Учебный центр IBS
JVA-074 Java Advanced I: функциональное, асинхронное и реактивное программирование
Улучшаемые навыки:
JavaСертификатОнлайн
Описание курса
Курс посвящен современным функциональным, асинхронным и реактивным подходам к разработке на Java, и включает изучение NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket.
Модуль 1
- Функциональные интерфейсы
- Ссылки на метод
- Потоки данных
- Map / filter / reduce
- Агрегационные функции
- Reduce при параллельной и последовательной обработке
- Цепочки потребителей
- Потоковые коллекторы
Модуль 2
- Использование Executors
- Future интерфейс
- Использование интерфейса Callable
- Отмена задач
- ForkJoin Framework
- Создание пула задач ForkJoin
- Параллельные потоки в Java 8+
- ForkJoin vs. параллельные потоки vs. последовательные потоки
Модуль 3
- Основные различия между Java NIO и IO
- Потоково-ориентированный или буферно-ориентированный
- Блокирующий против неблокирующего ввода-вывода
- Java NIO Buffer
- Java NIO Channel
- Direct буфер
- Mapped file буфер
- Java NIO Selector
- Асинхронный ввод / вывод с NIO
- Блокировка файла
- Cервер NIO
- Архитектура сервера Netty
Модуль 4
- Проблемы синхронного кода
- NodeJS архитектура
- Параллельная обработка потока данных
- CompletableFuture: sync и async методы
- Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins)
- Обработка исключений в CompletableFuture
- Отмена CompletableFuture
- Использование CompletableFuture для реального потока данных
- Домашняя работа. Практика (2 часа).
Модуль 5
- Что такое реактивность?
- Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer)
- Реактивные потоки в Java 9 (Java Reactive Streams)
- Методы для побочных эффектов (side effects)
- Обработка ошибок
- Горячие и холодные потоки (hot/cold)
- Разделяемые и подключаемые потоки (shared/connectable)
- Освобождение потоков (disposing)
- Реактивные операторы (полный каталог)
- Subjects
- Распараллеливание потоков (Schedulers)
- Противодавление (backpressure) и интерфейс Flowable
- Тестирование реактивных потоков
Модуль 6
- Операторы Flux / Mono в Reactor
- Работа с backpressure в Reactor
- Reactor и многопоточность (Reactor Schedulers)
- Parallel Flux потоки
- Оборачивание синхронных вызовов
- Тестирование Reactor
- Процессоры (Reactor processors)
Модуль 7
- Реактивный доступ к БД
- Реактивные драйверы R2DBC
- Spring Data - реактивные репозитории
- Поддержка страниц (paging) в Spring Data reactive
- WebFlux: функциональные контроллеры
- Spring REST контроллеры, возвращающие реактивные данные (Mono / Flux)
- Spring REST контроллеры, возвращающие SSE (server-sent event)
- WebClient: получение реактивных данных с сервера
- SSE и протоколы WebSocket
- Использование WebSocket для передачи / получения данных JSON
- Использование WebSocket для передачи / извлечения двоичных данных
- Протокол RSocket
- Контроллер RSocket на стороне сервера
- RSocket клиент: обмен JSON и двоичными данными
- RSocket с балансировкой нагрузки
- RSocket с взвешенной балансировкой нагрузки
- Использование реактивных потоков с брокером сообщений (RabbitMQ)
- Spring Data MongoDB реактивные репозитории
- Бенчмарки: R2DBC против JDBC и WebFlux против Web MVC
- Архитектура и шаблоны реактивного программирования
- Домашняя работа. Практика (2 часа).
Отзывы о курсе
Еще курсы
Бэкенд разработчик261Фулстек разработчик156Фронтенд разработчик139Веб-разработчик120Разработчик игр90Разработчик мобильных приложений67Десктоп разработчик35Архитектор программного обеспечения30Инженер встраиваемых систем25Разработчик баз данных21Программист 1С21Системный инженер8HTML-верстальщик6Архитектор баз данных3
Все курсы в специализации