Що нового?

Придбаний [IBS] Java Advanced I. Функциональное, асинхронное и реактивное программирование (Игорь Судакевич)

Інформація про покупку
Тип покупки: Складчина
Ціна: 23493 ГРН
Учасників: 0 з 84
Організатор: Відсутній
Статус: Набір учасників
Внесок: 290.9 ГРН
0%
Основний список
Резервний список

Gadzhi

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

Цели
  • Познакомить слушателей с современными асинхронным и реактивным программированием.
  • Дать примеры применения.
Целевая аудитория
  • Разработчики Java
  • Архитекторы Java
Предварительная подготовка
  • Уверенное владение Java, желательно знание Spring
Модуль 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 часа).
https://privatelink.de/?https://ibs-training.ru/kurs/java_advanced_i_funktsionalnoe_asinhronnoe_i_reaktivnoe_programmirovanie.html
 
Угорі