[Modern Backend] Это вторая лекция седьмого занятия части 1 курса «Рефакторинг распространения контекста (2)».
В этой лекции мы применяем механизм автоматического наследования ScopedValue к разделу параллельного выполнения (StructuredTaskScope) проекта доски объявлений, а также рассматриваем шаблоны привязки на асинхронных границах и стратегии рефакторинга без побочных эффектов.
📌 Основные темы:
-
Принцип, согласно которому состояние привязки ScopedValue родительского потока автоматически наследуется при вызове fork() в разделе параллельного выполнения
-
Удаление и упрощение кода ручной передачи контекста (set/clear) в существующем асинхронном коде
-
Предотвращение побочных эффектов без изменения кода низкоуровневых компонентов (VirusScanClient, Thumbnailer) за счёт сохранения сигнатуры RequestContext.get() без изменений
-
Рассмотрение ограничений автоматического распространения ScopedValue и шаблонов привязки для различных границ выполнения (модульные тесты, пакеты @Scheduled, @Async и другие)
-
Предварительное знакомство с проверкой распространения контекста посредством написания модульных тестов в 7.6 и намеренного вызова ошибок компилятора
Изучите архитектуру Modern Java, которая безопасно наследует контекст в средах с виртуальными потоками и структурированной конкурентностью без необходимости в отдельной ручной работе.