Добавить в корзинуПозвонить
Найти в Дзене

ИИ снижает качество кода

Новое исследование GitClear, основанное на анализе 211 миллионов строк кода, показывает, что помощники по кодированию на основе ИИ снижают качество кода, увеличивая объем дублируемого и копируемого/вставляемого кода и уменьшая объем рефакторинга. GitClear проанализировал код от клиентов собственных инструментов проверки кода, а также проектов с открытым исходным кодом, а также изучил метрики для изменений кода, такие как добавление, удаление, перемещение и обновление. Исследователи обнаружили, что количество блоков кода с 5 или более дублированными строками увеличилось в 8 раз в течение 2024 года. Дублированный код может работать правильно, но часто является признаком низкого качества кода. Это предполагает отсутствие четкой структуры и увеличивает риск ошибок, когда один и тот же код обновляется в одном месте, но не в других. GitClear добавляет, что функции, которые вызываются из разных мест, в отличие от скопированных/вставленных, проверены в боевых условиях и показывают себя лучше.

Новое исследование GitClear, основанное на анализе 211 миллионов строк кода, показывает, что помощники по кодированию на основе ИИ снижают качество кода, увеличивая объем дублируемого и копируемого/вставляемого кода и уменьшая объем рефакторинга.

GitClear проанализировал код от клиентов собственных инструментов проверки кода, а также проектов с открытым исходным кодом, а также изучил метрики для изменений кода, такие как добавление, удаление, перемещение и обновление. Исследователи обнаружили, что количество блоков кода с 5 или более дублированными строками увеличилось в 8 раз в течение 2024 года. Дублированный код может работать правильно, но часто является признаком низкого качества кода. Это предполагает отсутствие четкой структуры и увеличивает риск ошибок, когда один и тот же код обновляется в одном месте, но не в других. GitClear добавляет, что функции, которые вызываются из разных мест, в отличие от скопированных/вставленных, проверены в боевых условиях и показывают себя лучше.

Исследователи также отметили снижение количества перемещенных строк на 39,9%. Перемещение кода свидетельствует о рефакторинге, который заключается в улучшении качества кода без изменения его функций. Согласно GitClear, способность «объединять предыдущую работу в повторно используемые модули» является существенным преимуществом программистов-людей перед помощниками ИИ. 2024 год стал первым годом, когда количество скопированных/вставленных строк превысило количество перемещенных строк.

-2

GitClear считает, что причина в том, что ИИ-помощники разработчиков упрощают вставку новых блоков кода простым нажатием клавиши Tab. Менее вероятно, что ИИ предложит повторно использовать похожую функцию в другом месте кода, отчасти из-за ограниченного размера контекста, то есть объема окружающего кода, который используется для предложений ИИ.

В отличие от GitClear, отчет Google DORA «State of DevOps» за 2024 год утверждает, что более широкое внедрение ИИ улучшило качество кода на 3,4 процента; однако отчет DORA также выявил снижение на 7,2 процента. Оказывается, эти два отчета не так уж и отличаются, как кажется. На уровне отдельных блоков кода помощь ИИ может улучшить качество кода; но исследователи DORA говорят, что, поскольку ИИ позволяет разработчикам быстрее доставлять больше кода, вполне вероятно, что позже потребуется больше изменений, и их исследование показывает, что более крупные изменения «медленнее и более подвержены нестабильности».

Влияние ИИ на кодирование можно интерпретировать по-разному. Сторонники (и поставщики ИИ) могут указывать на повышение производительности, что подтверждает большинство разработчиков, в то время как скептики могут указывать на пагубное влияние на обслуживание кода.