Что: интероп между Java и нативным кодом зачем: затем, что зачастую managed кода не хватает, приходится пользоваться нативными библиотеками, написанными (в лучше случае) на C. Как: так про это и весь доклад! есть куча вариантов, как это сделать, у каждого свои плюсы и минусы. В докладе успеем несколько их них рассмотреть, чтобы слушатель выбрал, какой под его задачу лучше подходит. Кочему: плюсы и минусы каждого подхода подробно описываются в докладе, чтобы здесь их перечислить 500 знаков не хватит.
ClickHouse — column-oriented DBMS. Конвейер обработки данных в ClickHouse оперирует кусочками столбцов — массивами однородных данных среднего размера. Для управления ресурсами для этих объектов было …
В докладе будут рассмотрены способы передачи компилятору информации об используемых данных и действиях над ними: от single compilation unit, link time optimization и static initialization до consteva…
Когда мы работаем с БД, мы зачастую получаем сырые буферы, в то время как хочется получать данные в виде структур, классов и контейнеров C++. Рассказ о проектировании и реализации драйвера PostgreSQ…
Код языка C++ подобен минному полю. Поэтому качественный внимательный code-review крайне полезен. Этот доклад улучшит ваши навыки в этом нелёгком деле. Мы поговорим о некоторых паттернах ошибок, о ко…
What do threads, atomic variables, mutexes, and conditional variables have in common? They are the basic building blocks of any concurrent application in C++, which are a big challenge even for the e…
Каждый новомодный язык программирования норовит заявить о том, что он быстрее, надёжнее и вообще по всем параметрам в несколько раз лучше C++
C++17 is a huge combination of small new features both in the language and the library. These features have more poser but also more traps than you might expect. These traps are not theoretical. They…
Рассказываем о фреймворке Яндекс Go и его внутреннем устройстве. Доклад будет интересен людям, которые хотят разобраться в устройстве корутиновых движков и работе асинхронных фреймворков. Вы узнаете:…
Как известно, языки программирования слабы в описании того, что нужно делать разработчикам. Они, конечно, пытаются помочь, но не всегда успешно. В результате программы содержат множество ошибок, что …
Для нашей кодобазы на 2М строк кода с зависимостью от 80 сторонних библиотек (включая MFC) мы долгое время использовали С++11 в Visual Studio 2013 (только под Windows), а теперь используем С++17 в Vi…
Глубокий рассказ о метапрограммировании в ретроспективе. Обсудим общие подходы в метапрограммировании, а затем перейдём к спискам типов. По шагам напишем небольшую библиотеку для работы со списками т…
Доклад посвящён одному из подходов реализации метаклассов (пропозал p0707 rev3 — последний доступный публично на текущий момент) для тех версий компиляторов, которые не поддерживают ни статической ре…
Initialisation semantics is widely regarded as one of the most difficult aspects of the C++ language. We have many different kinds of initialisation and many different syntaxes for it, and they inter…
Too often, C++ developers tend to ignore ABI compatibility problems and think that incompatibilities are limited to changes in the interface of the library motivated by new features or bugs. However,…
В жизни любого специалиста наступает момент, когда во всех существующих инструментах чего-то не хватает. То вендор IDE фичу никак не реализует, то фреймворк изобрели на свою голову, а про инструменты…
Java 11/12 introduced two new Garbage Collectors: ZGC and Shenandoah. The main objective of these two new GCs is to reduce GC pauses to only few milliseconds (and possibly under a millisecond), there…
Поговорим про JPA и тонкие моменты, связанные с этим фреймворком. Начнем с простых примеров: когда получается N+1 запрос и в каком случае Lazy не работает так, как интуитивно ожидается. Дальше уг…
Массовый переход от монолитов к микросервисам решает одни проблемы, но создаёт другие — взаимодействие сервисов существенно сложнее и дороже, чем взаимодействие объектов в памяти. Частично упростить …
Современный фронтенд — это богатое клиентское приложение, оперирующее развесистым набором данных. Однако, оставаясь в парадигме архитектуры «клиент-сервер», такие приложения всё ещё требуют серверног…