• Смотреть запись

    Тип доклада: Доклад

    Getting the most out of GDB

    GDB is more powerful than you probably think. Lots of short and simple examples demonstrating the more advanced features of GDB, Once you know about them you'll be able to debug more productively.

  • Смотреть запись

    Тип доклада: Доклад

    Нестандартное применение алгоритмов обработки изображений на примере карт 2ГИС

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

  • Смотреть запись

    Тип доклада: Доклад

    Designing for the long term: Invariants, knobs, extensions, and Hyrum's Law

    This talk will address some of the basic ways that design and invariants interact with long-term maintenance and optimization, and some heuristics for deciding whether adding a knob will turn out to be a mistake.

  • Смотреть запись

    Тип доклада: Обсуждение

    Открытие конференции C++ Russia 2021

    Узнайте, что вас ждет в ближайшие 4 дня. Ведущие расскажут о расписании, интересных докладах и о том, в каком формате они пройдут, а также о том, как работает наш сайт, где будут проходить дискуссии, как подключаться к чатам и где задавать вопросы спикерам.

  • Смотреть запись

    Тип доклада: Доклад

    Веселье с type erasure + раскладываем данные из абстрактной структуры в параметры функции

    Иногда хочется магии, которая бы вызывала обработчик и раскладывала поля запроса в параметры функции за тебя. Еще сильнее этого хочется, когда обработчиков со множеством параметров становится много. В этом докладе мы сконцентрируемся на type erasure, чтобы создать удобный и дружелюбный для разработчика способ организации обработчиков запросов.

  • Смотреть запись

    Тип доклада: Доклад

    Concurrency in C++20 and beyond

    The evolution of the C++ Concurrency support doesn't stop there: the committee has a continuous stream of new proposals. This talk also introduced some of the most important of these, including the new Executor model.

  • Смотреть запись

    Тип доклада: Обсуждение

    Разговор в студии о С++ в компиляторах

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

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

  • Смотреть запись

    Тип доклада: Доклад

    Анатомия асинхронных движков

    В последние годы практически во всех языках программирования набирают популярность асинхронные движки с корутинами. Давайте взглянем, как эти движки устроены и что в них хорошего для I/O-bound-приложений.

  • Смотреть запись

    Тип доклада: Собеседование

    Техническое интервью: Архитектурная секция

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

    В рамках эфира из главной студии одно из таких собеседований проведет Александр Гранин. Он будет рассматривать кандидата Павла Филонова из ПК на позицию C++ разработчика по направлению работы с архитектурой.

    Посмотрим, как обычно проходит интервью, какие знания и навыки нужны кандидату, и заодно разберем ошибки, которые могут допустить обе стороны.

  • Смотреть запись

    Тип доклада: Доклад

    Фоновыe задачи: Управления ресурсами и отмена

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

  • Смотреть запись

    Тип доклада: Доклад

    Интеграция Lua-скриптов в приложение на C++ для реализации паттерна Visitor

    Спикер рассмотрит применение Lua-скриптов для реализации типичных паттернов и решения типичных задач в области IoT. Использование скриптов позволяет повысить гибкость системы, легко адаптировать ее под нужды конкретного заказчика, избежать многократного переписывания исходного кода при изменении требований к проекту. Применение Lua-скриптов рассматривается на примере простого демонстрационного приложения, разработанного на MFC для MS Windows. Приложение позволяет модифицировать скрипты «на лету» и изучать, как это скажется на логике работы системы.

  • Смотреть запись

    Тип доклада: Доклад

    JIT в ClickHouse

    Максим расскажет, как он и его коллеги делали JIT-компиляцию запросов и операции GROUP BY в ClickHouse.

  • Смотреть запись

    Тип доклада: Доклад

    Контрактное программирование в C++

    В ходе доклада попытаемся разобраться, что не так с assert, изучим, что такое контрактное программирование и как выглядит «правильная» программа, взглянем на не дошедшие до C++20 контракты, а также поговорим о том, как быть, если хотим контракты уже сейчас.

  • Смотреть запись

    Тип доклада: Обсуждение

    Разговор в студии о С++ в базах данных

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

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

  • Смотреть запись

    Тип доклада: Доклад

    Just Enough Assembly for Compiler Explorer

    In this talk you'll learn the very basics of X86 Assembly and the X86_64 calling convention, just enough to understand the full Assembly listing of simple functions on Compiler Explorer.

  • Смотреть запись

    Тип доклада: Доклад

    Embracing (and also Destroying) Variant Types Safely

    In this talk we will delve into the gory details of designing and implementing variant types, with an emphasis on layout, construction, and destruction.

  • Смотреть запись

    Тип доклада: Доклад

    (ab)using enum

    Using Enum — небольшая фича С++20 со своими маленькими граблями. Елена покажет полезные, вредные и неочевидные примеры использования.

  • Смотреть запись

    Тип доклада: Доклад

    Zen and the art of code lifecycle maintenance

    What is Software Quality, and how do we improve it? We look at a set of related principles and practices that help us get there, and along the way define what Quality actually is.

  • Смотреть запись

    Тип доклада: Доклад

    Взаимозаменяемые AoS- и SoA-контейнеры

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

  • Смотреть запись

    Тип доклада: Доклад

    С++ в мире встраиваемых систем

    Доклад знакомит слушателей с концепциями, разнообразием и архитектурными особенностями встраиваемых систем и рассматривает специфику использования С++ для разработки встраиваемого ПО.

  • Смотреть запись

    Тип доклада: Доклад

    The next level of C++20 Templates: Concepts and more

    In this session, we will look into some changes that templates received with C++20. The biggest change is the introduction of concepts.

  • Смотреть запись

    Тип доклада: Доклад

    Погружение в Futures: подходы к реализации Task Parallelism

    Валерий расскажет о Futures и о том, какие оптимизации можно использовать при их реализации на примере опенсорс-библиотеки https://github.com/YACLib/YACLib.

  • Смотреть запись

    Тип доклада: Доклад

    Функциональная безопасность и парадоксы ее требований. Лучшие практики против худших рекомендаций

    Разбираем, что полезного несут в себе рекомендации по созданию отказоустойчивого, надежного, «безбажного» ПО из стандарта ISO26262, а также когда и почему им не стоит следовать.

  • Не записывалось

    Тип доклада: Доклад

    C++ puzzlers

    Если вы думаете, что знаете все способы прострела ноги в C++, то возможно ошибаетесь. Спикеры приглашают вас на экскурсию по скользким тропинкам вашего любимого языка программирования. Вас ожидают спрятанные грабли, заряженные ружья и ямы, заполненные UB. Запасайтесь попкорном!

  • Смотреть запись

    Тип доклада: Доклад

    Ошибки С++, приводящие к уязвимостям, и их митигация на KasperskyOS

    В докладе приведены: примеры кода на С++ с обозначенными уязвимостями; полезные практики для их сокращения; а также архитектурный подход "Secure By Design", используемый в KasperskyOS для митигации последствий.

  • Не записывалось

    Тип доклада: Доклад

    Производительность и надежность: как совместить

    Оптимизируя одну характеристику, мы зачастую жертвуем другой. Насколько возможно совместить надежность и производительность. Обсудим конкретные кейсы и общие камни преткновения. Вместе поищем компромиссы и обходные пути для сложных примеров.

  • Смотреть запись

    Тип доклада: Обсуждение

    Разговор в студии о С++ в Embedded

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

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

  • Не записывалось

    Тип доклада: Доклад

    Лучше меньше, да лучше: как оптимизировать время на собеседования

    В начале года команда поняла, что можно оптимизировать время на участие инженеров в найме, чтобы они проще переключали контекст между рабочими задачами. Спикеры поделятся, как искали моменты, где имеет смысл что-то улучшить, и послушают, как оптимизируют процессы знакомства и технических интервью в своих командах участники. Обсудим, как не проводить собеседования впустую для самого кандидата и интервьюера. И просто поговорим о наболевшем в найме.

  • Смотреть запись

    Тип доклада: Собеседование

    Техническое интервью: Алгоритмическая секция

    Техническое интервью — сложная штука сама по себе, и не все представляют, как оно проходит. А когда интервью имеет узкую направленность, то тем более.

    Егор Суворов проведет собеседование с Ильей Шишковым, который условно будет работать с алгоритмической секцией. Цель — показать, как оно обычно проходит, какие знания и навыки нужны кандидату, а заодно разобрать ошибки, которые могут допустить обе стороны.

  • Смотреть запись

    Тип доклада: Доклад

    Программируем видеокарты: введение в основные виды GPGPU-оптимизаций

    Доклад посвящен обзору установившихся практик разработки эффективных программ для видеокарт.

  • Не записывалось

    Тип доклада: Доклад

    Тревожность и карьера

    Тревожность — младшая сестра страха. Что это: механизм эволюции, сохранивший наш биологический вид, или тормоз развития нашей карьеры? Как определить грань, которая отделяет пользу от вреда, как научиться контролировать нежелательные последствия тревожности для развития? В своем выступлении Олег расскажет, как выявлять причины, и продемонстрирует простую и действенную технику управления собственной тревожностью.

  • Смотреть запись

    Тип доклада: Доклад

    Typescripten — generating type-safe JavaScript bindings for emscripten

    WebAssembly has become a very popular target platform for C++ developers. However, emscripten does not provide type-safe wrappers to the standard JavaScript APIs. Open source tool "typescripten" has been built on top of three powerful technologies to close this gap, but it easy to say than do, as usually. Sebastian will discuss the challenges we faced and the choices we made when designing this framework.

  • Смотреть запись

    Тип доклада: Доклад

    Неожиданные вещи, о которых нужно знать, работая с Unicode в C++

    Редко попадаются программы, в которых бы не понадобилась работа со строками. Если не ограничиваться латиницей ASCII, придется иметь дело с локалями и национальными алфавитами. Денис с удовольствием покопался в исходниках рантайм-библиотек и обнаружил множество нюансов, о которых хотел бы рассказать. Рассмотрим, что предлагает современный C++ для хранения, сравнения и обработки Unicode-строк. Насколько эти операции производительны и какие предположения могут оказаться неверными?

  • Смотреть запись

    Тип доклада: Доклад

    Анатомия ThreadSanitizer

    В прошлый раз Алексей подробно разобрал внутреннее устройство ASan, теперь пришла очередь рассказать, как устроен TSan, что у него под капотом, что он может, а что он не может.

  • Смотреть запись

    Тип доклада: Доклад

    Разработка встраиваемых баз данных: советы, трюки и подводные камни

    Александр затронет такие вопросы:

    • Передача больших объектов через границу языков.
    • Нативные типы — друг или враг?
    • RPC как способ манипуляции большими данными.
  • Смотреть запись

    Тип доклада: Доклад

    Улучшаем качество первого знакомства со статическим анализом с помощью Intelligence Diagnostic Filter

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

    Команда Николая подумала над этим и решила сделать механизм Intelligence Diagnostic Filter, который позволяет смотреть лучшие срабатывания. В этом докладе увидим его конкретную реализацию в плагине для Visual Studio 2022.

  • Не записывалось

    Тип доклада: Доклад

    Полуавтоматический рефакторинг всего с помощью clang-tidy и clang-query

    Михаил покажет, как добавить собственные проверки в clang-tidy и начать автоматически рефакторить свою кодовую базу. Проведет небольшую экскурсию в экосистему LLVM и объяснит, как искать паттерны в AST и как использовать это для автоматизации рутины и мини-рефакторинга. Частично затронет тему libtooling, clang-query. Заходите поговорить о ручном и автоматическом рефакторинге и попробовать что-то новое.

  • Смотреть запись

    Тип доклада: Доклад

    C++ в двух нетипичных проектах

    Олег расскажет, как команда считала проходимость магазинов и пропускную способность перекрестков с помощью даркнета и YOLO9k; как оптимизировала модуль матчмейкера в криптобирже и почему C++ остается хорошим выбором.

  • Смотреть запись

    Тип доклада: Обсуждение

    Разговор в студии о С++ в GamеDev

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

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

  • Смотреть запись

    Тип доклада: Доклад

    What I learned about language and library design by working on Swift

    What happens when you take a person steeped in C++ culture and design choices, and ask them to challenge assumptions in the creation of a new language?

  • Смотреть запись

    Тип доклада: Доклад

    PGO: Как устроено и как использовать

    Profile-guided optimization — довольно мощная техника, которая позволяет улучшить производительность приложения. В данном докладе мы разберемся, как эта техника устроена, как ее можно настроить, и как получить максимум пользы от ее использования.

  • Смотреть запись

    Тип доклада: Обсуждение

    Закрытие конференции С++ Russia 2021

    Подводим итоги, вспоминаем яркие моменты и рассказываем о дальнейших планах. Заходите на трансляцию, чтобы ничего не пропустить!

  • Смотреть запись

    Тип доклада: Обсуждение

    Разговор в студии о С++ в HFT

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

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

  • Смотреть запись

    Тип доклада: Доклад

    Корутины C++20 в Seastar

    Seastar — это кооперативная среда выполнения ScyllaDB. С этого года она первой начала использовать корутины C++20 для системного ПО производственного уровня. В этом докладе спикер расскажет об использовании корутин в Seastar, подводных камнях компилятора и стандартов, а также о преимуществах корутин перед программированием на основе функций.

  • Смотреть запись

    Тип доклада: Доклад

    Разработка в Лаборатории Касперского: как все устроено

    Рассказываем о среде, процессах и методологиях разработки в Лаборатории Касперского с точки зрения инженера и с точки зрения менеджера, который помогает инженерам делать их работу наиболее рационально.

  • Смотреть запись

    Тип доклада: Доклад

    Почему vcpkg не Conan

    Александр представит обзор двух популярных кросс-платформенных пакетных менеджеров для C++, рассмотрит различия в походах, возможности интеграции, добавления своих библиотек.