#generic_methods — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #generic_methods, aggregated by home.social.
-
Самое интересное в новой версии Go — 1.27
Всем привет! Меня зовут Паша Агалецкий , я техлид команды платформы разработки Авито . В этой статье я расскажу о новой версии Go — 1.27. Я выбрал для вас самые интересные фичи — те, что влияют на код или дают новые по-настоящему полезные инструменты. Читайте про обновление под катом
https://habr.com/ru/companies/avito/articles/1072472/
#go #golang #go_127 #generics #generic_methods #json #goroutine_leak #uuid #аллокации_памяти
-
Go 1.27: generic-методы, которых не видит reflect
Go 1.27 (на момент написания rc3, финал обещают в августе) приносит generic-методы: метод наконец может объявить собственный тип-параметр. Взял golang:1.27rc3 в Docker и проверил, где у фичи границы. reflect новый метод не видит вообще, хотя go/types на том же типе показывает его в method set — метод доступен компилятору и недоступен через рефлексию, поэтому ни один интерфейс им не удовлетворить, а валидаторы и ORM его не заметят. Померил цену: на 200 инстанцирований с запретом инлайна бинарь с методом больше на 2264 байта, из которых 2000 приходятся на длину имён символов, а не на код; по времени разницы нет — это generic-функция с ресивером и тот же gcshape-стенсилинг. А вот что реально заметит прод на апгрейде: GODEBUG=asynctimerchan=1 теперь роняет процесс до main, encoding/json v1 на движке v2 меняет байты вывода на битом UTF-8, json.RawMessage обзавёлся String() и поменял ваши логи. Плюс замеры нового аллокатора: минус четверть времени на new(16 B) и ноль на 128 байтах. Читать дальше →
https://habr.com/ru/articles/1072194/
#Go #golang #Go_127 #дженерики #generic_methods #reflect #json #GODEBUG