Моментальная навигация по коду для любого комита. А так можно было?
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Часто ли вы сталкивались с необходимостью при чтении чужого пуллреквеста переходить в полноценную IDE, потому что в веб-платформе не хватает нормальной навигации по коду? А задумывались откуда эта проблема и как её решить? Расскажем о том, как подошли к решению этой задачи в новой платформе для разработчиков SourceCraft от Яндекса.
Мы сделали систему инкрементальных индексов на каждый коммит для поиска декларации/использований кода в репозитории. Открываешь комит и поиск работает моментально — ничего на стороне клиента/сервера не надо перестраивать.
Работая с любой платформой для разработчиков мы постоянно пополняем кодовую базу своего проекта. Каждый комит порождает новую версию модели кода и ее индексов. Все подобные инструменты сталкиваются с этой проблемой и чаще всего даже не берутся за её решение. Мы в Яндексе, при разработке собственной платформы для разработчиков SourceCraft, решили эту задачу. Для этого разработали свою систему индексов, основанную на имутабельных инкрементальных структурах данных. В докладе поделимся архитектурными приёмами, какие структуры данных нужны для различных сценариев и как мы их храним.
Далее рассмотрим конкретные примеры индексов, необходимых для решения задач навигации по коду. Обсудим отличия от IDE и к каким техническим решениям это приводит. Детально разберем алгоритмы под капотом нашей системы.
Руководитель команды поиска и навигации по коду в платформе для разработчиков SourceCraft от Яндекса.
- 18 лет в компании JetBrains в проекте R#
- 1,5 года в Huawei руководила разработкой IDE
Yandex Infrastructure
Видео
Другие доклады секции
Хардкор