Заходят как-то на электронную почту разработчики на C++, а там письма про легаси...
И это не начало анекдота, а начало email-проекта Ghost in the code — серии писем от опытных инженеров о том, какие инструменты и процессы помогают наладить работу с легаси-кодом. Среди авторов — Антон Полухин, Константин Владимиров, Андрей Карпов и другие инженеры из крупных технологических компаний. Первое письмо придет 15 сентября, а пока выясним, о чем расскажут эксперты и что ждет тех, кто решит все задачи от авторов.
В чем суть
Мы решили исследовать легаси-код на C++ вдоль и поперек: от начала работы с кодовой базой до выстраивания процессов в команде с учетом легаси. Опыт авторов уложили в бесплатную серию писем, которые будут приходить раз в неделю. В течение проекта эксперты готовы ответить на ваши вопросы, а в конце ждет розыгрыш, о котором еще напишем. Кто они, наши «охотники на призраков в коде»? Давайте знакомиться.
Кто и о чем расскажет

Антон Полухин
Руководитель группы разработки общих компонентов в Яндекс Go, председатель Российской рабочей группы по стандартизации C++
Письмо Антона — о поэтапной модернизации C++ и о том, как постепенно использовать возможности новых стандартов, не ломая обратную совместимость.

Константин Владимиров
Эксперт по архитектуре в Синтакоре
Константин расскажет, как справляться с классическими проблемами кода на C++: утечки памяти, случаи двойного освобождения и в целом сложность ручного управления динамической памятью, особенно когда речь заходит про кастомные аллокаторы. Рассмотрим, как бороться с ними техническими средствами — санитайзерами — и с помощью механизмов абстракции, которые предлагает стандарт C++26.

Александр Иргер
Эксперт по разработке ПО в YADRO
Без стабильной сборки и автоматизации любой рефакторинг превращается в лотерею. Александр расскажет, как перейти с устаревших Make и autotools на CMake или Bazel, наладить воспроизведение старых тулчейнов в Docker, а еще настроить кеширование зависимостей, базовый CI-пайплайн и стратегии постепенной миграции без остановки разработки.

Андрей Карпов
Директор по развитию бизнеса в PVS-Studio
Андрей покажет, что проблемы можно выявлять как анализаторами, так и компиляторами, если правильно их настроить. Рассмотрим стандарты для написания кода (SEI CERT, MISRA) и отраслевые стандарты, которые предписывают, как правильно использовать компиляторы и анализаторы.

Юлия Головчанская
Ведущий разработчик на C++
Из письма Юлии вы узнаете, как быстро войти в кодовую базу без документации. Научимся отделять «живое» от «мертвого» и проверим, где AI реально экономит недели, а где заводит на неверные тропинки.

Алексей Веселовский
Независимый инженер
Техническая часть готова, но без отладки процессов улучшения не закрепить. Алексей расскажет, как настроить документирование архитектурных решений, онбординг новых разработчиков и метрики здоровья кода (churn, complexity, coverage). А еще разберемся, когда стоит рефакторить, когда — переписывать с нуля и как продавать бизнесу необходимость поддержки легаси.

Илья Шишков
R&D-разработчик в СберТехе
Илья столкнулся с ситуацией, когда верхний уровень аллокатора обещает типичное поведение при нехватке памяти. Но нижний уровень ведет себя иначе и роняет всю базу данных с ошибкой. Илья потратил много времени, чтобы понять, в чем дело, и починить аллокатор. В письме он расскажет, как не попасть в эту ловушку.
Авторы приготовили для читателей задачи по темам писем. Среди тех, кто пришлет ответы на все задачи, мы разыграем полезные подарки: мерч проекта, книги Константина Владимирова и Антона Полухина с автографами, карьерную консультацию с экспертом YADRO.
Подпишитесь сейчас, чтобы не пропустить начало проекта →
Комментарии (3)

Yura_PST
24.08.2026 14:05Вопрос, как быть с тридцатилетним легаси спагетти, не будет рассматриваться?
eoanermine
Лучше бы эту серию писем опубликовали в виде статей или постов на Хабре :(
yadro_team Автор
Добрый день, Данил! По итогам проекта мы соберем PDF-документ со всеми письмами и пришлем на почту, которую вы укажете в форме подписки. Если не хочется читать каждое письмо отдельно, можно дождаться общего файла