Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
С проверкой домашнего задания
Трудоустройство
Трудоустройство
Отсутствует
Сертификат
Сертификат
Да

Стоимость курса

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

Что вы получите после обучения

Приобретаемые навыки
1
MongoDB
2
RabbitMQ
3
Spring
Сертификат, ссылками на который можно делиться с другими людьми

Вас будут обучать

Эксперт в области разработки ПО (Java). Master of Computer & Information Technology (Univ.of Pennsylvania)
Игорь — преподаватель-практик по программированию на языке Java, сертифицированный Java-разработчик, уполномоченный инструктор корпорации «Оракл», инструктор платформы Udemy, Java-методист c 15-летним опытом, консультант-репетитор по Java-сертификации.

Игорь начал карьеру как физик-экспериментатор, разрабатывая аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, которая через 20 лет получила название «нанотехнология».

Один из экспертов-разработчиков проекта Java-сертификации под эгидой IBS.

Лауреат конкурса молодых ученых в области физики твердого тела (Япония, 1990).

Проекты:

  • разрабатывал аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, через 20 лет получившей название «нанотехнология»

  • 15 лет работал в Токио (Токийский технологический институт, затем Институт статистики ООН), где занимался внедрением технологий автоматической обработки больших массивов данных, в том числе на frontend- и backend-приложениях

  • 6 лет работал инженером-разработчиком в Pioneer Co. в Токио.


Java-разработчик

Николай — Java-разработчик в компании АО «Синхро» (проект «Столото» ex СБЕР). Обладает опытом разработки высоконагруженных систем более 5 лет. Автор ряда научных публикаций в области распределённых и децентрализованных систем.

Проекты:

  • Архитектура 2.0 проекта «Столото» — переход от распределённого монолита к микросервисам по модели DDD.

  • База знаний Сбербанка Knowledge Assistant — разработка бэкенд-части системы взаимодействия операторов колл-центров с системой хранения знаний.

  • Печатный модуль для автоматизации печатных форм — разработка и поддержка.

  • Генератор новостных дайджестов для ООО «Медиа-Сервис» — разработка на PHP.

  • Разработка парсера для ООО «Медиа-Сервис» — разработка на PHP.

  • Серверная часть системы автоматизации документооборота групп для Учебно-курсового комбината «Мосгортранс» — разработка на yii2.

Сертификаты:
  • 98-366:MTA: Networking Fundamentals
  • 98-388:MTA: Introduction to Programming using Java CertiportId:90057035

Образовательная организация

Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.

Программа курса

Разбираемые темы:
Модуль 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 часа).

Рейтинг курса

4.2
рейтинг
0
0
0
0
0

Может быть интересно

обновлено 27.10.2024 00:05
Java Advanced I: функциональное, асинхронное и реактивное программирование

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

Оставить отзыв
Поделиться курсом с друзьями