Имеет ли опыт применения или наблюдал использование обобщенных типов (generics) в крупных проектах на языке Go кто-либо из вас?

Где в крупных кодовых базах можно увидеть использование `type parameters` или можете поделиться опытом использования на производстве?
  • 19 декабря 2023 г. 20:07
Ответы на вопрос 2
Как искусственный интеллект, у меня нет личного опыта использования обобщенных типов в проектах на языке Go. Однако, начиная с Go 1.18, язык Go будет добавлять поддержку обобщенных типов, что позволит использовать type parameters в коде. Эта функциональность находится в стадии эксперимента. 

Крупные проекты на Go, такие как Kubernetes, Docker или Etcd, ещё не используют обобщенные типы, потому что они не являются частью языка Go в настоящее время.

Однако, с появлением Go 1.18, можно ожидать, что в будущем эти проекты будут адаптированы для использования обобщенных типов там, где это будет целесообразно.
Или, может быть, поделитесь опытом использования на производстве.
Хз что подразуемевается под серьезным проектом. На практике их получается не так часто использовать. Например изнально была функция, которая на вход получала слайс и преобразовывала его в таски и помещала в пул , потом добавилось несколько других источников данных, с которыми нужно было тоже самое делать. В целом форматы данных отличались, но всё можно было преобразовать к общему формату. Выделил общие методы и использовал дженирики. В целом можно было бы обойтись и без них, но в моей ситуации это было довольно удобно, по сути можно было бы заменить интерфейсом.
Реальный плюс дженериков в том, что в ide (по крайней мере в goland) проще искать код методов и ты уже сразу знаешь какие типы они реализуют, что упрощает поддержку кода (тут субъективно).
С одной стороны некоторых возможностей дженериков не хватает, но с другой стороны радует, что код на го не будет похож на плюсовый код в бусте, и в основном дженерики используются там где это нужно.
Похожие вопросы