Java Advanced I: функциональное, асинхронное и реактивное программирование
Курс посвящен современным функциональным, асинхронным и реактивным подходам к разработке на Java, и включает изучение NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket.
36 ак.ч.
Онлайн
JVA-074
Java Advanced I: функциональное, асинхронное и реактивное программирование
Записаться на курс
Длительность
36 ак.ч.
Локация
Онлайн
Код
JVA-074
Расписание и цены
08.12.2021 - 17.12.2021
15.03.2022 - 25.03.2022
54 000 руб.
16 000 грн.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей
Java Advanced I: функциональное, асинхронное и реактивное программирование
Записаться на курс
Длительность
36 ак.ч.
Локация
Онлайн
Код
JVA-074
Расписание и цены
08.12.2021 - 17.12.2021
15.03.2022 - 25.03.2022
54 000 руб.
16 000 грн.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей

Описание

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

Цели

  • Познакомить слушателей с современными асинхронным и реактивным программированием.
  • Дать примеры применения.

Целевая аудитория

Разработчики Java, архитекторы Java

Предварительная подготовка

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

Разбираемые темы

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

Домашняя работа. Практика (1 час).


Модуль 2. Executor framework. Fork-Join pool (3 часа)
  • Использование Executors
  • Future интерфейс
  • Использование интерфейса Callable
  • Отмена задач
  • ForkJoin Framework
  • Создание пула задач ForkJoin
  • Параллельные потоки в Java 8+
  • ForkJoin vs. параллельные потоки vs. последовательные потоки

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

Домашняя работа. Практика (2 часа).


Модуль 4. Асинхронная Java (Completable Future) (5 часов)
  • Проблемы синхронного кода
  • 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 и практическое реактивное программирование (8 часов)
  • Реактивный доступ к БД
  • Реактивные драйверы 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 часа).

Раcписание курсов
Вид:
08.12.2021 - 17.12.2021
10:30-15:00
Локация:Онлайн
Длительность:36 ак.ч.
Время:10:30-15:00
54 000 руб.
14 400 грн.
Записаться
15.03.2022 - 25.03.2022
10:00-14:00
Локация:Онлайн
Длительность:36 ак.ч.
Время:10:00-14:00
54 000 руб.
16 000 грн.
Записаться
Смотреть полное расписание
Тренеры
Тесленко Виктор
Эксперт в области разработки и архитектуры ПО (Java)
Виктор уже много лет преподает Java-технологии и ООП. С 2005 г. обучение под его руководством прошли разработчики компаний банковской сферы, энергетики, телекоммуникаций, государственные предприятия и органы, многие другие организации из Украины, России, Грузии, Беларуси, Азербайджана.

Среди заказчиков его проектов – все GSM-операторы Украины, большая тройка операторов России (МТС, Билайн, Мегафон), крупнейшие банки (Райффайзен Банк Аваль, Индекс Банк, УкрСоцБанк и другие), КиевОблЭнерго, Национальный Банк Украины, Государственная налоговая администрация.

В 2006 г. Виктор стал первым в Украине тренером Sun Microsystems по Java.

Чередуя преподавательскую деятельность с работой в проектах, Виктор постоянно дополняет свои курсы примерами из жизни, иллюстрирует те или иные аспекты разработки и проектирования фактами, выдержками из документации и кода.
Красильщик Владимир
Специалист в области Java, Software Architecture и BigData
Эксперт по прагматичной разработке на Java.

Владимир с отличием окончил кафедру Математического Обеспечения СПбГЭТУ «ЛЭТИ» и уже более 17 лет разрабатывает программное обеспечение для государственных, образовательных и финансовых учреждений, а также автомобильных и телекоммуникационных концернов. Владимир является резидентом российского сообщества Java-разработчиков JUG.ru и выступает на таких отраслевых Java-конференциях, как JPoint, Joker и JBreak.PGDay.
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Для физических лиц
10%
Скидка на любой курс
5%
Бонус от стоимости курса после прохождения
5%
Бонус за рекомендацию курсов Luxoft Training
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Luxoft Training – первый учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
Остались вопросы?
Связаться с нами
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.