Artwork

Go Get Podcast에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Go Get Podcast 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Player FM -팟 캐스트 앱
Player FM 앱으로 오프라인으로 전환하세요!

Ep. 18: Тёмные стороны Go — с разработчиком GoLand | GoGetPodcast №18

2:40:20
 
공유
 

Manage episode 518560475 series 3391748
Go Get Podcast에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Go Get Podcast 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Обсуждаем проблемные места Go с Арсением Тереховым — разработчиком из команды GoLand в JetBrains. Арсений смотрит на Go с необычного угла: он из мира Kotlin, но при этом погружён в Go глубже многих гоферов благодаря работе над GoLand.

Что обсуждаем:

— Nil safety в Go: почему это проблема и как с ней жить

— Слайсы: append выглядит иммутабельно, но мутирует данные

— Замыкания и горутины: классические баги с захватом переменных

— Shadowing переменных: визуально не отличить, но приводит к багам

— Data races при чтении слайсов

Выпуск вышел при поддержке AvitoTech 💙

Статья про обработку ошибок в Go: https://clc.to/U7_U_w

Telegram AvitoTech: https://clc.to/-HtbVg

Митапы: https://clc.to/vbUbyg

Состав:

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

- Арсений Терехов — JetBrains, GoLand Team

- Глеб Яльчик

- Дмтрий Матрёничев

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

Тайминги:

  • 00:00 Вступление
  • 00:27 Предыстория: вопросы от Арсения
  • 02:00 Хорошая новость: новые выпуски теперь будут выходить регулярно
  • 03:24 Gophercon West — как это было: 25 часов перелёта и визовый лайфхак
  • 06:00 Футболки с конференций и брендинг
  • 08:40 Тема #1: Nil safety — старт обсуждения
  • 09:57 История: Тони Хоар, Algol и billion dollar mistake
  • 11:41 Реальные кейсы: $100k loss и падение Google Cloud
  • 14:52 Взгляд на проблему с экономической точки зрения
  • 17:13 Nil как валидное значение указателя
  • 20:05 История указателей: от ассемблера до высокоуровневых языков
  • 25:04 Создатели Go: Rob Pike, Russ Cox, Ken Thompson
  • 27:45 Дизайн языка — в чём идея?
  • 29:33 Go пофиксил проблемы C/C++?
  • 32:03 Философия Go: проверенные решения, а не новации
  • 36:23 Семантика указателей в Go: nil-receiver как валидное состояние
  • 39:11 Возможен nil safety с учётом рефлексии?
  • 42:14 Привет бабушке!
  • 42:44 Безопасен ли Go без unsafe/reflect?
  • 48:34 Kotlin vs Java: где действительно есть null safety
  • 51:07 Ограничения null safety: Spring, рефлексия, interop
  • 53:00 Safe enough vs абсолютная безопасность
  • 55:38 Итоги по nil pointer
  • 59:00 Тема #2: Захват переменных — классический баг с циклами
  • 01:02:28 Обратная совместимость: почему сложно что-то менять
  • 01:05:23 Революция в тулинге языков программирования
  • 01:07:51 Final в Java/Kotlin и почему этого нет в Go
  • 01:13:11 Захват переменных в C++: явный синтаксис
  • 01:16:01 Когда нужна запись в захваченные переменные
  • 01:19:27 Каналы в Go: гарантии и практические сложности
  • 01:25:21 Роль линтеров — go vet, staticcheck, golangci-lint
  • 01:26:07 Тулинг: data-flow анализ, детектор гонок
  • 01:29:21 Почему линтеры простые: философия дизайна
  • 01:31:57 Тема #3: Слайсы — самая болезненная тема
  • 01:32:23 Загадка про 8 слайсов и capacity
  • 01:37:36 Проблемы дизайна слайсов в Go и почему так
  • 01:40:15 Как работает append и реаллокация
  • 01:47:03 Почему append возвращает значение?
  • 01:56:52 Эволюция через тулинг: x/tools/modernize и автопочинка
  • 02:00:17 Data races при конкурентном append
  • 02:03:53 Тема #4: Shadowing переменных
  • 02:09:54 Удобство vs однозначность кода
  • 02:13:11 Философия дизайна языков и их эволюция
  • 02:17:00 Выводы
  • 02:22:03 Каждый новый язык лучше?
  • 02:29:07 Относительность решений в программировании
  • 02:33:59 Теорема Гёделя о неполноте
  • 02:34:53 Аналогия с Nintendo: простота как фича
  • 02:36:33 Аналогия с физикой: разные модели для разных масштабов
  • 02:37:25 Заключение

  continue reading

18 에피소드

Artwork
icon공유
 
Manage episode 518560475 series 3391748
Go Get Podcast에서 제공하는 콘텐츠입니다. 에피소드, 그래픽, 팟캐스트 설명을 포함한 모든 팟캐스트 콘텐츠는 Go Get Podcast 또는 해당 팟캐스트 플랫폼 파트너가 직접 업로드하고 제공합니다. 누군가가 귀하의 허락 없이 귀하의 저작물을 사용하고 있다고 생각되는 경우 여기에 설명된 절차를 따르실 수 있습니다 https://ko.player.fm/legal.
Обсуждаем проблемные места Go с Арсением Тереховым — разработчиком из команды GoLand в JetBrains. Арсений смотрит на Go с необычного угла: он из мира Kotlin, но при этом погружён в Go глубже многих гоферов благодаря работе над GoLand.

Что обсуждаем:

— Nil safety в Go: почему это проблема и как с ней жить

— Слайсы: append выглядит иммутабельно, но мутирует данные

— Замыкания и горутины: классические баги с захватом переменных

— Shadowing переменных: визуально не отличить, но приводит к багам

— Data races при чтении слайсов

Выпуск вышел при поддержке AvitoTech 💙

Статья про обработку ошибок в Go: https://clc.to/U7_U_w

Telegram AvitoTech: https://clc.to/-HtbVg

Митапы: https://clc.to/vbUbyg

Состав:

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

- Арсений Терехов — JetBrains, GoLand Team

- Глеб Яльчик

- Дмтрий Матрёничев

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

Тайминги:

  • 00:00 Вступление
  • 00:27 Предыстория: вопросы от Арсения
  • 02:00 Хорошая новость: новые выпуски теперь будут выходить регулярно
  • 03:24 Gophercon West — как это было: 25 часов перелёта и визовый лайфхак
  • 06:00 Футболки с конференций и брендинг
  • 08:40 Тема #1: Nil safety — старт обсуждения
  • 09:57 История: Тони Хоар, Algol и billion dollar mistake
  • 11:41 Реальные кейсы: $100k loss и падение Google Cloud
  • 14:52 Взгляд на проблему с экономической точки зрения
  • 17:13 Nil как валидное значение указателя
  • 20:05 История указателей: от ассемблера до высокоуровневых языков
  • 25:04 Создатели Go: Rob Pike, Russ Cox, Ken Thompson
  • 27:45 Дизайн языка — в чём идея?
  • 29:33 Go пофиксил проблемы C/C++?
  • 32:03 Философия Go: проверенные решения, а не новации
  • 36:23 Семантика указателей в Go: nil-receiver как валидное состояние
  • 39:11 Возможен nil safety с учётом рефлексии?
  • 42:14 Привет бабушке!
  • 42:44 Безопасен ли Go без unsafe/reflect?
  • 48:34 Kotlin vs Java: где действительно есть null safety
  • 51:07 Ограничения null safety: Spring, рефлексия, interop
  • 53:00 Safe enough vs абсолютная безопасность
  • 55:38 Итоги по nil pointer
  • 59:00 Тема #2: Захват переменных — классический баг с циклами
  • 01:02:28 Обратная совместимость: почему сложно что-то менять
  • 01:05:23 Революция в тулинге языков программирования
  • 01:07:51 Final в Java/Kotlin и почему этого нет в Go
  • 01:13:11 Захват переменных в C++: явный синтаксис
  • 01:16:01 Когда нужна запись в захваченные переменные
  • 01:19:27 Каналы в Go: гарантии и практические сложности
  • 01:25:21 Роль линтеров — go vet, staticcheck, golangci-lint
  • 01:26:07 Тулинг: data-flow анализ, детектор гонок
  • 01:29:21 Почему линтеры простые: философия дизайна
  • 01:31:57 Тема #3: Слайсы — самая болезненная тема
  • 01:32:23 Загадка про 8 слайсов и capacity
  • 01:37:36 Проблемы дизайна слайсов в Go и почему так
  • 01:40:15 Как работает append и реаллокация
  • 01:47:03 Почему append возвращает значение?
  • 01:56:52 Эволюция через тулинг: x/tools/modernize и автопочинка
  • 02:00:17 Data races при конкурентном append
  • 02:03:53 Тема #4: Shadowing переменных
  • 02:09:54 Удобство vs однозначность кода
  • 02:13:11 Философия дизайна языков и их эволюция
  • 02:17:00 Выводы
  • 02:22:03 Каждый новый язык лучше?
  • 02:29:07 Относительность решений в программировании
  • 02:33:59 Теорема Гёделя о неполноте
  • 02:34:53 Аналогия с Nintendo: простота как фича
  • 02:36:33 Аналогия с физикой: разные модели для разных масштабов
  • 02:37:25 Заключение

  continue reading

18 에피소드

모든 에피소드

×
 
Loading …

플레이어 FM에 오신것을 환영합니다!

플레이어 FM은 웹에서 고품질 팟캐스트를 검색하여 지금 바로 즐길 수 있도록 합니다. 최고의 팟캐스트 앱이며 Android, iPhone 및 웹에서도 작동합니다. 장치 간 구독 동기화를 위해 가입하세요.

 

빠른 참조 가이드

탐색하는 동안 이 프로그램을 들어보세요.
재생