Конференция C++ Russia, 2016

26-27 февраля 2016
Санкт-Петербург, Россия
Купить видео
В избранное

Гор Нишанов

Principal Software Developer в Microsoft

Joel Falcou

Associate Professor в Université Paris Sud

Дмитрий Кашицын

Разработчик в HDSoft (Zodiac Interactive)

Дмитрий Демчук

Руководитель С++ направления в SimbirSoft

Антон Полухин

Старший разработчик C++ в Яндекс

О мероприятии

Это независимая конференция C++ разработчиков. Организаторы собирают лучших докладчиков из России и Европы на два дня вместе. Конференция ориентирована на опытных разработчиков, никаких вводных лекций, только современный C++, матрёшки и блины!

Для кого

  • CIO
  • Тимлидам
  • Разработчикам
  • Студентам технических ВУЗов
Поделиться

Расписание

Развернуть все
 
Показать
цену в
$
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Гор Нишанов

Principal Software Developer в Microsoft

C++ Coroutines – a negative overhead abstraction

C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Гор Нишанов

Principal Software Developer в Microsoft

C++ Coroutines – a negative overhead abstraction

C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Joel Falcou

Associate Professor в Université Paris Sud

Boost.SIMD

SIMD machines — machines capable of evaluating the same instruction on several elements of data in parallel — are nowadays commonplace and diverse, be it in supercomputers, desktop computers or even mobile ones. Numerous tools and libraries can make use of that technology to speed up their computations, yet it could be argued that there is no library that provides a satisfying minimalistic, high-level and platform-agnostic interface for the C++ developer.

The design of Boost.SIMD is made so as to be as lightweight as possible; as a component of the larger numerical computation library NT2 — which uses it, along with SMP, MPI and GPGPU technologies, to build tables and matrices –, it is dedicated to only deal with SIMD. Therefore its main abstraction is that of the SIMD register, i.e. the base unit the SIMD processing unit manipulates; and albeit it provides a platform-agnostic and high-level interface, it is designed so that low-level issues can remain a primary concern to the user.

Boost.SIMD also relies on the Boost.Proto DSEL framework so as to detect certain code patterns and map them to the most efficient solution. This is for example used for the fused multiplication/addition instructions, available on Altivec and on future generations of x86, but also for other things such as detection of values that are necessarily in a given range.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Кашицын

Разработчик в HDSoft (Zodiac Interactive)

Троллейбус из буханки: алиасинг и векторизация в LLVM

Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково: -fno-strict-aliasing. На вопросы новичка, более опытные коллеги отвечают в стиле: «не трогай! а то все сломаешь!». Новичок и не трогает. В докладе будет предпринята попытка заглянуть под капот и понять, что же там, внутри. Что такое алиасинг, где он может быть полезен и какие реальные преимущества дает. Тема будет рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» будет центральным в повествовании.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Демчук

Руководитель С++ направления в SimbirSoft

Кроссплатформенный краш-репорт

Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Антон Полухин

Старший разработчик C++ в Яндекс

Немного о Boost

В рамках данного выступления вас ждут:
* рассказ о полезных и интересных вещах из Boost
* новости с передовиц разработки Boost и о новинках ожидаемых в следующих версиях
* что из Boost готовится к переезду в новый стандарт С++
* как экспериментировать с Boost, имея под рукой только браузер
* что людям не нравится в Boost и как с этими людьми бороться (-:

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Юрий Ефимочев

Ведущий разработчик в LogicNow

Компилируемые в реальном времени DSL для С++

В последнее время в промышленной разработке ПО особую популярность обретают Domain-Specific Lanugages (DSL). Они драматически упрощают разработку и дают возможность “программировать” не только программистам, но и пользователям прикладных программ.

В своем докладе я расскажу об опыте использования DSL применительно к С++, причем упор будет сделан на производительность кода DSL, и его мгновенную “встраиваемость” в запущенную программу путем компиляции DSL-кода в нативный код с помощью инструментария LLVM.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Антон Наумович

Менеджер разработки в LogicNow

Система автоматической крэш-аналитики своими средствами

В докладе будет рассмотрена система контроля качества с помощью снятия и анализа крэшдамп-файлов (применительно в первую очередь к системе Windows). Будет представлена архитектура и инструментарий для организации автоматического сбора и анализа крэшдамп-файлов, снимаемых в момент возникновения проблем в приложениях (падения, зависания, превышение потребления ресурсов – памяти, файловых дескрипторов и т.д.)

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Яна Нестеренкова

Разработчик в Artec 3D

Избегая синхронизации

Обзор того, как мы можем неплохо жить практически без синхронизации. Или минимизировать ее “присутствие” до еле уловимого – просмотрим около-связные концепты, “знаменитостей” направления и как это все можно использовать в повседневном обиходе (не дальше boost).

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Андрей Карпов

Технический директор в Системы программной верификации

Приватные байки от разработчиков анализатора кода

Доклад о редких нестандартных расширениях языка С++, про которые никто не знает, но которые надо поддерживать в анализаторе кода.
О магии Visual C++ с файлом stdafx.h, когда проект компилируется, хотя не должен. О том как зародился viva64 (предшественник PVS-Studio) для поиска 64-битных проблем. Как и почему исчез анализ кода, который одно время существовал в компиляторе Intel C++.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Илья Шишков

Разработчик в Яндекс

Принципы создания тестируемого кода

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Руслан Муллахметов

Разработчик С++ в Nemo Telecom Limited

Открытый и неинтрузивный менеджер зависимостей для С++

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Копляров

Senior Software Developer в Яндекс

Потокобезопасные сигналы в C++

Во многих ситуациях для передачи событий между различными компонентами системы бывает удобно использовать примитив “сигнал” – callback с несколькими получателями.

Распространённые подходы к реализации сигналов (boost, Qt) удобны в однопоточном окружении, но, к сожалению, имеют два недостатка при использовании из нескольких потоков: 1. Нет возможности атомарно подключиться к сигналу и получить текущее состояние объекта. 2. Отключение от сигнала плохо совместимо с идиомой RAII. В результате, “очевидный” код приводит к race condition’ам и обращениям к разрушенным объектам, а “правильный” подразумевает сложные схемы владения (shared_from_this, либо введение функционально избыточных объектов).

В докладе я расскажу об альтернативной реализации сигналов, лишённой этих недостатков, и объясню на примерах её преимущества перед boost::signals2.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Антон Семенченко

Соучередитель в DPI.Solutions

Сравнительный анализ инструментов Mock-ирования в C++ в примерах

Мы так часто слышим о Mock-ах в Java, C#, множестве других языков программирования, а как дело обстоит в С++? Оказывается – ну очень интересно: десятки библиотек, порой принципиально отличных друг от друга как по функциональности, так и стилю использования. Как выбрать правильную для вашего конкретного проекта, какими критериями руководствоваться? Как сдружить с выбранной библиотекой UnitTest-ирования? На все эти вопросы мы и постараемся найти ответы в примерах.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Kirk Shoop

Dev в Microsoft Open Technologies, Inc.

Reactive promgramming in C++

Talk about library for reactive programming in C++ Rx.cpp and reactive programming in general.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Алексей Кутумов

Программист в Лаборатория Касперского

Вектор с нуля

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

Рассмотрим публичный интерфейс вектора, чтобы было от чего отталкиваться. Выберем тип для итераторов. Чуть-чуть про аллокаторы, Немного о примитивных и очень простых методах, например begin, end и пр. Реализация методов insert, uninitialized_copy, uninitialized_fill, rotate и swap. Различные перегрузки метода insert. Различные типы итераторов.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Александр Фокин

Разработчик в Яндекс

Рефлексия в C++

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Нестерук

Технический евангелист в JetBrains

Паттерны Проектирования в XXI Веке

Популярность паттернов проектирования была обеспечена еще в 1994-м, когда Банда Четырех опубликовала свою бессмертную книгу. С тех пор паттерны проектирования остались полностью релевантными но, поскольку язык С++ меняется, меняются и варианты реализаций.

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Борис Сазонов

Software Engineer в Google

RAII потоки и CancellationToken в C++

Стандарт C++11 решил множество вопросов, связанных с многопоточностью. Однако в текущей реализации std::thread есть один очень важный недостаток ‒ он не является RAII объектом. Хуже того ‒ не вовремя вызванный деструктор std::thread (например, из-за исключения) завершит программу с помощью std::terminate(). У этого решения есть причина ‒ у объекта std::thread нет способа остановить выполнение той функции, которая в нём исполняется. Что приводит нас к главной проблеме: как остановить длительную функцию, которая выполнятеся в отдельном потоке, особенно если эта функция использует блокирующие вызовы ОС? Как правило, для этих целей используют механизм прерывания (POSIX, boost, C#, Java) или булевы флаги, но у каждого из этих подходов есть свои недостатки.

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Александр Гранин

Ведущий разработчик в 2ГИС

Функциональная “Жизнь”: параллельные клеточные автоматы и комонады в C++

Сейчас почему-то подвергают сомнению тезис, что ФП упрощает параллельный код. Люди путают функциональное программирование и императивное программирование с элементами ФП. Последнее, по сути, не особо помогает параллельному коду, хотя формально присутствуют и лямбды, и замыкания, и иммутабельность. Просто ФП – это больше, чем лямбды, замыкания и иммутабельность. ФП – это еще и композиция, дизайн, функциональные идиомы. Точно также, как ООП – это больше, чем просто классы, наследование и полиморфизм. Настоящий функциональный код и правда проще сделать параллельным.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Павел Довгалюк

Разработкой в Институт системного программирования РАН

Обратная отладка

Введение в принципы и идеи обратной отладки: возможность изучать причинно-следственные связи между сбоями и ошибками с помощью записи работы программы.
Некоторые инструменты обратной отладки могут автоматически “возвращаться во времени”, чтобы находить для некоторого использования переменной то место, где она была записана последний раз. Как пользоваться некоторыми существующими средствами обратной отладки: gdb и rr.

Краткий обзор полносистемной обратной отладки в qemu.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Михаил Матросов

Ведущий разработчик в Align Technology

Повседневный С++: boost и STL

В докладе будут даны рекомендации, как писать на современном С++ простой, выразительный и эффективный код для решения повседневных задач. Будет рассмотрен пример реального кода, с которым приходилось работать автору, и рассмотрено, как сделать его лучше с помощью ряда простых средств из STL и boost и применения хороших практик программирования. Доклад рассчитан на базовые знания языка.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Dori Exterman

Chief Technical Officer в IncrediBuild

Considerations for choosing the parallel computing strategy that fits your needs

Multi-core architecture is the present and future way in which the market is addressing Moore’s law limitations. Multi-core workstations, high performance computers, GPUs and the focus on hybrid/ public cloud technologies for offloading and scaling applications is the direction development is heading. Leveraging multiple cores in order to increase application performance and responsiveness is expected especially from classic high-throughput executions such as rendering, simulations, and heavy calculations. Choosing the correct multi-core strategy for your software requirements is essential, making the wrong decision can have serious implications on software performance, scalability, memory usage and other factors.
In this overview, we will inspect various considerations for choosing the correct multi-core strategy for your application’s requirement and investigate the pros and cons of multi-threaded development vs multi-process development.
For example, Boost’s GIL (Generic Image Library) provides you with the ability to efficiently code image processing algorithms. However, deciding whether your algorithms should be executed as multi-threaded or multi-process has a high impact on your design, coding, future maintenance, scalability, performance, and other factors. A partial list of considerations to take into account before taking this architectural decision includes:
• How big are the images I need to process
• What risks can I have in terms of race-conditions, timing issues, sharing violations – does it justify multi-threading programming?
• Do I have any special communication and synchronization requirements?
• How much time would it take my customers to execute a large scenario?
• Would I like to scale processing performance by using the cloud or cluster?

We will then examine these issues in real-world environments. In order to learn how this issue is being addressed in a real-world scenario, we will examine common development and testing environments we are using in our daily work and compare the multi-core strategies they have implemented in order to promote higher development productivity.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Александр Тарасенко

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

Использование python для автоматизации отладки С/C++ кода в Windows

В докладе будут рассмотрены случаи, когда автоматизация рутинных операций позволит существенно сократить время поиска проблемы при отладке кода или анализе аварийных дампов за счет быстрой разработки скриптов на языке python. В качестве средства автоматизации будет представлена связка Windbg + Python c пакетом PyKD . Будут даны краткие сведения по применению PyKD: установка, описание программного интерфейса. Будут расмотрены типичные случаи использования PyKD при отладке приложений на С/C++. В конце доклада будут расмотренны некоторые идеи по расширенному использованию PyKD.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Антон Нонко

Разработчик в Imaqliq

Классические строки в C++

Строки в C++ могут быть представлены по-разному. Обычно, строка – это объект класса std::string, но строковые литералы традиционно имеют тип char const*, с такими же строками приходится сталкиваться при работе с библиотеками, написанными на C. Вскоре ожидается включение в стандартную библиотеку класса string_view для работы с константными последовательностями символов без владения памятью.

Шаблон string_facade — попытка сгладить эти различия. Будет показано, как с его помощью легко создать класс-обертку для C-строки, имеющий удобный интерфейс; как избежать множества перегрузок функций, принимающих один или несколько строковых параметров; как создавать строки, необязательно физически являющиеся непрерывной последовательностью символов в памяти.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Никита Глушков

Руководитель отдела разработок новых технологий в SPB TV

К вопросу о реализации кроссплатформенных фреймворков

– Почему С++
– Решаемые нами задачи и используемые архитектурные решения
– Как мы уменьшаем затраты на интероп, почему мы используем некоторые велосипеды
– Низкоуровневые решения, обеспечение кросс-компилирования, принципы разработки кода.


Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Билеты

Показать
цену в
$
Видеозапись
Доступ к записям всех докладов
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Организатор

C++ User Group
http://cpp-russia.ru

Организационный комитет: Сергей Платонов, conf@cpp-russia.ru, 79052927713

Похожие мероприятия

24-29 сентября 2017
Докладов 139
Просмотров 8
C++, Development, Код, Программирование, Разработка, Язык программирования
25-26 августа 2017
Докладов 8
Просмотров 4
C++, Development, Код, Программирование, Разработка
24-25 февраля 2017
Докладов 26
Просмотров 2
C++, Development, Код, Программирование, Разработка
показать еще