Корутины в продакшене: как перевести движущийся поезд на асфальт — Алексей Макареня, Kaspersky Lab

2 тыс. подписчиков

12+
12+

48 просмотров

15 дней назад

ПожаловатьсяНарушение авторских прав

2 тыс. подписчиков

12+
12+

48 просмотров

15 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

48 просмотров

15 дней назад

Миграция легаси-кода на современные технологии сродни замене рельсов под движущимся поездом. В этом докладе Алексей Макареня разобрал реальный кейс перехода зрелой акторной системы на C++20-корутины без остановки разработки и потери обратной совместимости. Он рассказал, как составить безопасный план миграции, с какими «подводными камнями» столкнулась команда и какие неочевидные архитектурные решения помогли успешно внедрить корутины в проект, писавшийся годами. 00:00 — Как устроен большой монорепозиторий и почему синхронная работа с сетью создаёт проблемы 04:00 — Переход от синхронного кода к callback и Fiber: преимущества и ограничения 07:40 — Почему выбрали корутины и как они помогают сохранить структуру кода 09:55 — Архитектура исходного сервера: акторы, gRPC и проблемы разорванного контекста 13:13 — План миграции: постепенный рефакторинг сервисов по методу Strangler Fig 16:39 — Выбор библиотеки корутин: ограничения и создание собственного решения 18:50 — Собственная библиотека корутин: основные примитивы и Promise 20:05 — Работа с gRPC: сравнение синхронного, callback и асинхронного API 24:35 — Генерация корутинного API для gRPC и сокращение boilerplate 25:27 — Middleware: авторизация, логирование и метрики без дублирования кода 28:52 — Интеграция с YDB и обёртки для callback-методов 29:55 — Мегафункция: сборка разрозненного кода в одну функцию 32:20 — Mega-PR и метод Микадо для поэтапного рефакторинга 34:25 — Предварительный рефакторинг и переход от callback к итераторам 36:29 — Очереди и scheduler: решение проблем с callback и периодическими процессами 38:15 — Неожиданный баг в Microsoft Visual Studio 41:16 — Итоги рефакторинга: упрощение кода, исправление ошибок и graceful shutdown

Название:

Корутины в продакшене: как перевести движущийся поезд на асфальт — Алексей Макареня, Kaspersky Lab