• TopKursy - РЕДКИЕ Удаленные КУРСЫ!

    Эксклюзивные материалы, недоступные на других источниках.

    Откройте доступ к уникальным знаниям прямо сейчас!

    Подробнее

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

Статус
В этой теме нельзя размещать новые ответы.
EGround

EGround

Редактор
Сообщения
24.326
Реакции
127

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


JavaAdjpg.jpg

Описание

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

Спойлер: Разбираемые темы

  • Модуль 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
      • Архитектура и шаблоны реактивного программирования


Материал «Java Advanced I: функциональное, асинхронное и реактивное программирование [IBS]», возможно, скоро появится на EGROUND.
Воспользуйтесь поиском, может быть, он уже опубликован.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу