Черная магия unsafe в Go

Вопросы языкознания

C/C++
Оптимизация производительности
GO
Лайфхаки

Доклад принят в программу конференции

Мнение Программного комитета о докладе

В стандартной библиотеке Go есть пакет с отпугивающим названием "небезопасно". В этом докладе просто, но обстоятельно, рассказывается когда unsafe может быть реально полезен, и как использовать его надёжно и эффективно.

Целевая аудитория

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

Тезисы

Доклад охватывает различные аспекты безопасного и небезопасного использования пакета unsafe в Go, при помощи которого можно ускорять код в десятки раз!

Мы узнаем, как можно создавать срезы без дорогостоящей инициалиации, научимся избавляться от Bound Checks и конвертировать строки в срезы и обратно без лишних копирований и аллокаций памяти... Дополнительно мы сравним пакет unsafe в Go с указателями из С/С++ и посмотрим на некоторые паттерны С++, которые можно в некоторых ситуациях применять при программировании на Go.

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

Владимир Балун

Независимый эксперт

Основатель balun.courses и it-interview.io
Еx-Team Lead в Яндекс, ex-ведущий разработчик в Ozon, ex-разработчик в Mail.ru и Тинькофф

Независимый эксперт

Ozon — ведущая платформа e-commerce в России. В команде Ozon Tech почти 4 000 инженеров — и она продолжает расти. Десятки миллионов людей пользуются сервисами Ozon, их IT-инфраструктура управляет миллионами процессов каждый час. Микросервисы на Go и C#, в стеке технологий есть Vue.js, Swift и Kotlin, Kubernetes, Kafka, Hadoop и ClickHouse.

Видео