РоссияМосква

Moscow C++ User Group & Kaspersky

30 апреля 2020 / 16:00

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) как сделать так, чтобы перебор всех вариантов не занял сотню лет.

Персональные данные сотрудников опубликованы исключительно с целью представления пользователям веб-сайта и предназначены только для ознакомления на данном веб-сайте.