Написать пост

Качество кода снизилось из-за нейросетей

Исследование показало, что помощники, такие как Copilot, пишут код, который по качеству похож на «хаотичную работу неопытного аутсорсера».

Исследование сервиса GitClear показало, что за последнее время общее качество кода в проектах стало снижаться. Основная причина этого — распространение нейросетей, которые помогают писать код. По прогнозам, тенденция сохранится.

Что случилось?

Компания GitClear собрала около миллиарда строк кода, появившегося с 2020 по 2024 год. Информацию брали от клиентов (NextGen Health, Verizon) и из репозиториев с открытым исходным кодом (Facebook React, Google Chrome). Из миллиарда отобрали 153 миллиона строк, в которых провели значимые изменения:

  • добавление новых, уникальных строк;
  • удаление строк (важно, чтобы их не возвращали после);
  • перемещение строк в новый файл или в новую функцию в том же файле;
  • обновление строк более чем на три слова;
  • замена одних и тех же строк кода в разных местах;
  • копирование и вставка кода в рамках одного или более коммитов.

Также команда изучала правки в уже измененном коде — под таким подразумевали тот, что серьезно переписали в течение двух недель.

Результаты показали, что за последние годы существенно вырос показатель «оттока кода» (Code Churn). Так называют код, который удалили или серьезно изменили в течение двух недель после добавления. Это изменения без пользы для проекта — которые отражают качество кода в целом указывают на нестабильность и количество ошибок.

До 2023 года такого кода было всего 3–4% (со всплеском до 9% в 2022 году, когда вышел Copilot). К концу 2023 показатель вырос до 5,5%, а в 2024 по прогнозам составит уже 7% — это вдвое больше, чем в 2021 году, до выхода нейросетевых помощников.

Данные на 2024 года — это прогноз, который составили GitClear с помощью языковой модели gpt-4-1106-preview. Ее создала OpenAI с помощью квадратичной регрессии и Python.

Аналитики также проверили, сколько времени живет код без изменений. Результаты показывают, что за последние 4 года доля кода, который изменили в течение двух недель выросла, на 10%. При этом доля кода, который меняют спустя месяц, упала (это связывают с длиной спринта).

По мнению исследователей, это показывает, что до появления Copilot и похожих помощников разработчики чаще искали в своем коде фрагменты, которые можно доработать. Теперь же доминирует подход «написал и забыл после окончания спринта».

О чем это говорит?

Качество кода упало в 2023 году. Это связано с широким распространением LMS в целом и помощников на базе искусственного интеллекта в частности. Ведь они заточены на то, чтобы писать, а не поддерживать код. А джуны, в отличие от опытных разработчиков обращают на это меньше внимания.

Потребуется альтернативный инструмент, который будет проверять код и предлагать улучшения. GitClear самим было бы интересно поработать со специалистами, которые занимаются (или готовы заниматься) подобным.

Опрос GitHub, показал, что и сами разработчики чувствуют, что качество кода снизилось. Так, в ответе на вопрос «По чему вас следует оценивать в отсутствие искусственного интеллекта» «качество кода» опустилось на второе место.

Следите за новыми постами
Следите за новыми постами по любимым темам
359 открытий2К показов