Мы используем файлы cookie для обеспечения работоспособности сервиса, улучшения навигации и маркетинговых активностей Yolonce. Нажимая "Согласен", вы соглашаетесь с нашей Политикой конфиденциальности

Java Advanced I: функциональное, асинхронное и реактивное программирование

  Сложность

Пока неизвестно

  Длительность

36 ак.ч.

  Формат

онлайн

  Документ по выпуску

удостоверение о повышении квалификации государственного образца

Стоимость курса
63 900

Подробнее о курсе

Описание Курс посвящен современным функциональным и реактивным подходам к разработке на Java, повышающем производительность бекэнда, и включает изучение неблокирующего ввода-вывода NIO2, асинхронных промисов CompletableFuture, библиотек реактивного программирования RxJava и Reactor, интерфейса асинхронного доступа к БД R2DBC, потоковый протокол SSE, реактивные репозитории Spring Data reactive, WebClient, протоколы WebSocket и RSocket, а также практические примеры применения.

Документ после выпуска

удостоверение о повышении квалификации государственного образца

Автор курса

Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.

Программа курса

  Модуль 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 часа).

Оставьте отзыв

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

обновлено: 19.09.2024

Оставьте заявку

Наши консультанты ответят на все вопросы
И помогут в выборе

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных