Сейчас многие компании пытаются внедрять ИИ-помощники в среды разработки в надежде упростить работу программистам и повысить эффективность работы. В начале этого года у нас провели пилотное тестирование бесплатной 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 обнаружила для себя много минусов, и они перевешивают плюсы. Интересно, становится ли генереруемый код лучше после обучения нейросети, но работа инструмента из коробки не впечатлила.
