Павел Новиков
Делаем стейт машины из шаблонов и корутин
Конечный автомат, в простонародье стейт машина,— простой и очень экспрессивный метод описания логики.
Часто логика, которую нужно закодировать, или уже представлена в виде стейт машины, или сама напрашивается, чтобы её закодировали в таком виде.
В C++ нет стандартных способов представить стейт машину, поэтому (в дополнение к множеству уже существующих способов) мы рассмотрим как это можно реализовать на современном C++ ещё двумя способами:
* с помощью шаблонной магии,
* а также используя корутины.
По дороге мы разберём несколько приёмов, которые могут вам пригодиться в самых разных ситуациях, не связанных со стейт машинами.
Алексей Миловидов
Фазинг: практические кейсы в ClickHouse.
Фазинг - один из наиболее эффективных методов поиска багов и краевых случаев. Есть много способов его использовать, и основной принцип - чем разнообразнее, тем лучше. В своём докладе я расскажу какие методы фазинга мы применяем сейчас, как мы к этому пришли и что получили.
Анастасия Казакова
Статический анализ кода++
В одной из статей Мартин Фаулер писал, что софт более высокого качества обходится дешевле в создании (а не только поддержке, как можно было бы подумать). Отчасти поэтому сообщество C++ довольно тепло встретило C++ Core Guidelines, представленные в 2015 году. Хотя в них не всегда четко прослеживается грань между абстрактными советами в стиле «хорошо писать хорошо» и более
конкретными предложениями, которые можно реализовать в статических анализаторах, наподобие «в таких ситуациях надо проверять вот это». Что же умеют современные статические анализаторы? Какие типичные боли C++ и стилистические неточности они отлавливают? Как разработчики предпочитают взаимодействовать с подобными инструментами? В докладе поговорим об этих вопросах и даже обсудим геймификацию в анализаторах кода.
В мире С++ бытует мнение, что компиляция - процесс медленный.
Почитывая документацию к компиляторам на ночь, обнаружил, что разработчики компиляторов подготовили инструменты для анализа процесса компиляции. И теперь мы знаем, что именно съедает время.
Применение инструментов позволило на порядок ускорить сборку одной библиотеки.
В докладе:
* посмотрим как запрофилировать компилятор
* попробуем применить это знание к библиотеке sltbench
* рассмотрим базовые техники ускорения компиляции шаблонов
С++ - инженер в Align Technology. Окончил ММФ НГУ. Волей судьбы удалось познакомиться с С/С++ в Intel MKL, мобильной/core разработке 2ГИС и Я.Браузере.
Иван Афанасьев
Compile time:
Profile. Visualize. Speedup.
Первухин Дмитрий
Бесшовное внедрение сетевых приложений.
Доклад про возможность снижения простоя при внедрении сетевых приложений.
Любое внедрение высоконагруженного сетевого сервиса является риском и требует большой и тщательной подготовки. Далеко не всегда можно воспользоваться ныне стандартными решениями бесшовной миграции на новую версию приложения.
В докладе будет рассказано как обеспечить внедрение новой версии сетевого приложения без какого-либо влияния на пользователей сервиса.