Мы используем cookie для стабильной работы сервиса. Подробнее

Java. Продвинутый уровень: функциональное, асинхронное и реактивное программирование + практика с ИИ

4.5
ФорматОнлайн
Длительность36 академ. часов
Объём8 занятий
УровеньПродвинутый
По окончанииУдостоверение о прохождении
Всё для обучения

Как устроено обучение

Практические занятия
Домашние задания
О курсе

Подробнее

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

Что нужно для старта

  • Уверенное владение Java, желательно знание Spring.
Результат

Что вы получите

  • Изучать основные концепции функционального программирования.
  • Применять лямбда-выражения и методы ссылок для упрощения кода.
  • Использовать Stream API для эффективной обработки коллекций данных.
  • Управлять многопоточностью и параллельным программированием с помощью ExecutorService.
  • Создавать асинхронные задачи с Future и CompletableFuture.
  • Обрабатывать исключения в асинхронном коде и взаимодействовать с внешними системами.
  • Понимать принципы реактивного программирования и их преимущества.
  • Работать с библиотекой Reactor для создания реактивных приложений.
  • Применять операторы для трансформации и фильтрации потоков данных. 
  • Оптимизировать производительность и масштабируемость приложений.
  • Использовать ИИ для повышения своей эффективности
Аудитория

Для кого этот курс

  • Разработчик
Содержание

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

8 занятий
ТемаЧто внутри
01Функциональная Java

• Функциональные интерфейсы
• Ссылки на метод
• Потоки данных
• Map / filter / reduce
• Агрегационные функции
• Reduce при параллельной и последовательной обработке
• Цепочки потребителей
• Потоковые коллекторы
• Домашняя работа. Практика

02Executor framework. Fork-Join pool

• Использование Executors
• Future интерфейс
• Использование интерфейса Callable
• Отмена задач
• ForkJoin Framework
• Создание пула задач ForkJoin
• Параллельные потоки в Java 8+
• ForkJoin vs. параллельные потоки vs. последовательные потоки

03Неблокирующий ввод-вывод NIO

• Основные различия между Java NIO и IO
• Потоково-ориентированный или буферно-ориентированный
• Блокирующий против неблокирующего ввода-вывода
• Java NIO Buffer
• Java NIO Channel
• Direct буфер
• Mapped file буфер
• Java NIO Selector
• Асинхронный ввод / вывод с NIO
• Блокировка файла
• Cервер NIO
• Архитектура сервера Netty
• Домашняя работа. Практика

04Асинхронная Java (Completable Future)

• Проблемы синхронного кода
• Пример: NodeJS архитектура
• Параллельная обработка потока данных
• CompletableFuture: sync и async методы
• Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins)
• Обработка исключений в CompletableFuture
• Отмена CompletableFuture
• Использование CompletableFuture для реального потока данных
• Домашняя работа. Практика

05Реактивное программирование

• Что такое реактивность?
• Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer)
• Реактивные потоки в Java 9 (Java Reactive Streams)
• Методы для побочных эффектов (side effects)
• Обработка ошибок
• Горячие и холодные потоки (hot/cold)
• Разделяемые и подключаемые потоки (shared/connectable)
• Утилизация потоков (disposing)
• Реактивные операторы (полный каталог)
• Subjects
• Распараллеливание потоков (Schedulers)
• Противодавление (backpressure) и класс Flowable
• Тестирование реактивных потоков

06Проект Reactor

• Операторы Flux / Mono в Reactor
• Работа с backpressure в Reactor
• Reactor и многопоточность (Reactor Schedulers)
• Parallel Flux потоки
• Оборачивание синхронных вызовов
• Тестирование Reactor
• Процессоры (Reactor processors)

07Spring WebFlux и практическое реактивное программирование

• Реактивный доступ к БД
• Реактивный драйвер 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 против WebMVC
• Архитектура, рекоменд.практика и шаблоны реакт.программирования
• Домашняя работа. Практика

08Реактивные стримы в других технологиях

• Kafka
• RabbitMQ
• gRPC

01Функциональная Java

• Функциональные интерфейсы
• Ссылки на метод
• Потоки данных
• Map / filter / reduce
• Агрегационные функции
• Reduce при параллельной и последовательной обработке
• Цепочки потребителей
• Потоковые коллекторы
• Домашняя работа. Практика

02Executor framework. Fork-Join pool

• Использование Executors
• Future интерфейс
• Использование интерфейса Callable
• Отмена задач
• ForkJoin Framework
• Создание пула задач ForkJoin
• Параллельные потоки в Java 8+
• ForkJoin vs. параллельные потоки vs. последовательные потоки

03Неблокирующий ввод-вывод NIO

• Основные различия между Java NIO и IO
• Потоково-ориентированный или буферно-ориентированный
• Блокирующий против неблокирующего ввода-вывода
• Java NIO Buffer
• Java NIO Channel
• Direct буфер
• Mapped file буфер
• Java NIO Selector
• Асинхронный ввод / вывод с NIO
• Блокировка файла
• Cервер NIO
• Архитектура сервера Netty
• Домашняя работа. Практика

04Асинхронная Java (Completable Future)

• Проблемы синхронного кода
• Пример: NodeJS архитектура
• Параллельная обработка потока данных
• CompletableFuture: sync и async методы
• Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins)
• Обработка исключений в CompletableFuture
• Отмена CompletableFuture
• Использование CompletableFuture для реального потока данных
• Домашняя работа. Практика

05Реактивное программирование

• Что такое реактивность?
• Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer)
• Реактивные потоки в Java 9 (Java Reactive Streams)
• Методы для побочных эффектов (side effects)
• Обработка ошибок
• Горячие и холодные потоки (hot/cold)
• Разделяемые и подключаемые потоки (shared/connectable)
• Утилизация потоков (disposing)
• Реактивные операторы (полный каталог)
• Subjects
• Распараллеливание потоков (Schedulers)
• Противодавление (backpressure) и класс Flowable
• Тестирование реактивных потоков

06Проект Reactor

• Операторы Flux / Mono в Reactor
• Работа с backpressure в Reactor
• Reactor и многопоточность (Reactor Schedulers)
• Parallel Flux потоки
• Оборачивание синхронных вызовов
• Тестирование Reactor
• Процессоры (Reactor processors)

07Spring WebFlux и практическое реактивное программирование

• Реактивный доступ к БД
• Реактивный драйвер 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 против WebMVC
• Архитектура, рекоменд.практика и шаблоны реакт.программирования
• Домашняя работа. Практика

08Реактивные стримы в других технологиях

• Kafka
• RabbitMQ
• gRPC

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

Удостоверение о прохождении

Организатор

Автор курса

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

Отзывы о курсе

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

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

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

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

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

Консультант ответит на вопросы о курсе «Java. Продвинутый уровень: функциональное, асинхронное и реактивное программирование + практика с ИИ» и поможет разобраться в деталях обучения.

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

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

Направления:Java

Информация обновлена 24 августа 2026 г.

Продолжить выбор

Похожие курсы

Начать без затрат

Бесплатные курсы