Это вторая лекция пятого занятия Части 1 курса [Modern Backend] под названием «Рефакторинг параллельных вызовов API (2)».
На этой лекции мы проведём сессию живого кодирования, в ходе которой напишем и протестируем фактический код проекта доски объявлений на основе архитектуры структурированной конкурентности (StructuredTaskScope), разработанной на предыдущем занятии.
📌 Основные темы обучения:
-
Проверка ограничений и поведения существующего тестового кода на основе CompletableFuture
-
Отключение и включение preview-опции Java 25 (--enable-preview) в build.gradle
-
Реализация параллельных операций fork(), join() и get() с использованием try-with-resources и StructuredTaskScope
-
Удаление существующей конфигурации пула потоков ExecutorService (AppConfig), которая больше не требуется
-
Добавление обработки исключения StructuredTaskScope.FailedException в GlobalExceptionHandler
-
Проверка распространения исключений и поведения отмены путём запуска модульных тестов после завершения рефакторинга
Рассмотрим практический процесс рефакторинга, позволяющий аккуратно перейти от существующего кода на основе пула потоков к коду со структурированной конкурентностью.