Почему вы должны научиться использовать дженерики

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

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

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

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

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

программисты на Go

Тезисы

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

Да, из всех средств написания запутанного кода на Go дженерики, пожалуй, самое мощное. Именно поэтому мы должны научиться использовать дженерики правильно.

Почему бы просто не отказаться от них полностью, раз они такие опасные? Вот об этом я и хочу вам рассказать.

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

30+ лет профессионального стажа. Полжизни в эксплуатации. Последние 9 лет пишет на Go.

YADRO

YADRO создает все, без чего невозможно представить современную связь и интернет: системы хранения данных, серверы, коммутаторы, базовые станции 2G/4G и сети операторской связи — от прототипов и «железной» реализации до ПО. Если вы пишете софт в большой российской IТ-компании или банке, с высокой вероятностью ваши сервисы крутятся, а данные ваших клиентов хранятся на их оборудовании. Пожалуй, одни из самых интересных исследовательских задач для C++-, Go-разработчиков и инженеров по тестированию вы встретите у них.

Видео