podcast

Ep. 16: Как делают GoLand: закулисье JetBrains

08.09.2025
Listen to the episode on your favorite platforms:
  • Apple Podcasts
  • Yandex Music
  • Youtube
  • Spotify
  • Castbox
  • Pocket Casts
  • ВКонтакте
  • Overcast
  • Castro
  • RadioPublic
Поговорили с Арсением Тереховым — разработчиком из команды 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

Все гости наших выпусков там присутствуют.

Тайминги:

  • Вступление и план выпуска
  • Представление Арсения
  • Представление Ильдара
  • Бэкграунд Арсения и его путь в JetBrains
  • Про лабораторию JetBrains на Матмехе
  • Лаборатория языковых инструментов: проекты и идеи
  • Магистратура JetBrains в ИТМО — жесткая нагрузка
  • Почему выбрал GoLand?
  • Первые впечатления от Go: escape-анализ, GC, горутины
  • Претензии Арсения к Go: проблема захвата переменных по ссылке
  • Претензии №2: проблема nil-safety в Go
  • Как происходят переходы между командами в JetBrains
  • Про переход в команду IDEA или Kotlin — идеальный Dogfooding
  • Dogfooding в команде GoLand: пет-проекты на Go (2D игра на Ebitengine)
  • Встречи с командой gopls / Go Team
  • Что такое gopls? LSP для Go
  • GoLand не использует gopls — собственный LSP
  • Состав команды GoLand: ~10 разработчиков и другие должности
  • Общий пул задач и свобода выбора
  • Процесс код-ревью
  • Роль QA: как устроено тестирование?
  • Поддержка новых версий Go и type inference
  • Инструменты разработки: TeamCity, Space
  • Как репортить баги через YouTrack
  • Вопросы производительности IDE
  • Совмещение Kotlin и Go в разработке
  • Архитектура: IntelliJ Platform + языковые плагины
  • GoLand vs IDEA + Go plugin - в чем разница?
  • Регулярные встречи с командой gopls / Go Team (продолжение)
  • Nil reference анализ — главная новая фича
  • Глобальный анализ vs локальный (преимущества)
  • Теоретическая неразрешимость задач статанализа
  • Data flow analysis — как это работает
  • Почему пока не поддерживаются поля структур
  • Как иммутабельность упростила бы анализ
  • Обсуждение других IDE: VS Code, Zed, Cursor
  • Уникальность JetBrains — свои языковые движки vs LSP
  • Обращение к сообществу: репортите баги!
  • Планы на следующий выпуск и завершение