🔥 Вышел Go 1.27: что нового
Поменялся сам язык, а под encoding/json подменили движок. Коротко о том, что пригодится на практике.
🔹 Дженерик-методы
Метод теперь может объявлять свои параметры типа. Раньше такое приходилось выносить в функцию уровня пакета.
type List[E any] []E
func (l List[E]) Map[R any](f func(E) R) List[R] {
r := make(List[R], len(l))
for i, v := range l {
r[i] = f(v)
}
return r
}
names := List[User]{u1, u2}.Map(func(u User) string { return u.Name })
Оговорка: в интерфейсах так нельзя. Дженерик-метод не реализует метод интерфейса, спрятать такой Map за интерфейсом не выйдет.
🔹 Поля встроенных структур в литералах
Поле встроенной структуры теперь можно задать напрямую.
type Base struct{ ID int }
type User struct {
Base
Name string
}
u := User{ID: 7, Name: "gopher"}
// раньше: User{Base: Base{ID: 7}, Name: "gopher"}
Мелочь, но фикстуры и тестовые данные становятся чище.
🔹 JSON стал быстрее
encoding/json переписали на движок v2. Поведение то же, разбор заметно быстрее — достаточно пересобрать проект. Текст ошибок мог поменяться, так что тесты со сравнением строк ошибок стоит проверить.
Рядом лежит encoding/json/v2 со строгими правилами: невалидный UTF-8 и дубли ключей теперь ошибка.
🔹 uuid в стандартной библиотеке
id := uuid.NewV7() // время + случайные биты, сортируемый
s := id.String()
back, err := uuid.Parse(s)
Есть NewV4, Nil, Max, MustParse, Compare и Marshal/UnmarshalText. Внешнюю зависимость на uuid можно выкидывать.
🔹 Runtime
Мелкие аллокации (до 80 байт) подешевели до 30%.
Профиль утечек горутин доехал из эксперимента до релиза: /debug/pprof/goroutineleak. Показывает горутины, которые ждут на канале или мьютексе, а разблокировать их уже некому.
net/http дочитывает непрочитанное тело ответа при Close(), соединения лучше переиспользуются.
🔗 Release notes: https://go.dev/doc/go1.27
«Ладыгин Сергей | Backend» - канал из категории «Технологии», подключенный к сервису кросспостинга MaxGate. Публикации канала синхронизируются между Telegram и мессенджером MAX, а на этой странице собраны ссылки на обе версии канала.
Сейчас у канала 29 подписчиков суммарно в Telegram и MAX. За последние 7 дней в истории MaxGate учтено 2 публикаций, поэтому перед подпиской можно оценить не только размер аудитории, но и регулярность обновлений.
Чтобы подписаться, используйте кнопки «Открыть в MAX» и «Открыть в Telegram» в верхней части страницы. У отдельных постов ссылка может быть доступна в обоих мессенджерах или только в одном из них, если MaxGate получил такой URL из истории обработки.
🚀 Помните эксперимент с Agent Teams? Вот чем он закончился
В марте я рассказывал, как собрал в Claude Code команду AI-агентов: архитектор, backend, frontend, DevOps, QA. Первый коммит — 17 марта.
Пять месяцев спустя, с небольшим перерывом, это уже не эксперимент, а живой сервис: Scruma — командные ретроспективы онлайн. С апреля в проде, недавно появились платные тарифы.
Что умеет:
1️⃣ ретро по этапам: размышление → группировка → голосование → обсуждение
2️⃣ real-time доска с курсорами участников и таймером
3️⃣ анонимные карточки — люди пишут честнее
4️⃣ итог ретро — задачи с ответственными и дедлайнами, а не просто «поговорили»
5️⃣ AI-группировка карточек
6️⃣ MCP-сервер: ретро можно вести прямо из Claude Code или Cursor
Последний пункт мой любимый: сервис, написанный AI-агентами, теперь сам работает с AI-агентами. Круг замкнулся 😆
Бесплатного тарифа (до 5 участников) хватит небольшим командам.
👉 https://scruma.ru
Попробуйте на ближайшем ретро и напишите мне, что понравилось, а что бесит. Фидбек от своих — самый ценный.