Исследуем Go со всех сторон: обсуждаем конкурентность и безопасность, дискутируем о релизе 1.24
- четверг, 17 апреля 2025 г. в 00:00:07
Как реализовать подходы Mutex и lock-free и какой из них выбрать для решения вашей задачи? Как «подружиться» с пакетами unsafe и использовать их для эффективной разработки? И наконец, что ждет инженеров в релизе 1.24?
На эти и другие вопросы ответили Go-разработчики из YADRO, AvitoTech и Yandex, а мы принесли вам записи и презентации их обсуждений. Из докладов вы узнаете о работе с критической секцией и подводных камнях unsafe. А после просмотра дискуссии поймете, какие фичи из нового релиза сделают вашу жизнь лучше.
Инженер систем управления СХД в YADRO
Коротко о сути доклада: Один из очевидных способов работы с критической секцией в Go — добавление Mutex. Однако есть условия, когда предпочтительнее использовать другой подход — lock-free. Например, когда горутины не особо сильно конкурируют за критический ресурс. Илья покажет, как реализовать и Mutex, и lock-free, чтобы вы сами решили, какой подход вам ближе.
Зачем смотреть: Посмотреть, как устроен lock-free-подход к работе с критической секцией на примере реального проекта.
Go-разработчик с 13-летним стажем
Коротко о сути доклада: Многие инженеры избегают пакеты unsafe, считая их слишком сложными и небезопасными. Но так ли это на самом деле?
Нина рассказала о возможностях пакета unsafe, показала, где именно скрываются подводные камни, и объяснила, в каких ситуациях его использование оправдано. На конкретных примерах вы познакомитесь с оптимизацией структур, научитесь получать доступ к скрытым полям и эффективно преобразовывать данные для работы с промышленными протоколами. Кроме того, автор разобрала ключевые элементы пакетов unsafe, углубилась в тонкости адресной арифметики и показала, как освоить методы безопасного преобразования типов.
Зачем смотреть: Чтобы перестать бояться unsafe и научиться писать более надежный код с помощью пакетов.
Участники дискуссии:
Эксперт по разработке ПО и один из лидеров внутреннего Go-сообщества, YADRO
Старший инженер-программист, YADRO
Ведущий инженер в платформе, AvitoTech
Go-разработчик, Yandex. Преподаватель, ИТМО
Коротко о сути дискуссии: «Самый большой Сhangelog на моей памяти» — так Даниил Подольский описал объемы обновлений в Go 1.24. Действительно, в свежем релизе «подвезли» много интересных фичей: от постквантовой криптографии до нового финализатора. Но все ли они полезны для разработчиков? Есть ли в релизе фичи, которые мешают, а не помогают эффективной разработке?
Ведущие разработчики из крупных компаний обсудили эти вопросы, чтобы вскрыть все сильные и слабые места Go 1.24.
Зачем смотреть: Помимо наблюдения за полезной дискуссией, можно устроить игру «Проверь себя». Модератор встречи задает залу каверзные вопросы — например, про использование пакета unique
. Если не знаете ответов, делайте заметки, чтобы не забыть, какие темы в Go стоит освежить в памяти.
Что еще почитать про Go-разработку:
Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении
Это путь воина: как я выучил Python и Go с помощью Цеттелькастена и кому точно не рекомендую метод
Design by Contract на минималках: пишем assertions и улучшаем устойчивость на Go