Java Advanced I: функциональное, асинхронное и реактивное программирование
Пока неизвестно
36 ак.ч.
онлайн
удостоверение о повышении квалификации государственного образца
63 900 ₽
Подробнее о курсе
Документ после выпуска
удостоверение о повышении квалификации государственного образца
Программа курса
Модуль 1. Функциональная Java (теория - 2 ч. + практика 1 ч.) ч)
Функциональные интерфейсы Ссылки на метод Потоки данных Map / filter / reduce Агрегационные функции Reduce при параллельной и последовательной обработке Цепочки потребителей Потоковые коллекторы
Модуль 2. Executor framework. Fork-Join pool (теория - 3 ч.)
Использование Executors Future интерфейс Использование интерфейса Callable Отмена задач ForkJoin Framework Создание пула задач ForkJoin Параллельные потоки в Java 8+ ForkJoin vs. параллельные потоки vs. последовательные потоки
Модуль 3. Неблокирующий ввод-вывод NIO (теория - 3 ч. + практика - 2 ч.)
Основные различия между Java NIO и IO Потоково-ориентированный или буферно-ориентированный Блокирующий против неблокирующего ввода-вывода Java NIO Buffer Java NIO Channel Direct буфер Mapped file буфер Java NIO Selector Асинхронный ввод / вывод с NIO Блокировка файла Cервер NIO Архитектура сервера Netty
Модуль 4. Асинхронная Java (Completable Future) (теория - 3 ч. + практика - 2 ч.)
Проблемы синхронного кода NodeJS архитектура Параллельная обработка потока данных CompletableFuture: sync и async методы Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins) Обработка исключений в CompletableFuture Отмена CompletableFuture Использование CompletableFuture для реального потока данных Домашняя работа. Практика (2 часа).
Модуль 5. Реактивное программирование (теория - 8 ч.)
Что такое реактивность? Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer) Реактивные потоки в Java 9 (Java Reactive Streams) Методы для побочных эффектов (side effects) Обработка ошибок Горячие и холодные потоки (hot/cold) Разделяемые и подключаемые потоки (shared/connectable) Освобождение потоков (disposing) Реактивные операторы (полный каталог) Subjects Распараллеливание потоков (Schedulers) Противодавление (backpressure) и интерфейс Flowable Тестирование реактивных потоков
Модуль 6. Проект Reactor (теория - 4 ч.)
Операторы Flux / Mono в Reactor Работа с backpressure в Reactor Reactor и многопоточность (Reactor Schedulers) Parallel Flux потоки Оборачивание синхронных вызовов Тестирование Reactor Процессоры (Reactor processors)
Модуль 7. Spring WebFlux и практическое реактивное программирование (теория - 6 ч. + практика - 2 ч.)
Реактивный доступ к БД Реактивные драйверы 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 часа).
Оставьте отзыв
Похожие курсы
Оставьте заявку
Наши консультанты ответят на все вопросы
И помогут в выборе
Нажимая кнопку, вы даете согласие на обработку персональных данных