РоссияМосква
Moscow C++ User Group & Kaspersky
30 апреля проведем онлайн встречу сообщества Moscow C++ User Group.
Последнее время нам часто задают вопросы про WASM, и, чтобы ответить на многие из них мы позвали Андрея - он расскажет как устроена виртуальная машина и объяснит формат байткода WebAssembly и почему С++ 20 с модулями - идеальный компаньон wasm. Вы узнаете много нового про устройство виртуальной машины WebAssembly.
Далее мы узнаем как быстро разработать «микросервис» с REST-API,на базе одного фреймворка, разберемся что такое «сервер приложений на C++», какие есть элегантные способы обеспечения слабой связности между модулями.
И в заключение поговорим про тестирование: но не простое тестирование, а тестирование автоматов. Тестирование - само по себе сложная тема, но становится еще сложнее, когда надо протестировать автомат, в котором может создаваться примерно полтора миллиона уникальных состояний.
Очевидно, что исчерпывающее тестирование в таких ситуациях - сложная, а местами и нерешаемая задача, уходящая в бесконечность по времени, или по потреблению ресурсов. Рассмотрим как решать подобную задачу на примере автомата, управляющего VPN-клиентом.
Дата и формат проведения:
Онлайн трансляция
Программа
16:00
Развернуть описание
WebAssembly без купюр
Андрей Роенко
руководитель группы разработки Яндекс
В этом докладе вы узнаете про то, как устроен WebAssembly и почему именно таким образом. Спикер разберет виртуальную машину, ее возможности и ограничения, формат байткода, текущие реализации.
Никаких «мы скачали emscripten и что-то там скомпилировалось и как-то там работает.
16:30
Развернуть описание
Fast development или OSGi для c++ разработчиков
Александр Бычук
Software Architect в Kaspersky
В наше время очень важно иметь возможность быстро разрабатывать, и мир c++ не очень-то нас жалует в этом смысле.
Особенно остро вопрос встает, кода быстро нужно разработать «микросервис» с REST-API, базой, логированием, пользователями, обновляемыми модулями и плагинной системой.
На базе одного фреймворка разберемся, что такое «сервер приложений на с++».Рассмотрим как обеспечивается слабая связность и модульность.
Увидим, что в c++ коде можно писать аннотации и они будут нужны не только программисту.
REST-API, javascript. и это не nodejs, а очень даже с++
17:00
Развернуть описание
Исчерпывающее тестирование конечного автомата, или как перебрать 2^150 вариантов за 2 секунды
Игорь Гусаров
Software Expert
В докладе рассматривается ситуация, когда нужно убедиться в качестве реализации конечного автомата (конкретный пример — автомат, управляющий VPN-клиентом). При этом формальную верификацию кода выполнить технически сложно, а получить гарантии корректного поведения в любых обстоятельствах всё-таки хочется. Возможный выход — исчерпывающее тестирование, т. е. перебор всех возможных комбинаций событий.
Теоретически возможных состояний автомата — примерно полтора миллиона, возможных событий (стимулов, приводящих к изменению состояния автомата) — примерно 30, цепочка событий легко может достигать длины 50 и более (по факту максимальная нетривиальная цепочка содержала 93 события). Очевидно, что выполнить даже 30^50 тестовых прогонов невозможно ни по времени, ни по потреблению ресурсов.
Доклад посвящён описанию подхода к решению двух проблем такого тестирования:
1) как обойтись без ручного задания ожидаемых результатов каждого теста;
2) как сделать так, чтобы перебор всех вариантов не занял сотню лет.
Персональные данные сотрудников опубликованы исключительно с целью представления пользователям веб-сайта и предназначены только для ознакомления на данном веб-сайте.