Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Improving IntelliJ code completion with Space

Description

JetBrains Space - новый продукт для командной работы. Он позволяет общаться с коллегами, настраивать сервисы CI/CD, хранить код и историю его изменений. В то же время существует множество IDE, которые разработчики используют в процессе своей работы. С позиции разработчиков сред разработки, появление проекта Space позволяет заметно улучшить некоторые популярные функции IDE. Оказывается, что возможнен подсчет дополнительной информации по проекту на стороне сервера, появляются новые способы улучшить качество или скорость работы IDE. Например, проиндексировав проект заранее, можно избавиться от индексации проекта на компьютерах у каждого программиста. Другой пример - можно уменьшить время сборки проекта в десятки раз, скачав уже скомпилированные классы с билд-сервера.

В рамках данного проекта мы попытаемся повысить качество ранжирования в Code Completion. Мы знаем, что проанализировав код проекта, можно найти общие шаблоны использования методов и классов. С помощью этих шаблонов можно делать более точные подсказки разработчикам. Однако, из-за большой вычислительной сложности мы не можем анализировать проекты на компьютере каждого разработчика. К счастью, поиск шаблонов на стороне сервера и доставка готовых результатов в IDE делают эту задачу выполнимой.

В процессе практики у вас будет возможность внести свой вклад в новый продукт JetBrains. Вам предстоит разобраться, как устроен вычислительный движок Space, изучить способы повышения точности автодополнения в IDE, решить несколько типичных DevOps задач о развертывании серверов, хранении преподсчитанных данных и настроить коммуникацию между развернутыми серверами и IDE, таким образом, сделав IDE еще умнее и полезнее!

В качестве идеального результата стажировки мы видим разработанный прототип, который повышает точность code completion для разработчиков JetBrains. Если получится хорошо, то в перспективе разработанное решение можно будет включить и для других пользователей, использующих IntelliJ-based IDE вместе со Space.

Возможно, у вас сложится ложное ощущение, что в ходе работы над проектом придется делать машинное обучение. Однако, алгоритмы построения всех ML моделей уже готовы, поэтому в данном проекте мы будем лишь делать их предсказания точнее. Разумеется, при желании, у вас будет возможность узнать как работает ML "под капотом" IDE.

Если у вас возникнут вопросы, можете задать их нам: vitaliy.bibaev@jetbrains.com, nikolay.rykunov@jetbrains.com

Requirements

Уверенные знания Java/Kotlin,

Общие представления о клиент/серверной модели, REST, Docker.

Admission

Разработчики: Лето 2021

Mentor

Nikolay Rykunov, Vitaliy Bibaev

Mentor's location

Remote

Product/Team

IntelliJ IDEA

Tags

Continuous Integration
Java
Machine Learning
Statistics