Погрузитесь в современные парадигмы Java: функциональное, асинхронное и реактивное программирование. Этот курс не только расширит ваше понимание Java, но и научит эффективно использовать современные подходы для создания масштабируемых и производительных приложений. Вы освоите ключевые концепции и инструменты, такие как NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket, которые помогут вам оставаться на передовой IT-индустрии.
- Функциональные интерфейсы.
- Ссылки на метод.
- Потоки данных.
- Map / filter / reduce.
- Агрегационные функции.
- Reduce при параллельной и последовательной обработке.
- Цепочки потребителей.
- Потоковые коллекторы.
- Использование Executors.
- Future интерфейс.
- Использование интерфейса Callable.
- Отмена задач.
- ForkJoin Framework.
- Создание пула задач ForkJoin.
- Параллельные потоки в Java 8+.
- ForkJoin vs. параллельные потоки vs. последовательные потоки.
- Основные различия между Java NIO и IO.
- Потоково-ориентированный или буферно-ориентированный.
- Блокирующий против неблокирующего ввода-вывода.
- Java NIO Buffer.
- Java NIO Channel.
- Direct буфер.
- Mapped file буфер.
- Java NIO Selector.
- Асинхронный ввод/вывод с NIO.
- Блокировка файла.
- Сервер NIO.
- Архитектура сервера Netty.
- Проблемы синхронного кода.
- NodeJS архитектура.
- Параллельная обработка потока данных.
- CompletableFuture: sync и async методы.
- Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins).
- Обработка исключений в CompletableFuture.
- Отмена CompletableFuture.
- Использование CompletableFuture для реального потока данных.
- Домашняя работа. Практика (2 часа).
- Что такое реактивность?
- Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer).
- Реактивные потоки в Java 9 (Java Reactive Streams).
- Методы для побочных эффектов (side effects).
- Обработка ошибок.
- Горячие и холодные потоки (hot/cold).
- Разделяемые и подключаемые потоки (shared/connectable).
- Освобождение потоков (disposing).
- Реактивные операторы (полный каталог).
- Subjects.
- Распараллеливание потоков (Schedulers).
- Противодавление (backpressure) и интерфейс Flowable.
- Тестирование реактивных потоков.
- Операторы Flux / Mono в Reactor.
- Работа с backpressure в Reactor.
- Reactor и многопоточность (Reactor Schedulers).
- Parallel Flux потоки.
- Оборачивание синхронных вызовов.
- Тестирование Reactor.
- Процессоры (Reactor processors).
- Реактивный доступ к БД.
- Реактивные драйверы 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 часа).
Дата начала: По мере набора группы
Длительность: 1 неделя
Стоимость курса: 73 400 ₽
Цена без скидки: 73 400 ₽
Рассрочка: Нет
Формат занятий: Онлайн
Помощь с трудоустройством: Нет
Сертификат об окончании: Да