7 — 8 апреля сообщество CoreHard провело в Минске восьмую международную конференцию CoreHard Spring 2018, посвященную языку С++ и сопутствующим «хардкорным» технологиям. В конференции участвовали спикеры из ведущих IT-компаний Беларуси, России, Украины, Германии и Голландии. Они рассказали о своем опыте в разработке и тестировании.
Теперь доклады с конференции размещены в свободном доступе на YouTube и все желающие могут познакомиться с ними. Благодарим организаторов конференции.
Евгений Охотников. 25 лет истории C++, пролетевшей на моих глазах
Автор доклада познакомился с C++ в 1991-ом году, а с 1992-го года C++ является для докладчика основным языком разработки. Что происходило с языком за это время? Как и почему он стал популярным? Как начался застой в развитии C++? Как C++ потерял свою популярность? Есть ли место для C++ в современном мире? Попробуем поговорить об этом, опираясь на 25-летний опыт программирования на C++.
Сергей Соложенцев. Фича-компонентный подход при разработке игр
Поговорим о том, как менялись подходы к работе с игровыми объектами в match 3 играх, и как мы пришли к текущему фича-компонентному подходу создания изменяемых игровых объектов. В чем его преимущества над остальными испробованными подходами для создания туториалов, многочисленных режимов, а также реюзинга кода.
Андрей Якимов. Перехват функций под Windows в приложениях с помощью C/C++
Расскажем о перехватах функций в приложениях написанных на различных языках и технологиях. В докладе будут рассмотрены: базовые понятия, области применения, разновидности методов перехвата и их технические особенности, готовые библиотеки.
Андрей Карпушин. C++ для web с помощью Emscripten
В докладе автор рассказывает о своем практическом опыте компиляции и использовании C++ на веб страницах, о том что нужно сделать, чтобы портировать приложение на С++ под веб, об ограничениях с этим связанных, об интеграции С++ кода с JavaScript и другими элементами веб страницы.
Василий Немков. Ядро мультикроптовалютного кошелька Multy
3,5 блокчейна в 2 мегабайта: как, зачем и почему. Особенности разработки кросс-платформенных решений для блокчейна.
Александр Маркевич. From C++ to Objective-C
В этом докладе автор рассказывает о том, что Obj-C/C++ — это расширение существующих C/C++. Также будут рассмотрены особенности языка, рассказано про управление памятью (retain/release vs. ARC vs. shared_ptr/unique_ptr), про Swift и почему он лучше или хуже Obj-C/C++.
Михаил Матросов. Многогранный С++ на практике
В С++ существует множество способов решения одной и той же задачи. Мы возьмём реальную задачу из практики автора и исследуем ряд инструментов С++ для её решения: контейнеры STL, boost.range, C++20 ranges, coroutines. Мы сравним решения с точки зрения их интерфейсов и производительности, а также увидим, как одно решение может быть легко получено из другого, если код правильно организован. В процессе мы посмотрим на возможности С++17: constexpr if, selection statements with initializer, std::not_fn, и т.д. Особое внимание будет уделено стандартным алгоритмам (моей любимой теме).
Павел Беликов. Как работает анализ Data Flow в статическом анализаторе кода
Анализ Data Flow (потоков данных) — технология анализа исходного кода программ, широко используемая в различных development tools: компиляторах, линтерах, IDE. Мы поговорим о нём на примере разработки статического анализатора. Рассмотрим классификацию и различные виды Data Flow анализа, смежные технологии, взаимодополняющие друг друга и проблемы, возникающие при его разработке, и сюрпризы, которые нам преподносит C++, когда мы пытаемся его проанализировать. В ходе доклада мы разберём несколько ошибок, найденных в реальных проектах с помощью этой технологии.
Александр Зайцев. Инструменты профайлинга С++ кода
Так бывает, что иногда ваше приложение начинает долго выполнять, казалось бы, обыденные задачи и потреблять большое количество оперативной памяти. А вы как разработчик и понятия не имеете, почему же так происходит (но вам интересно). В ходе доклада поговорим о средствах, которые могут нам понять причины странного поведения наших программ. Если не боитесь таких слов как Valgrind, gprof, gperftools и многих других — добро пожаловать!
Александр Чуприна. Настройка окружения для кросскомпиляции на основе docker'a
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
Алексей Ткаченко. Кодогенерация C++ кроссплатформенно
В докладе будет рассмотрена генерация кода при компиляции различных языковых конструкций, как простых, так и сложных, на различных платформах, как общераспространённых x86/x64, так и тех, которым уделяется меньше внимания: ARM, AVR. Также будут встречаться примеры для совсем экзотических процессоров вроде PowerPC и даже MicroBlaze. Основной упор будет делаться не на обработку данных, а именно на сопоставление различных конструкций кода с инструкциями целевых платформ.
Вадим Винник. Обработка коллекций: единая суть и множество проявлений
Сегодняшнее программирование разделено на множество областей, которые довольно далеки друг от друга. Существует ли вообще концептуально единое программирование и на чем держится это единство? Ответы на эти и другие вопросы дает автор доклада.
Nicolai Josuttis. Beware of C++17
The devil is in the detail. This also applies to C++17. We get new cool features, but we also get new things to care for and remember. This talk discusses some of the cool features when they may lead to surprises.
Дискуссии
Не пропустите дискуссии, на которых поднимались различные темы, посвященные обсуждению языков Rust и С++, а также ответы на вопросы членам C ++ Комитета по Стандартизации.
Andrey2008
Примечание. Обсуждение докладов на сайте linux.org.ru.