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.
Илья расскажет, как понимая принципы обработки изображений, можно реализовать утилиту на C++, которая генерализует весь мир за сутки. И чем подход к генерализации карт в 2ГИС отличается от других.
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.
Узнайте, что вас ждет в ближайшие 4 дня. Ведущие расскажут о расписании, интересных докладах и о том, в каком формате они пройдут, а также о том, как работает наш сайт, где будут проходить дискуссии, как подключаться к чатам и где задавать вопросы спикерам.
Иногда хочется магии, которая бы вызывала обработчик и раскладывала поля запроса в параметры функции за тебя. Еще сильнее этого хочется, когда обработчиков со множеством параметров становится много.
В этом докладе мы сконцентрируемся на type erasure, чтобы создать удобный и дружелюбный для разработчика способ организации обработчиков запросов.
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++ разработчика по направлению работы с архитектурой.
Посмотрим, как обычно проходит интервью, какие знания и навыки нужны кандидату, и заодно разберем ошибки, которые могут допустить обе стороны.
Доклад посвящен разбору одной часто встречающейся на практике проблемы — выносу тяжелой операции с UI-потока. Еще одна нетривиальная часть работы с фоновыми операциями — реализация отмены. Мы поочередно рассмотрим, как это все можно написать, с тремя основными механизмами асинхронного программирования.
Спикер рассмотрит применение Lua-скриптов для реализации типичных паттернов и решения типичных задач в области IoT. Использование скриптов позволяет повысить гибкость системы, легко адаптировать ее под нужды конкретного заказчика, избежать многократного переписывания исходного кода при изменении требований к проекту. Применение Lua-скриптов рассматривается на примере простого демонстрационного приложения, разработанного на MFC для MS Windows. Приложение позволяет модифицировать скрипты «на лету» и изучать, как это скажется на логике работы системы.
В ходе доклада попытаемся разобраться, что не так с assert, изучим, что такое контрактное программирование и как выглядит «правильная» программа, взглянем на не дошедшие до C++20 контракты, а также поговорим о том, как быть, если хотим контракты уже сейчас.
На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к базам данных, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще плюсам в этой сфере осталось недолго?
Помочь разобраться в этом могут опытные люди. Поэтому поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: с Константином Осиповым, Алексеем Миловидовым и Андреем Аксеновым. А провести эту беседу поможет Павел Филонов.
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.
In this talk we will delve into the gory details of designing and implementing variant types, with an emphasis on layout, construction, and destruction.
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.
В докладе представлена C++ библиотека, унифицирующая интерфейс к AoS- и SoA-подходам к организациям данных, а также даны количественные и аналитические результаты их сравнения.
Доклад знакомит слушателей с концепциями, разнообразием и архитектурными особенностями встраиваемых систем и рассматривает специфику использования С++ для разработки встраиваемого ПО.
Валерий расскажет о Futures и о том, какие оптимизации можно использовать при их реализации на примере опенсорс-библиотеки https://github.com/YACLib/YACLib.
Разбираем, что полезного несут в себе рекомендации по созданию отказоустойчивого, надежного, «безбажного» ПО из стандарта ISO26262, а также когда и почему им не стоит следовать.
Если вы думаете, что знаете все способы прострела ноги в C++, то возможно ошибаетесь. Спикеры приглашают вас на экскурсию по скользким тропинкам вашего любимого языка программирования. Вас ожидают спрятанные грабли, заряженные ружья и ямы, заполненные UB. Запасайтесь попкорном!
В докладе приведены: примеры кода на С++ с обозначенными уязвимостями; полезные практики для их сокращения; а также архитектурный подход "Secure By Design", используемый в KasperskyOS для митигации последствий.
Оптимизируя одну характеристику, мы зачастую жертвуем другой. Насколько возможно совместить надежность и производительность. Обсудим конкретные кейсы и общие камни преткновения. Вместе поищем компромиссы и обходные пути для сложных примеров.
На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к Embedded, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?
Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: Владимиром Вишневским и Игнатом Ворошиловым. А провести эту беседу поможет Кирилл Тихонов.
В начале года команда поняла, что можно оптимизировать время на участие инженеров в найме, чтобы они проще переключали контекст между рабочими задачами. Спикеры поделятся, как искали моменты, где имеет смысл что-то улучшить, и послушают, как оптимизируют процессы знакомства и технических интервью в своих командах участники. Обсудим, как не проводить собеседования впустую для самого кандидата и интервьюера. И просто поговорим о наболевшем в найме.
Техническое интервью — сложная штука сама по себе, и не все представляют, как оно проходит. А когда интервью имеет узкую направленность, то тем более.
Егор Суворов проведет собеседование с Ильей Шишковым, который условно будет работать с алгоритмической секцией. Цель — показать, как оно обычно проходит, какие знания и навыки нужны кандидату, а заодно разобрать ошибки, которые могут допустить обе стороны.
Тревожность — младшая сестра страха. Что это: механизм эволюции, сохранивший наш биологический вид, или тормоз развития нашей карьеры? Как определить грань, которая отделяет пользу от вреда, как научиться контролировать нежелательные последствия тревожности для развития? В своем выступлении Олег расскажет, как выявлять причины, и продемонстрирует простую и действенную технику управления собственной тревожностью.
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.
Редко попадаются программы, в которых бы не понадобилась работа со строками. Если не ограничиваться латиницей ASCII, придется иметь дело с локалями и национальными алфавитами.
Денис с удовольствием покопался в исходниках рантайм-библиотек и обнаружил множество нюансов, о которых хотел бы рассказать. Рассмотрим, что предлагает современный C++ для хранения, сравнения и обработки Unicode-строк. Насколько эти операции производительны и какие предположения могут оказаться неверными?
В прошлый раз Алексей подробно разобрал внутреннее устройство ASan, теперь пришла очередь рассказать, как устроен TSan, что у него под капотом, что он может, а что он не может.
Представьте, что вы решили в первый раз попробовать инструмент статического анализа. Запускаете анализ и получаете сотни или тысячи предупреждений. Среди них, конечно, будут и ложные срабатывания. Увы, но статический анализ без них невозможен. В итоге впечатление об инструменте будет зависеть от того, какие предупреждения вы посмотрите первыми.
Команда Николая подумала над этим и решила сделать механизм Intelligence Diagnostic Filter, который позволяет смотреть лучшие срабатывания.
В этом докладе увидим его конкретную реализацию в плагине для Visual Studio 2022.
Михаил покажет, как добавить собственные проверки в clang-tidy и начать автоматически рефакторить свою кодовую базу. Проведет небольшую экскурсию в экосистему LLVM и объяснит, как искать паттерны в AST и как использовать это для автоматизации рутины и мини-рефакторинга. Частично затронет тему libtooling, clang-query. Заходите поговорить о ручном и автоматическом рефакторинге и попробовать что-то новое.
Олег расскажет, как команда считала проходимость магазинов и пропускную способность перекрестков с помощью даркнета и YOLO9k; как оптимизировала модуль матчмейкера в криптобирже и почему C++ остается хорошим выбором.
На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к GameDev, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?
Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: Кириллом Шабординым, Владимиром Атамановым и Андреем Аксеновым. А провести эту беседу поможет Александр Пирогов.
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?
Profile-guided optimization — довольно мощная техника, которая позволяет улучшить производительность приложения. В данном докладе мы разберемся, как эта техника устроена, как ее можно настроить, и как получить максимум пользы от ее использования.
На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к HFT, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?
Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: Михаилом Матросовым, Олегом Фатхиевым и Артёмом Верхоглядовым. А провести эту беседу поможет Павел Филонов.
Seastar — это кооперативная среда выполнения ScyllaDB. С этого года она первой начала использовать корутины C++20 для системного ПО производственного уровня. В этом докладе спикер расскажет об использовании корутин в Seastar, подводных камнях компилятора и стандартов, а также о преимуществах корутин перед программированием на основе функций.
Рассказываем о среде, процессах и методологиях разработки в Лаборатории Касперского с точки зрения инженера и с точки зрения менеджера, который помогает инженерам делать их работу наиболее рационально.
Александр представит обзор двух популярных кросс-платформенных пакетных менеджеров для C++, рассмотрит различия в походах, возможности интеграции, добавления своих библиотек.