Skip to content

Ep. 17: Go v1.25 — Обсуждаем важные изменения

September 12, 2025 · 2 h 13 min

Show notes

Подробно обсудили - что добавилось в новой версии Go 1.25, зачем всё это нужно, как с этим работать.


Go 1.25 Release Notes: https://tip.golang.org/doc/go1.25


У подкаста есть видео-версия: https://www.youtube.com/@gogetpodcast


Состав:

- Николай Тузов

- Глеб Яльчик

- Дмтрий Матрёничев, ведёт ТГ-канал по Go: https://t.me/go_update


👾 Мой Телеграм-Канал с анонсами подкастов, роликов и др.: https://t.me/ntuzov


🗣️ Наш чат - Gopher Club: https://t.me/+RfalcB42UspmMDdi

Все гости наших выпусков там присутствуют.


Тайминги:


  • 00:00 Вступление
  • 01:05 Представление Димы
  • 01:55 Представление Глеба и распределение ролей
  • 02:33 План: идём сверху вниз по Go 1.25
  • 03:16 GOMAXPROCS: новое динамическое поведение, риски и зачем это нужно
  • 06:40 В каких случаях GOMAXPROCS может поменяться динамически?
  • 08:32 uber/automaxprocs vs. новая логика Go
  • 10:55 Почему избыток тредов это плохо?
  • 14:22 setDefaultGOMAXPROCS: когда полезно
  • 16:03 Новый Garbage Collector — Green Tea: идея и мотивация
  • 19:14 Контекст: Что такое NUMA и при чём CERN и масштабирование?
  • 21:10 Ликбез: трёхцветный GC и дороговизна скана
  • 26:44 Практическая польза нового GC и ограничения
  • 27:16 Как измерять эффект нового GC: trace scavenger
  • 31:02 Уберит ли арены памяти?
  • 36:57 Trace Flight Recorder: зачем и как использовать
  • 42:00 Изменения в panic и VMA names на Linux
  • 43:19 Фикс NeoPointer bug в компиляторе
  • 53:56 DWARF v5: быстрее компиляция, компактнее бинарь
  • 54:48 Faster slices: ускорения и когда заметно
  • 58:38 Где читать про решение escape-анализатора
  • 01:05:06 FuncAlign: выравнивание функций и latency
  • 01:08:12 Про кэш-линии и микропроценты
  • 01:11:21 Новый testing/synctest: управляемое время
  • 01:15:52 Устойчиво заблокированная горутина — что это значит?
  • 01:20:40 В каких кейсах пригодится synctest?
  • 01:22:40 Почему моки плохо дружат с реальной средой
  • 01:28:45 Новая версия encoding/json: drop-in и токенизатор
  • 01:31:07 Бенчмарки: декод быстрее, меньше аллокаций
  • 01:35:13 Кастомные маршалёры/анмаршалёры на дженериках
  • 01:37:35 Минусы: магия и порядок регистрации
  • 01:43:25 sync.WaitGroup.Go: сахарная обёртка
  • 01:44:12 Библиотека lo: можно ли тащить огромные библиотеки ради пары строчек?
  • 01:47:30 testing: Writer() и атрибуты
  • 01:48:37 reflect: меньше аллокаций и финализаторы
  • 01:50:39 io/fs root: защита от обходов
  • 01:53:41 Про контейнеры и пространство атаки
  • 01:54:45 Встроенная CSRF-защита в net/http
  • 01:56:00 go test -work: тесты в рабочей директории
  • 01:56:21 go.mod ignore: игнорирование каталогов
  • 01:58:27 Библиотека lo: почему нельзя тащить огромные библиотеки ради пары строчек?
  • 02:05:19 Supply-chain атаки и обновления
  • 02:09:45 Финал, благодарности и итоги

All episodes of Go Get Podcast

Settings

Display

Language

Decides which stations you see first on the home page.

History

Recently played stations and episodes and your latest searches are only stored in this browser.

Notifications

A short notice when a podcast you follow has a new episode. Turn off single podcasts with the bell on their page.

Account

Save favorites – in the app and on the website.

Keyboard shortcuts

/
Open search
Space
Play or pause
← →
In the player: back 15 s, forward 30 s (episodes) · in a row: next tile
↑ ↓
In a row: target within the tile
Home / End
In a row: first or last tile
Esc
Close window or menu
?
This overview
Now playing

Go to station page

Play next

    Add episodes with “Play next” – they play after the current episode.