Начало основного контента

Настройки

Время в программе указано для вашего часового пояса ().

  • Практичный C++

    • Доклад

      С++ лямбда идиомы

      Язык -RU

      В этом докладе рассматривается ряд интересных паттернов программирования с лямбдами: от возможностей, которые появились в С++11, до методов, которые станут возможными в грядущем стандарте С++23.

    • Доклад

      Запускаем почти произвольный код через WebAssembly на backend-end

      Язык -RU

      Многие думают, что wasm — это только для браузера. Это не так — его запускают и на бэкенде. Wasm позволяет запускать произвольный код на различных скриптовых языках, вроде JS, Python или Lua, в едином окружении и одновременно.

      В докладе рассказывается про все ограничения серверных приложений созданных на базе виртуальной машины wasm и связанные с этим возможности.

    • Доклад

      A Practical Approach to Error Handling

      Язык -EN

      Every program may encounter errors, some originating from internal bugs in the program, others coming from the environment the program is operating in. Ignoring all errors will make the program utterly unreliable, while treating every conceivable one introduces lots of extra complexity with little benefit. At think-cell, we have been using and refining our own principled approach to error handling, which we have not seen elsewhere. This talk describes our method, so that in your next project you can write more reliable software with less effort.

    • Доклад

      Монолит vs Микросервисы, и Как эффективно работать с последними в C++

      Зал 1
      Язык -RU

      Раньше в Такси была монолитная архитектура, но потом монолит стал разрастаться, и начались проблемы. Как эти проблемы преодолевали, к чему пришли, для чего нужен собственный фреймворк userver, а также о его устройстве — Антон расскажет в своем докладе.

    • Доклад

      Как упростить себе жизнь при разработке клиентского приложения на современном С++: пример VK Звонков

      Зал 1
      Язык -RU

      Разработка десктопного приложения VK Звонки была настоящим челленджем. Команда поставила перед собой сразу несколько целей: предоставить нативные сборки под Windows, macOS и Linux, добиться максимальной производительности и качества и снять при этом ограничение на число участников в звонке. А еще сделать все это в максимально сжатые сроки. Для этого пришлось заранее продумать, как срезать некоторые острые углы, неизбежно возникающие при разработке на C++.

  • Производительность

    • Доклад

      Практики оптимизации производительности на примере ClickHouse

      Язык -RU

      Максим расскажет, как оптимизируют производительность в ClickHouse: перформанс-тесты и практики. Расскажет про инфраструктуру, которая используется для анализа производительности запросов и нахождения мест, которые следует оптимизировать. Обсуждается выбор структуры данных, библиотек, написание специализаций.

    • Доклад

      Доклад про декомпилятор GPGPU

      Язык -RU

      Михаил и Кристина расскажут, что можно делать после того, как разработчик применил все классические оптимизации, про которые рассказывают на курсах по GPGPU. А ещё в докладе рассказывается про несколько алгоритмов, применяемых в декомпиляторах, и их адаптации для архитектуры видеокарт.

    • Доклад

      Файловый и сетевой стек в Userland: почему их нужно использовать в 2022 году 

      Зал 1
      Язык -RU

      IO-перформанс становится все популярнее, и вот почему:

      • появляется больше ядер;
      • PCIe Gen3 наконец-то уступает место PCIe Gen5 и перестает быть узким местом;
      • драйверы NVMe и 200G NIC означают, что сеть становится быстрее.

      Стеки которые были «ну, ок» в прошлом — теперь не ок. Невозможно увеличивать мощность железа и в то же время заниматься переключением контекста и прочим. И то, что раньше было «одним из вариантов», сейчас то, что нужно для приложений с высокой производительностью.

    • Доклад

      Что следует помнить C++ разработчику об архитектуре процессора

      Зал 1
      Язык -RU

      При больших нагрузках повышение эффективности кода может оказаться куда лучшей инвестицией, чем закупка новых ресурсов. Заглянем в «подкапотное пространство» процессора. Увидим, для чего там кэш, конвейер, векторные инструкции, а также посмотрим, что там есть ещё. Разглядим отличия x86 и ARM. Обсудим, каким должен быть код, который способен выжать из процессора все соки, а не ждать сотни циклов пока загрузится вон тот байт.

  • Tooling

    • Доклад

      Межмодульный анализ C++ проектов

      Язык -RU

      В первой части доклада спикер рассмотрит применение межмодульного анализа в известных компиляторах и то, как он связан с оптимизациями времени связывания (LTO). Во второй части — технические подробности реализации системы. Спикер расскажет о проблемах и решениях, с которыми столкнулась его команда, а также поделится идеями о некоторых оптимизациях, которые можно сделать.

       

    • Доклад

      Nobody Can Program Correctly: Lessons from 20 Years of Debugging C++ Code

      Язык -EN

      In this talk, the speaker would like to take you through the entire debugging process, starting with a program that crashes. What do we do next? Which questions do we have to ask? What information do we need? What can we do to find the cause of the crash? Which tools can help us in this quest? And last but not least, what can we do to make sure this bug never happens again? 

    • Доклад

      Экосистема вокруг ОС: какие инструменты нужны разработчику?

      Язык -RU

      Спикер даст свой взгляд на экосистему C++ разработчика под мобильные и встраиваемые системы, расскажет о новинках в KasperskyOS SDK.

    • Доклад

      Украшаем молоток: как автоматизировать разбор проблем в дебаггере

      Язык -RU

      Спикер покажет подходы к автоматизации разбора проблем на примере библиотечки скриптов, опубликованной в Open Source. Она предназначена для использования c WinDBG и с GDB и помогает в автоматизации ряда рутинных задач, возникающих при анализе причин падения программ как при отладке вживую, так и при работе с дампами памяти.

    • Доклад

      C++ компиляторы и оптимизация программ для открытой и свободной процессорной архитектуры RISC-V

      Зал 3
      Язык -RU

      Сергей расскажет о С/C++ компиляторе и оптимизации приложений для открытой и свободной процессорной архитектуры RISC-V — новом стандарте, меняющем мир микропроцессоров. Вы узнаете об истории развития архитектуры, современном состоянии и планах развития в международном сообществе RISC-V, поддержке архитектуры в инструментах разработки, оптимизациях и трансформациях кода на уровне исходного кода и компилятора, подсказках позволяющих улучшить производительность и использовании расширений системы команд.

  • Software Design

  • Системное программирование

    • Доклад

      Go и мир системного программирования

      Язык -RU

      В докладе обсуждается, можно ли считать Go «системным ЯП» и что вообще под этим подразумевается. Будет возможность написать пару несложных приложений и библиотек, которые обычно пишут на «системных ЯП», и посмотреть, какую цену за это придется заплатить.

    • Доклад

      Голый Rust

      Язык -RU

      Роман покажет внутреннее устройство std/core языка Rust, примитивы и подходы, которые можно применить для низкоуровневого программирования (модуля ядра Linux, под микроконтроллеры). Бонусом будет объяснение принципов работы безопасной многопоточности.

  • Возможности новых стандартов

    • Доклад

      Учимся готовить C++ корутины на практике, часть 2: генераторы

      Язык -RU

      Корутины — мощный инструмент, добавленный в C++20. В этот раз доклад посвящен части корутин, отвечающей за генераторы. Будет рассказ о том, как работают корутины, о ключевом слове co_yield и о том, как концептуально работают простые и асинхронные генераторы.

    • Доклад

      Reflection TS: будущее рефлексии в C++

      Язык -RU

      В докладе рассматриваются те изменения, которые произошли с появлением Reflection TS:  новые возможности и ограничения, которые привносит эта спецификация. Также будет возможность опробовать новинку в деле и обсудить, чего по-прежнему не хватает.

  • Security

    • Доклад

      Безопасный дизайн на С++

      Язык -RU

      Обзор подхода «secure by design», при котором безопасность достигается путем изначально правильного проектирования. Будут рассмотрены паттерны безопасного дизайна и примеры их использования на С++.

    • Доклад

      Украшаем молоток: как автоматизировать разбор проблем в дебаггере

      Язык -RU

      Спикер покажет подходы к автоматизации разбора проблем на примере библиотечки скриптов, опубликованной в Open Source. Она предназначена для использования c WinDBG и с GDB и помогает в автоматизации ряда рутинных задач, возникающих при анализе причин падения программ как при отладке вживую, так и при работе с дампами памяти.

  • ML

    • Главная студия

      Разговор в студии про C++ в ML

      Язык -RU

      На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к ML, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?

      Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: Ашотом Варданяном, Станисловом Кирилловым. А провести эту беседу поможет Павел Филонов.

      • Ашот Варданян
      • Станислав Кириллов
      • Юлия Головчанская
      • Павел Филонов
  • ILP

    • Доклад

      Что следует помнить C++ разработчику об архитектуре процессора

      Зал 1
      Язык -RU

      При больших нагрузках повышение эффективности кода может оказаться куда лучшей инвестицией, чем закупка новых ресурсов. Заглянем в «подкапотное пространство» процессора. Увидим, для чего там кэш, конвейер, векторные инструкции, а также посмотрим, что там есть ещё. Разглядим отличия x86 и ARM. Обсудим, каким должен быть код, который способен выжать из процессора все соки, а не ждать сотни циклов пока загрузится вон тот байт.

  • Метапрограммирование

    • Доклад

      Декларативное метапрограммирование: обработка списков на этапе компиляции

      Язык -RU

      Механизм шаблонов в языке C++ позволяет построить библиотеку достаточно сложных алгоритмов обработки списков, включающих поэлементное преобразование, фильтрацию, поиск и сортировку. Для реализации таких алгоритмов подходит декларативный стиль. На примере обработки списков демонстрируется метод декларативного метапрограммирования.