Go Get Podcast

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

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