Поговорили с Арсением Тереховым — разработчиком из команды 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 Планы на следующий выпуск и завершение
Show more...