Серверная платформа A7 управляет умными домами, зданиями и диспетчеризацией: инженерные системы, устройства, сценарии. Я написала основную часть исходного сервера, а в 2026 году самостоятельно переписала его ядро с Qt на чистый C++17.
Задача: новая архитектура без потери накопленных данных и с проверяемым путём перехода со старой версии. Платформа эксплуатируется на действующих объектах, поэтому каждый шаг переезда должен быть проверяемым.
Что спроектировано заново:
• Хранилище: объекты в арене, ссылки «слот + поколение» вместо голых указателей, журнал изменений (WAL) и снимки.
• Снимок без остановки сервера.
• Мигратор со старой базы с независимой проверкой результата.
• Паспорт схемы вместо пересборки на каждом старте.
• Скриптовый движок: JS-подобный язык, компилятор и виртуальная машина с бюджетом времени и отменой.
• Сеть и оборудование — в плагинах с бинарно стабильным C-интерфейсом; правки конфигурации без рестарта.
Старый сервер служил эталоном: новое ядро сверялось с ним на реальных данных, на границах этапов — санитайзеры адресов и гонок.
• Пауза на снимок базы: 3,63 с → 12 мс на стенде с 33 000 устройств и 5 000 кадров в секунду, потерянных кадров нет.
• Выгрузка из 3,39 млн строк совпала со старой побайтно.
• Готовность сервера: 2 973 → 2 173 мс на базе из 580 тыс. объектов.
• Около 380 тыс. строк C++ вместе с тестами, 6 100 автотестов, полный прогон без отказов, 155 файлов документации.
Ядро работает на стендах и в песочнице. Так же подхожу к чужому коду: сначала разобраться в связях и формате данных, потом менять архитектуру, не теряя данные и путь перехода со старой версии.
В оформлении обложки использованы изображения, созданные нейросетью; экраны на снимках — из самих проектов.