Профессиональная конференция для Go-разработчиков

Моментальная навигация по коду для любого комита. А так можно было?

Хардкор

Доклад принят в программу конференции

Целевая аудитория

Все разработчики (бекенд, фронтенд, мобильные), DevOps инженеры, тестировщики, технические менеджеры

Тезисы

Часто ли вы сталкивались с необходимостью при чтении чужого пуллреквеста переходить в полноценную IDE, потому что в веб-платформе не хватает нормальной навигации по коду? А задумывались откуда эта проблема и как её решить? Расскажем о том, как подошли к решению этой задачи в новой платформе для разработчиков SourceCraft от Яндекса.

Мы сделали систему инкрементальных индексов на каждый коммит для поиска декларации/использований кода в репозитории. Открываешь комит и поиск работает моментально — ничего на стороне клиента/сервера не надо перестраивать.

Работая с любой платформой для разработчиков мы постоянно пополняем кодовую базу своего проекта. Каждый комит порождает новую версию модели кода и ее индексов. Все подобные инструменты сталкиваются с этой проблемой и чаще всего даже не берутся за её решение. Мы в Яндексе, при разработке собственной платформы для разработчиков SourceCraft, решили эту задачу. Для этого разработали свою систему индексов, основанную на имутабельных инкрементальных структурах данных. В докладе поделимся архитектурными приёмами, какие структуры данных нужны для различных сценариев и как мы их храним.

Далее рассмотрим конкретные примеры индексов, необходимых для решения задач навигации по коду. Обсудим отличия от IDE и к каким техническим решениям это приводит. Детально разберем алгоритмы под капотом нашей системы.

Ольга Лукьянова

Yandex Infrastructure

Руководитель команды поиска и навигации по коду в платформе для разработчиков SourceCraft от Яндекса.
- 18 лет в компании JetBrains в проекте R#
- 1,5 года в Huawei руководила разработкой IDE

Yandex Infrastructure

Команда Yandex Infrastructure предоставляет весь спектр инструментов для разработки и развертывания приложений и сервисов любой сложности. На нашей инфраструктуре работают большинство сервисов Яндекса и внешних клиентов Yandex Cloud.

Видео