Aller au contenu

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

12 septembre 2025 · 2 h 13 min

Notes de l’épisode

Подробно обсудили - что добавилось в новой версии 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 Финал, благодарности и итоги

Tous les épisodes de Go Get Podcast

Paramètres

Affichage

Langue

Détermine les stations affichées en premier sur la page d’accueil.

Historique

Les stations et épisodes écoutés récemment et tes dernières recherches sont seulement enregistrés dans ce navigateur.

Notifications

Un court message quand un podcast que tu suis publie un nouvel épisode. Désactive un podcast précis avec la cloche sur sa page.

Compte

Enregistrez vos favoris – dans l’app et sur le site.

Raccourcis clavier

/
Ouvrir la recherche
Espace
Lecture ou pause
← →
Dans le lecteur : 15 s en arrière, 30 s en avant (épisodes) · dans une rangée : tuile suivante
↑ ↓
Dans une rangée : cible dans la tuile
Début / Fin
Dans une rangée : première ou dernière tuile
Esc
Fermer la fenêtre ou le menu
?
Cet aperçu
En cours de lecture

Voir la station

À suivre

    Ajoutez des épisodes avec « À suivre » – ils seront lus après l'épisode en cours.