Открыто

FARM:Функциональная, асинхронная, реактивная, многопоточная Java [stepik] [Игорь Судакевич]

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

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

  1. 2 июн 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: FARM:Функциональная, асинхронная, реактивная, многопоточная Java [stepik] [Игорь Судакевич]

    i1110kWd.png

    Для кого этот курс
    • Java-программисты Middle-уровня, желающие глубоко освоить приемы создания асинхронно-реактивного кода для событийно-ориентированной и потоковой обработки данных, в т.ч. в Spring-приложениях.
    Начальные требования
    • Уверенное владение Java, желательно знание Spring и принципов взаимодействия с СУБД.
    Состав учебной программы:
    Модуль 1 (факультативный) — функциональная java (~6 часов видеолекций)

    • Лямбда-выражения и встроенные функциональные интерфейсы
    • Примитивные специализации, унарные и бинарные версии функциональных интерфейсов
    • Метод map(), в т. Ч. Его примитивные специализации
    • Поиск «короткозамыкающими» операторами
    • Применение класса optional, в т. Ч. Его примитивных специализаций
    • Фильтрация и обработка данных на stream-объектах, в т. Ч. Работа с методом flatmap()
    • Сортировка коллекций с применением stream api
    • Сегментирование / классификация элементов с помощью утилитарного класса collectors
    • Немутирующие редукторы при параллельной и последовательной обработке
    • Каррированные функции
    • Динамическая типизация и произвольные лямбда-выражения
    • Глубокое погружение в ссылки на методы
    Модуль 2 — асинхронная java (~6 часов видеолекций)
    Подмодуль 2. 1 – completable future

    • Проблемы синхронного кода в блокирующих сценариях
    • Sync и async методы в классе completablefuture
    • Combine-, composе- и anyof-операции
    • Специфика обработки исключений в completablefuture
    • Completablefuture в сценариях с пользовательскими executorservice-пулами
    • Отмена completablefuture
    • Применение completablefuture в потоках данных на практике
    • Подмодуль 2. 2 – неблокирующий ввод/вывод на базе nio
    • Основные различия между java nio и io
    • Потоко- и буфер-ориентированный ввод/вывод
    • Блокирующий и неблокирующий ввод/вывод
    • Java nio buffer, channel и selector
    • Direct и non-direct буферы
    • Mappedfilebuffer
    • Асинхронный ввод / вывод средствами nio
    • Класс filelock и избирательная блокировка файлов
    • Примеры промышленной nio-архитектуры (сервер netty, node. Js и др. )
    Модуль 3 — реактивная java (~21 часов видеолекций)
    Подмодуль 3. 1 – библиотека rxjava

    • Понятие «реактивность» и цели реактивного манифеста
    • Основы rxjava: observable и observer
    • Реактивные потоки в java 9
    • Методы с побочными эффектами
    • Обработка ошибок в полностью функциональном стиле
    • «горячие» и «холодные» паблишеры
    • Расшаренные и connectable-паблишеры
    • Утилизация реактивного конвейера (disposing)
    • Каталог наиболее востребованных реактивных операторов rxjava
    • Subjects
    • Многопоточность в реактивных стимах на базе schedulers
    • Противодавление (backpressure) и flowable-паблишеры
    • Тестирование реактивных конвейеров в rxjava
    Подмодуль 3. 2 – библиотека reactor
    • Флагманские паблишеры flux / mono и их операторы
    • Работа с backpressure в reactor
    • Поддержка многопоточности в reactor
    • Распараллеливание flux-конвейеров
    • Обертки для синхронных вызовов
    • Reactor-процессоры
    • Тестирование реактивных конвейеров в reactor
    Подмодуль 3. 3 – spring webflux и практическое реактивное программирование
    • Spring rest контроллеры, возвращающие реактивные данные как mono и flux
    • Функциональные контроллеры в webflux
    • Server-sent events (sses)
    • Webclient для получения потока реактивных данных от сервера
    • Реактивный доступ к субд
    • Реактивный драйвер r2dbc
    • Реактивные репозитории в spring data
    • Работа с реактивным репозиторием в spring data на примере mongodb
    • Бенчмаркинг для r2dbc и webflux против web mvc с jdbc
    • Рекомендуемые практики реактивного программирования
    • Бонусные лекции: реактивная имплементация брокера сообщений kafka
    Модуль 4 (факультативный) — многопоточная java (~6 часов видеолекций)
    • Создание рабочих подпроцессов (threads) на базе runnable- и callable-объектов, и применение интерфейсов executorservice и future для асинхронного исполнения задач
    • Выявление потенциальных проблем конкурентного режима, в т. Ч. Статическая блокировка (deadlock), зависание по недоступу к ресурсу (starvation), динамическая блокировка (livelock) и состояние гонки (race conditions / data race)
    • Применение ключевого слова synchronized и пакета java. Util. Concurrent. Atomic для управления порядком исполнения подпроцессов
    • Работа с синхронизационными примитивами, в частности, на базе интерфейса lock и классов reentrantlock, condition, cyclicbarrier, semaphore и др.
    • Fork/join framework и рекурсивная парадигма, в т. Ч. Top-down и bottom-up
    Преподаватель: Игорь Судакевич
    Свою первую строчку кода написал в нежном 11-летнем возрасте в уже легендарном 1973-м году. По первому образованию (МИСиС) инженер-исследователь, специалист в области автоматизации физико-химического эксперимента. Затем учился в MBA-колледже Эдинбургского универа, также в МГУ (лингвистика). Master of Computer and Internet Technology от унив-та шт.Пенсильвания (Ivy League). 15 лет жил и работал в Японии, где занимался вопросами обработки больших массивов данных (Big Data) в Институте статистики ООН для стран Азиатского и Тихоокеанского региона (SIAP). Oracle Certified Professional, Authorized Oracle Instructor. Java-методист c 20-летним стажем. Вел вебинары и очные занятия в учебных центрах "Люксофт", "ФОРС", "Инвека", "Academy IT". В наст.время преподает в Учебном центре IBS (Москва).

    Цена 15000 руб
    Скрытая ссылка
     
  2. Последние события

    1. Gepatd0000
      Gepatd0000 участвует.
      16 авг 2025
    2. ranzelfenrayz
      ranzelfenrayz участвует.
      24 июн 2025
    3. sourcherry
      sourcherry участвует.
      16 июн 2025
    4. JeBern
      JeBern участвует.
      7 июн 2025

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

    1. skladchik.com
      Нужен организатор складчины.
      6 июн 2025
    2. skladchik.com
      Назначен организатор.
      5 июн 2025
  3. Обсуждение
  4. 3 июн 2025
    #2
    akafloa
    akafloa ЧКЧлен клуба
    чем то отличается от "Java Advanced I: функциональное, асинхронное и реактивное программирование (часть 1) [IBS] [Игорь Судакевич]" ?
     
  5. 3 июн 2025
    #3
    SQLDeveloper
    SQLDeveloper СкладчикСкладчик
    Похоже только практической частью, которая для складчин не актуальна
     
    1 человеку нравится это.
  6. 5 июн 2025
    #4
    Сергей_Hurricane
    Сергей_Hurricane ЧКЧлен клуба
    Скорее всего только форматом изложения материала - в IBS курсе были записи живых занятий, а тут будет предзапись