Этюды о буферизации: асинхронные оповещения, репликация обновлений, объединение ожидающих запросов

Практика разработки конкретного приложения может приводить к постановке задачи, которая, в зрелом размышлении, оказывается достаточно общей, чтобы вычленить её в абстракцию, потенциально полезную для множества различных приложений. Приведение решения к виду, пригодному для многократного применения, в отличие от решения, отвечающего нуждам конкретного приложения, требует дополнительных мыслительных усилий по выделению вариативных аспектов задачи, и по их моделированию средствами языка.

В докладе представлен опыт реализации трёх абстракций, объединенных общей темой — буферизацией данных при многопоточной обработке. Показан ход мысли от анализа задачи до реализации средствами языка C++17.

Скачать презентацию

Вадим Винник

Ведущий разрабочик в SolarWinds, кандидат физико-математических наук, автор книг и научных публикаций по теории программирования, переводчик книг по программированию, преподаватель программирования и сопутствующих разделов математики. Любимые языки: C++ и Haskell.

Вадим Винник CoreHard C++ Community