Открыто

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

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 16 май 2024.

Цена: 57510р.-97%
Взнос: 1594р.

Основной список: 40 участников

Резервный список: 2 участников

  1. 16 май 2024
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

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

    JavaAdjpg.jpg

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

    Цена 63900 руб
    Скрытая ссылка

    Продолжение: часть 2
     
    Последнее редактирование модератором: 21 май 2024
    1 человеку нравится это.
  2. Последние события

    1. lodo4nik
      lodo4nik участвует.
      17 сен 2024 в 13:50
    2. Квентин
      Квентин участвует.
      17 сен 2024 в 13:04
    3. pavel12
      pavel12 участвует.
      17 сен 2024 в 12:44
    4. mateo6E
      mateo6E участвует.
      2 сен 2024

    Последние важные события

    1. skladchik.com
      Цена составляет 57510р.
      25 май 2024
    2. skladchik.com
      Назначен организатор.
      16 май 2024
  3. Обсуждение
  4. 25 май 2024
    #2
    Организатор
    Организатор ОргОрганизатор
    17 июня стартует следующий поток, поставил максимальный взнос, попробуем собраться?
     
    2 пользователям это понравилось.
  5. 26 май 2024
    #3
    serg212121
    serg212121 ЧКЧлен клуба
    yes yes!! A kto prepodavatel?
     
  6. 28 май 2024
    #4
    Организатор
    Организатор ОргОрганизатор
    Игорь Судакевич
     
    2 пользователям это понравилось.
  7. 30 май 2024
    #5
    Andriii
    Andriii СкладчикСкладчик
    Хотелось бы
     
    3 пользователям это понравилось.
  8. 16 июн 2024
    #6
    akafloa
    akafloa ЧКЧлен клуба
    Завтра старт, уже не успеем? Может тогда на 01.07 начнем сразу сбор?
     
    1 человеку нравится это.