Сейчас многие компании пытаются внедрять ИИ-помощники в среды разработки в надежде упростить работу программистам и повысить эффективность работы. В начале этого года у нас провели пилотное тестирование бесплатной Codeium. Нейросеть использовалась из коробки (без дообучения). В статье расскажу про использование Codeium при разработке на C# в Visual Studio 2022(продуктовый код и тесты). За месяц использования работоспособность Codeium мне не понравилась и вот почему.
Понимание контекста
Создается ощущение, что нейросеть смотрит только в контексте текущего файла. Неправильно советует использовать поля и методы (публичные !) из других классов, просто генерирует рандомные имена. Не умеет работать со сторонними библиотеками.
Лучше генерирует код, если в коде присутствуют комментарии. Пробовала специально в некоторых местах добавлять комментарии, чтобы проверить поведение нейросети. И да, Codeium в таких случаях начинает реагировать быстрее и советовать более ожидаемый код. Для меня это неудобно, т.к. я не оставляю в коде такое количество комментариев, которое требует Codeium. Еще замечена особенность, что для совершенно нового кода генерирует предложения лучше, при доработке текущего - хуже.
При декларации нового метода теста может посоветовать вызвать метод, с таким поведением столкнулась несколько раз в течение месяца. По поему опыту, ассистенты сред разработок никогда не подсказывают вызывать функцию вместо декларации в этом меcте:
[Test]
public void Test_1()
{
...
}
// Ставлю курсор здесь и получаю рекомендацию от Codeium
Test_2();
[Test]
public void Test_2()
{
...
}
Качество сгенерированного кода
Что касается синтаксического сахара: советует что-то из более старых стандартов языка. После принятия сгенерированного кода приходится его редактировать, это занимает время.
Скорость работы
Предлагает код, но при его принятии может добавить еще какую-то строку, которой не было в предпросмотре. Кажется, что идет какая-то задержка по времени.
Часто не может предложить варианты вообще.
Раздражает, что после установки расширения Codeium в Visual Studio наблюдались небольшие тормоза. После удаления Codeium среда разработки снова работает как обычно.
Дообучение нейросети
Создатели Codeium обещают повышение качества генерируемого кода за счет дообучения нейросети. Тут есть два варианта, и к каждому из них есть вопросы:
Обучение на продуктовой кодобазе
Большие проекты содержат код совершенно разного качества и, конечно, много легаси кода. Вопрос в том, на чем обучать? Какой код более подходящий? Код пятилетней давности будем считать приемлемым?
Сгенерированный код принят, значит он правильный
При работе с нейросетью программисты часто придерживаются позиции: принимаешь сгенерированный код, даже если он не совсем корректный, а потом редактируешь до нужного вида. Но если нейросеть способна обучаться, то принятие рекомендуемого кода трактуется нейросетью как правильный вариант. В этом случае нейросеть никогда не поймет, что код неверный.
Есть одна вещь, которая реально понравилась
Единственное, на чем экономишь время с использованием Codeium: нейросеть отлично автодополняет комментарии (на русском и английском). И для меня это все. Но ради этого устанавливать Codeium, думаю, не стоит :) Помню, на прошлой работе использовали ReSharper, который тоже отлично с этим справлялся.
За месяц использования Codeium обнаружила для себя много минусов, и они перевешивают плюсы. Интересно, становится ли генереруемый код лучше после обучения нейросети, но работа инструмента из коробки не впечатлила.