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

24-25 февраля 2017
Москва, Россия
Смотреть
В избранное

Сергей Зубков

VP Enterprise Application Infrastructure в Morgan Stanley

Антон Бикинеев

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

Rainer Grimm

Trainer в Modernes C++

Сергей Шамбир

Ведущий инженер в iSpring

Ivan Cukic

Сore developer в KDE

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

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

Для кого

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

Расписание

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

Сергей Зубков

VP Enterprise Application Infrastructure в Morgan Stanley

C++ Core Guidelines

Эволюция C++ приводит к появлению новых конструкций, приемов и целых направлений программирования, но даже глубокое понимание каждой новой конструкции в отдельности не означает что ee применение, само по себе, сделает программу лучше, проще, эффективнее. Для решения этой проблемы Бъярне Страуструп и Херб Саттер создали C++ Core Guidelines: центральный набор правил и рекомендаций основанных на богатом опыте и принципах написания программ в стиле современного С++. В совокупности с библиотекой GSL и статическими анализаторами, Core Guidelines также ставят целью гарантированную безопасность работы с памятью и типобезопасность без потери приозводительности и выразительной мощи языка. В этом докладе будет рассмотрена история проекта С++ Core Guidelines, динамика его развития до и после выхода в open source, цели, главные правила, спорные правила, "не-правила" (мифы), правила будущего (концепции и контракты), автоматические проверки правил доступные в настоящее время, смысл подхода "подмножество надмножества", и как система типов делает C++ одновременно быстрее и безопаснее.

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

Антон Бикинеев

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

Reflection in C++Next

На протяжении всего существования C++ тема компайл-тайм рефлексии поднимается постоянно, но, к сожалению, до сих пор Стандарт языка не дает достаточных возможностей для извлечения и манипулирования компайл-тайм информацией. Большое количество библиотек и препроцессоров было придумано для того, чтобы решить эту проблему, начиная от простых макросов и заканчивая Qt-moc или ODB. В докладе Антон расскажет о том, как на эту проблему смотрит Комитет по Стандартизации: какие решения были предложены, и какое стало доминирующим.

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

Rainer Grimm

Trainer в Modernes C++

Programming at compile time

What have classical template metaprograming, the new type-traits library, and the constexpr functions in common? All three will be executed at compile time. Therefore, they combine high performance with enriched functionality.

High performance, because computations can be moved from runtime time to compile time. Enriched functionality, because computation at compile time can modify the resulting C++ source code. But how does the whole magic work? I will give you in my presentation a view under the hood. Therefore, you can better understand und use programming at compile time.

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

Сергей Шамбир

Ведущий инженер в iSpring

Адаптация Promise/A+ для взаимодействия между C++ и Javascript

Шаблоны — мощный инструмент, добавляющий в язык новые возможности, а программистам в команде — новые проблемы. Доклад покажет, как тщательно продуманный шаблонный код может не усложнить, а упростить жизнь и дать надёжную абстракцию межпроцессных межъязыковых асинхронных вызовов функций. С помощью шаблонов можно:

  • адаптировать Promise/A+ из Javascript для C++
  • автоматически проверять и раскладывать динамический массив аргументов на статичные аргументы функции
  • сделать аналог std::bind для weak_ptr.

Эти вещи будут показаны на примере взаимных вызовов между C++ и Javascript в одном приложении с помощью CEF3.

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

Ivan Cukic

Сore developer в KDE

Going functional

Functional programming is often said to be necessary in multi-threaded environments, but that is only one part of the story. Avoiding mutation helps avoid explicit synchronization of concurrent processes, but it can also be helpful in other circumstances.

In this talk, we are going to cover the basic ideas of functional programming and functional software design. We will focus mainly on how to design stateful software that never mutates any data, and how to do it optimally.

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

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

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

Как потратить 10 лет на разработку анализатора кода

Кто-то верно подметил, что разработчики статических анализатора часто сталкиваются с "проблемой айсберга". Им сложно объяснить разработчикам, почему сложно написать и развивать статические анализаторы кода. Дело в том, что сторонние наблюдатели видят только вершину всего процесса, так как им доступен для изучения только простой интерфейс, который предоставляют анализаторы для взаимодействия с миром. Это ведь не графический редактор с сотнями кнопок и рычажков. В результате и возникает ощущение, что раз прост интерфейс взаимодействия, то и прост продукт. На самом деле статические анализаторы кода — это сложные программы, в которых живут и взаимодействуют разнообразнейшие методы поиска дефектов. В них реализуется множество экспертные системы, выдающие заключения о коде на основе как точных, так и эмпирических алгоритмах. В парном докладе, основатели анализатора PVS-Studio расскажут о том, как незаметно потратить 10 лет, чтобы написать хороший анализатор. Дьявол кроется в деталях!

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

Timur Doumler

Senior software engineer в Music technology company ROLI

Readable Modern C++

C++ offers great performance and many powerful features like the standard library, a rich type system, and compile-time programming. However, it often ends up being hard to read. High-level languages like C++ are usually not written to communicate with compilers. They’re usually written to communicate with people. In fact, many developers spend more time reading and understanding other people's code than writing their own.

This talk focuses on how to optimise C++ code for being easily readable by average human developers, ideally being close to plain English. I will revisit best practices on naming, comments, and locality from a modern C++ perspective. Readability also means writing less code and avoiding repetitions and unnecessary noise. I will present practical use cases of modern C++ features that are especially effective to achieve this. I will finish the talk with an overview of new C++17 features aiming at more readable code, such as fold expressions, constexpr-if, and structured bindings.

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

Илья Шишков

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

Фитнес для вашего кода: как держать его в форме

Во время моего выступления мы поговорим о принципе "Minimize coupling, maximize cohesion". Обсудим, что это такое и что значат эти непонятные слова. Кроме того на приближенном к реальности примере мы рассмотрим, как, применяя указанный принцип, можно держать ваш код в форме, чтобы он был готов ко всем неожиданностям, которые подстерегают ваш проект в течение его жизни.

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

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

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

Повседневный С++: алгоритмы и итераторы

Я рассмотрю ряд простых прикладных задач и покажу, как их можно эффективно и элегантно решить с помощью стандартных средств современного С++. Доклад включает работу с залом: участники будут предлагать свои улучшения для конкретных примеров кода, а также отвечать на поставленные вопросы (например, найти ошибку в приведённом примере). Самые активные участники получат призы. Доклад рассчитан на базовые знания языка.

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

Василий Сорокин

Старший разработчик в Opensoft

Простой REST сервер на Qt с рефлексией

Библиотека Qt имеет довольно мощную систему рефлексии. На примере простого в использовании класса, позволяющего с помощью наследования быстро построить REST сервер под ваши нужды, я покажу как элегантно ее можно задействовать в реальной жизни. В заключительной части, покажу еще один пример когда рефлексия Qt помогает красиво протестировать испускание сигналов классом.

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

Денис Кормалёв

Ведущий программист в Опенсофт

История одного бага

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

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

Роман Орлов

Backend-разработчик системы документооборота и электронной отчетности СБИС в Тензор

Догнать и перегнать boost::lexical_cast

Из документации к библиотеке Boost Lexical cast известно, что преобразование целого числа в строку lexical_cast выполняет быстрее других стандартных средств. Можно ли написать более быстрый алгоритм с не меньшей степенью обобщенности?

В докладе будет рассмотрена реализация такого алгоритма, который на синтетических тестах опережает lexical_cast в 2-5 раз в зависимости от компилятора и флагов оптимизации. Особенность реализации состоит в отсутствии циклов и рекурсивных вызовов времени исполнения - только рекурсия на этапе компиляции. Также будут затронуты особенности компиляции предлагаемого решения на Сlang и GCC.

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

Григорий Демченко

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

Универсальный адаптер

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

Это позволяет добавлять необходимые свойства объектам, не переписывая его с нуля. Предложенная обобщенная концепция будет последовательно введена и проиллюстрирована простыми, но интересными примерами.

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

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

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

Как делать не надо: C++ велосипедостроение для профессионалов

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

  • Copy-On-Write
  • разработке без оглядки на готовые решения и к чему это приводит
  • force inline
  • оптимизациях, которые отлично себя показывают на бенчмарках и плохо себя ведут в реальной жизни
  • бездумно отключаемых оптимизациях компилятора
  • тонкостях стандартной библиотеки для повседневного использования
  • супер качественном велосипедостроении
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Виктор Ястребов

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

Как делать не надо: C++ велосипедостроение для профессионалов

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

  • Copy-On-Write
  • разработке без оглядки на готовые решения и к чему это приводит
  • force inline
  • оптимизациях, которые отлично себя показывают на бенчмарках и плохо себя ведут в реальной жизни
  • бездумно отключаемых оптимизациях компилятора
  • тонкостях стандартной библиотеки для повседневного использования
  • супер качественном велосипедостроении
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Вьюков

Программист в Google

Fuzzing: The New Unit Testing

Фаззинг - это тестирование программ на неправильных, неожидаемых или случайных входных данных. В докладе я расскажу о типах фаззеров, о том, как они работают и о существующих реализациях. Мы напишем и запустим настоящий фаззер. Найдем HeartBleed менее, чем за минуту. Так же я расскажу о том, как фаззеры могут угадывать правильные CRC чексуммы во входных данных, помогать с регрессионным тестированием, находить логические ошибки в коде и о том, как мы используем фаззинг в Google.

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

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

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

clang-tidy: путешествие внутрь C++ Abstract Syntax Tree

Семейство библиотек clang предоставляет разработчикам широчайшие возможности по реализации инструментов анализа C++ кода. Одним из таких инструментов является статический анализатор C++ кода clang-tidy. В докладе я расскажу как можно расширить возможности этого анализатора собственным проверками и где все это можно применить в процессе разработки. Попутно будут рассмотрены некоторые занимательные особенностями внутренней механики(абстрактного синтаксического дерева) С++.

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

Евгений Зуев

Профессор в Университет Иннополис

С++ в России: Стандарт языка и его реализация

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

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

Александр Боргардт

Team Lead в GolosCore

Модели акторов в С++ миф или реальность.

В настоящее время многие разрабатываемые решения носят характер сложных или распределенных систем.

Для построения таких систем часто используются Erlang, Elixir или Akka + family language of JVM. Благодаря чему они так хороши?

В Erlang, Elixir и Akkk применяется модель акторов на уровне языка или библиотеки как базовый подход.

Почему же С++ разработчики должны быть обделены?

Рассмотрим применение модели акторов на примере задачи из продакшена.

Поговорим о сложностях, которые встречаются при применении модели акторов.

В процессе обсудим "подводные камни", которые можно встретить в той или иной реализации модели акторов.

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

Евгений Охотников

Системный архитектор в Stiffstream

Для чего мы делали собственный акторный фреймворк и что в итоге получили?

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

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

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

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

Гарантии качества для крупных С++ проектов

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

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

Руслан Морозов

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

Внедрение практик безопасного кодирования

С++ - это мощнейший и очень динамически развивающийся язык программирования, позволяющий строить высокопроизводительные системы любой сложности. Один из главных принципов языка - "You don't pay for what you don't use". Такой подход возглагает большую отвественность на программиста в вопросах организации доступа к системным ресурсам. Из-за большого доверия, оказываемого компилятором программисту, любые ошибки в коде могут приводить к появлению уязвимостей в программной системе.

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

  • примеры типичных ошибок кода, приводящих к уязвимостям
  • существующие стандарты безопасного кодирования и как их внедрять
  • тандем GCC + Clang в контексте поиска проблемного кода и генерации более безопасного кода
  • использование санитайзеров
  • тестовое покрытие кода
  • статические анализаторы и почему их должно быть много
  • регулярное fuzzing тестирование
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

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

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

C++ без исключений, часть 3

Ранее я рассказывал о C++ без исключений, как с эти жить, как работать. Этот доклад является продолжением этой серии. Я рекомендую освежить в памяти предыдущие доклады, чтобы наша работа была более продуктивной. Мы обсудим механизмы создания, копирования и перемещения объектов, механизмы аллокации и деаллокации памяти, а также обработку ошибок и исключений. Также мы обсудим проблемы и неудобства, которые испытывает программист, когда пишет код без исключений. В конце, я попытаюсь показать, как можно проектировать структуры данных, контейнеры для удобной работы в средах с исключениями и без исключений.

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

Евгений Мурлаев

Senior Software Developer в Sperasoft Studio
и ещё 1
докладчик

Working with the compiler, not against it

The talk will look at limitations of compilers when creating fast code and how to make more effective use of both the underlying micro-architecture of modern CPU's  and how algorithmic optimizations may have surprising effects on the generated code. We shall discuss several specific CPU architecture features and their pros and cons in relation to creating fast C++ code. We then expand with several algorithmic techniques, not usually well-documented, for making faster, compiler friendly, C++.

 

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

Максим Хижинский

Ведущий программист в VASExperts

Итераторы в lock-free структурах данных

Итераторы и конкурентные map/set - на первый взгляд, несовместимые понятия. В мире lock-free, где содержимое мапы динамично меняется, пройтись по всем элементам контейнера и не упасть, казалось бы, невозможно. Или все же возможно?.. Какими свойствами должен обладать конкурентный контейнер, чтобы быть итерабельным?

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

Для всех, кому интересно, как lock-free выглядит изнутри.

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

Евгений Крутько

Старший научный сотрудник в НИЦ "Курчатовский институт"

C++17: параллельная версия стандартных алгоритмов

Каждый новый стандарт C++ приносит разработчикам новые инструменты, позволяющие реализовывать логику в гараздо более лаконичном, читаемом и в тоже время эффективном коде. В докладе пойдет реч о Parallel STL. Это расширение стандартной библиотеки из C++17 позволяет с минимальными усилиями делать многопоточными приложения, использующие стандартную библиотеку алгоритмов.

Куплено
В корзине
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
Просмотров 6
c++, development, код, программирование, разработка, язык программирования
25-26 августа 2017
Докладов 8
Просмотра 3
c++, development, код, программирование, разработка
27-28 августа 2016
Докладов 11
Просмотров 0
c++, development, код, программирование, разработка
ещё