Конференция 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
  • Тимлидам
  • Разработчикам
  • Студентам технических ВУЗов
Поделиться

Расписание

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

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

VP Enterprise Application Infrastructure в Morgan Stanley

C++ Core Guidelines

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

Reflection in C++Next

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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.

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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.

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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.

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

Илья Шишков

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

Роман Орлов

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

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

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

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

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

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

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

Fuzzing: The New Unit Testing

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

Евгений Зуев

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

Team Lead в GolosCore

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

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

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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++.

 

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

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

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

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

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

Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

Билеты

Видеозапись
Доступ к записям всех докладов
Куплено
В корзине
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно
Бесплатно

Организатор

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

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

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

24-29 сентября 2017
Докладов 139
Просмотров 1,92 млн
c++, development, код, программирование, разработка, язык программирования
25-26 августа 2017
Докладов 8
Просмотр 11,97 тыс.
c++, development, код, программирование, разработка
27-28 августа 2016
Докладов 11
Просмотров 16,45 тыс.
c++, development, код, программирование, разработка
ещё