Конференция C++ Russia
Санкт-Петербург
19-21 апреля 2018

27
лучших докладчиков
1250
минут информации
для опытных
разработчиков

Конференция «C++ Russia» с блинами и матрёшками! Как всегда, лучшие докладчики
со всей страны на два дня. Конференция ориентирована на опытных разработчиков, никаких вводных лекций!

Место проведения: Санкт-Петербург, ул. Кораблестроителей, 14, гостиница Прибалтийская.

В течение года сообщество проводит встречи в разных городах России: Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге, Нижнем Новгороде, Саратове.
На встречах выступают докладчики из разных городов и стран.

Открывать конференцию будет Jon Kalb, разработчик с 25-летним стажем
В течение этого времени успел поработать в Amazon, Microsoft, Netscape,
Yahoo и других компаниях. Jon -- организатор конференции CppCon. Автор книги
C++ Today: The Beast is Back.

Доклады

21/04/18
Track D
16:00 - 17:00
Дмитрий Соколов
Дмитрий Соколов
Кодогенерация как рефлексия для бедных

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

20/04/18
Track C
16:00 - 17:00
Илья Шишков
Илья Шишков
Как научить языку C++: опыт создания курсов на Coursera

В течение последних полутора лет я руковожу созданием специализации на Coursera о современном C++. Специализация будет состоять из пяти курсов, два из которых уже запущены, а ещё один почти готов.

В своём докладе я хочу рассказать:

  • с какими проблемами мы столкнулись в работе над курсами (например, через 3 месяца работы мы выбросили все материалы и начали заново)
  • как мы формируем программу курсов и почему именно так (например, почему слово "указатель" не прозвучало в двух наших первых курсах ни разу)

Кроме того, за время работы над специализацией у нас выработался набор принципов, которые, я уверен, применимы и в повседневной работе:

  • в процессе интеграции нового сотрудника в проект
  • во время code-review
  • при найме Поэтому я не просто хочу рассказать, как мы делаем специализацию, но и попытаюсь переложить полученный опыт на повседневные задачи.

Slides in pptx

20/04/18
Track B
16:00 - 17:00
Александр Гранин
Александр Гранин
Функциональный подход к Software Transactional Memory

Параллельное программирование - тема очень многогранная и глубокая. За десятки лет исследований было выработано огромное количество подходов, практик и инструментов, но вряд ли мы можем считать, что язык C++ успевал за этими тенденциями. Начиная со стандарта C++11, были введены такие концепции как std::thread, std::atomic, std::future, std::mutex, а в будущем ожидается, что будут добавлены coroutines - модель асинхронных вычислений. Что ж, это все интересные вещи для изучения, - но речь в докладе пойдет о совершенно иной идее.

Software Transactional Memory (STM) - концепция транзакционно изменяемой модели данных - существует уже давно и имеет ряд реализаций для всех языков. С помощью STM вы выражаете свою модель данных, и запускаете ее на изменение в нескольких потоках, конкурентно, при этом вам не нужно беспокоиться о синхронизации потоков, о валидном состоянии данных, о блокировках. STM сделает все за вас. Звучит это очень хорошо, однако не все STM-библиотеки одинаково полезны. Традиционные императивные STM очень сложно устроены, подвержены нетривиальным многопоточным багам, и их трудно использовать. С другой стороны, в мире функционального программирования уже давно существует концепция комбинаторной STM, транзакции в которой являются компонуемыми кирпичиками, из которых вы строите транзакции более высокого уровня. Комбинаторный подход к STM позволяет выражать конкурентную модель данных более гибко, понятно и надежно. Параллельное программирование тоже может быть приятным!

В докладе я расскажу об особенностях комбинаторной STM, как ее использовать, и как ее можно реализовать в С++17.

Slides in pdf

20/04/18
Track C
13:45 - 14:45
Сергей Васильев
Сергей Васильев
Статический анализ: ищем ошибки... и уязвимости?

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

Один из способов борьбы с ошибками в коде – использование статического анализа. Но насколько он подходит для поиска уязвимостей? И так ли велика разница между простыми ошибками и уязвимостями с точки зрения кода?

Эти вопросы мы и обсудим в ходе доклада, а заодно поговорим о том, каким образом использовать статический анализ так, чтобы извлечь из него максимум пользы.

Slides in pptx

21/04/18
Track B
13:45 - 14:45
Андрей Карпов
Андрей Карпов
Эффективный C++
(Маерс тут ни при чём :)

Effective C++ (Myers has nothing to do with it :). The C++ ecosystem is still rapidly evolving, which makes this language one of the most effective tools of our time. I'd like to point out three reasons why C++ is so attractive nowadays. The first is the new extensions to the language standard that enable programmers to write effective and efficient code. The second is the maturity of the development tools and acceleration of the code building process. The third is the maturity of the auxiliary tools allowing us to keep control over the code quality and other aspects of the software development life cycle. This talk is an ode to the C++ language!

Язык C++ и инфраструктура вокруг него продолжает активно развиваться, что делает этот язык одним из самых эффективных инструментов в настоящее время. Хочется выделить три фактора, делающие язык C++ сейчас столь привлекательным. Первое: нововведения в стандарт языка, позволяющие писать эффективный код. Второе: зрелость инструментов разработки и увеличение скорости сборки проектов. Третье: зрелось вспомогательного инструментария, позволяющие контролировать качество кода и другие аспекты жизненного цикла проекта. Этот доклад - ода языку программирования C++!

20/04/18
Track C
17:00 - 18:00
Иван Пономарёв
Иван Пономарёв
Crash репорты Android NDK

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

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

Доклад будет интересен как Android-разработчикам, в чьих приложениях используется NDK, так и всем остальным для расширения кругозора.

Slides in pdf

Программа

Первый день конференции 19 апреля -- это день мастер-классов. Вы можете посетить один четыре мастер-классов на ваш выбор. Обратите внимание: два мастер-класса проходят на английском языке. Мастер-класс это практическое занятие под руководством опытного программиста. Для работы вам понадобится ноутбук, более подробные требования есть в описании каждого мастер-класса. На этот день продаётся отдельный билет.

20/04/18
track atrack btrack ctrack d
09:00 - 10:00 Регистрация
10:00 - 12:00 Jon KalbC++ Today: The Beast is Back
12:00 - 12:45 Кофе-брейк
12:45 - 13:45 Arno SchödlFrom Iterators To Ranges — The Upcoming Evolution Of the Standard Library Borislav StanimirovDynaMix: A New Take on Polymorphism Дмитрий БанщиковРазделяемые библиотеки без внешних зависимостей Фёдор КороткийПамять – идеальная абстракция
13:45 - 14:45 Jonathan Boccara105 STL Algorithms in Less Than an Hour Mikhail MatrosovVersatile C++ applied Сергей ВасильевСтатический анализ: ищем ошибки... и уязвимости? Алексей СалминMemory Management Tips & Tricks
14:45 - 16:00 Обед
16:00 - 17:00 Viktor KirilovInteractive C++ Compilation (REPL): The Lean Way Александр ГранинФункциональный подход к Software Transactional Memory Илья ШишковКак научить языку C++: опыт создания курсов на Coursera Herb SutterNew in C++20: The spaceship operator (operator<=>)
17:00 - 18:00 Victor CiuraEnough string_view to hang ourselves Вадим ВинникCollection Processing. Single essence, multiple manifestations Иван ПономарёвCrash репорты Android NDK Анастасия КазаковаОтладка кода на C++, без запуска и компиляции
18:00 - 19:00 Andrei AlexandrescuFastware

Билеты

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

Как всегда действует студенческая программа.
Для получения скидки пишите на
students@cpp-russia.ru

Входной билет

Посещение основной программы конференции 20-21 апреля

Мастер-класс

Однодневный интенсив, практика, индивидуальная работа. Необходим ноутбук.

Онлайн

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

Ужин с докладчиками

Горячая пища и общение с докладчиками в неформальной обстановке. 20 апреля в 20.00

Купить билет

Перейтик заказу билетов

Platinum спонсор

Gold спонсоры

Silver спонсоры

Community спонсоры

Контакты

Место проведения: Санкт-Петербург, ул. Кораблестроителей, 14, гостиница Прибалтийская.

Если у Вас есть вопросы,
их можно задать по телефону или почте

+7 (905) 292-77-13