All content for Go Get Podcast is the property of Go Get Podcast and is served directly from their servers
with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Обсуждаем язык Go и всё, что с ним связано - изменения в языке, новости, интересные статьи, проекты и др.
Поговорили с Арсением Тереховым — разработчиком из команды GoLand. Обсудили следующие темы:
- Про Арсения и его путь в JetBrains: как попал в разработку, а потом в JB, почему именно GoLand, какой был бэкграунд до этого
- Про команду и работу: как устроена команда GoLand, типичный рабочий день, процессы разработки, код-ревью
- Самое интересное - про два мира Java/Kotlin и Go: каково это писать инструмент для Go на другом языке, насколько глубоко нужно знать Go
- Техническая часть: как устроена работа с Go кодом внутри IDE, взаимодействие с командой с gopls
- Про другие IDE: VSCode, Zed
Состав:
- Николай Тузов
- Арсений Терехов — JetBrains, GoLand Team
- Ильдар Карымов: https://www.youtube.com/@deferpanic
Мой Телеграм-Канал с анонсами подкастов, роликов и др.: https://t.me/ntuzov
Наш чат - Gopher Club: https://t.me/+RfalcB42UspmMDdi
Все гости наших выпусков там присутствуют.
Тайминги:
00:00 Вступление и план выпуска
00:25 Представление Арсения
01:34 Представление Ильдара
02:45 Бэкграунд Арсения и его путь в JetBrains
05:31 Про лабораторию JetBrains на Матмехе
08:05 Лаборатория языковых инструментов: проекты и идеи
10:45 Магистратура JetBrains в ИТМО — жесткая нагрузка
16:22 Почему выбрал GoLand?
19:34 Первые впечатления от Go: escape-анализ, GC, горутины
24:30 Претензии Арсения к Go: проблема захвата переменных по ссылке
29:28 Претензии №2: проблема nil-safety в Go
33:28 Как происходят переходы между командами в JetBrains
37:20 Про переход в команду IDEA или Kotlin — идеальный Dogfooding
39:12 Dogfooding в команде GoLand: пет-проекты на Go (2D игра на Ebitengine)
43:42 Встречи с командой gopls / Go Team
43:55 Что такое gopls? LSP для Go
47:08 GoLand не использует gopls — собственный LSP
52:15 Состав команды GoLand: ~10 разработчиков и другие должности
53:58 Общий пул задач и свобода выбора
1:00:30 Процесс код-ревью
1:01:50 Роль QA: как устроено тестирование?
1:12:02 Поддержка новых версий Go и type inference
1:17:22 Инструменты разработки: TeamCity, Space
1:22:05 Как репортить баги через YouTrack
1:31:58 Вопросы производительности IDE
1:36:39 Совмещение Kotlin и Go в разработке
1:42:09 Архитектура: IntelliJ Platform + языковые плагины
1:48:45 GoLand vs IDEA + Go plugin - в чем разница?
1:53:32 Регулярные встречи с командой gopls / Go Team (продолжение)
1:57:10 Nil reference анализ — главная новая фича
1:58:54 Глобальный анализ vs локальный (преимущества)
2:04:20 Теоретическая неразрешимость задач статанализа
2:10:45 Data flow analysis — как это работает
2:13:31 Почему пока не поддерживаются поля структур
2:20:37 Как иммутабельность упростила бы анализ
2:26:45 Обсуждение других IDE: VS Code, Zed, Cursor
2:33:39 Уникальность JetBrains — свои языковые движки vs LSP
2:37:04 Обращение к сообществу: репортите баги!
2:39:04 Планы на следующий выпуск и завершение
Go Get Podcast
Обсуждаем язык Go и всё, что с ним связано - изменения в языке, новости, интересные статьи, проекты и др.