Impacto do GitHub Copilot na Qualidade do Código: Amigo ou Vilão?

O whitepaper “Coding on Copilot” da GitClear investiga a qualidade e a manutenibilidade do código gerado por IA em comparação com o código escrito por humanos. Em essência, ele pergunta: “Ele se parece mais com o trabalho refinado de um desenvolvedor experiente ou com os esforços desconexos de um contratado temporário?”

O resumo do whitepaper pinta um quadro preocupante para a manutenibilidade:

“Observamos tendências desconcertantes para a manutenibilidade. A rotatividade do código – a porcentagem de linhas revertidas ou atualizadas em duas semanas – deve dobrar em 2024 em comparação com sua linha de base pré-IA (2021). Além disso, o ‘código adicionado’ e o ‘código copiado/colado’ estão aumentando proporcionalmente ao ‘código atualizado’, ‘excluído’ e ‘movido’. Nesse sentido, o código gerado por IA se assemelha a um colaborador itinerante, propenso a violar o princípio DRY (não se repita) em repositórios.”

Isso contradiz as descobertas de outros estudos, como a pesquisa de 2022 do GitHub que relatou um aumento de velocidade de 55% para desenvolvedores usando o Copilot. A GitClear, fornecedora de ferramentas de revisão de código baseadas em nuvem, reconhece isso em seu whitepaper enquanto se concentra em “como a composição do código muda quando a IA é usada”.

Leiam também:

Sua pesquisa identifica três mudanças principais associadas à ascensão do Copilot:

1. Rotatividade Crescente: A GitClear afirma que usar o Copilot está fortemente correlacionado com o envio de “código de erro” para repositórios.

Estudo da Gitclear
Estudo da Gitclear

2. Menos Código Movido Implica Menos Refatoração, Menos Reuso: Combinado com o aumento do código “copiado/colado”, a GitClear argumenta que a implementação atual de assistentes de IA desencoraja a reutilização de código. Em vez de refatorar e seguir o DRY, eles oferecem um caminho de um clique para a repetição.

3. Mais Código Copiado/Colado Implica Dores de Cabeça Futuras: A GitClear vê o código copiado/colado como um grande obstáculo à manutenção de longo prazo. Sugere que os desenvolvedores não têm tempo para avaliar as implementações existentes, deixando os futuros mantenedores para consolidar caminhos de código redundantes.

O documento conclui questionando o impacto do Copilot nos desenvolvedores:

“Não há dúvida de que o aumento da popularidade da IA levou à criação de código mais rápido. A grande questão para 2024 é: quem limpa a bagunça depois?”

Esta não é a única pesquisa sobre o assunto. Outros estudos oferecem perspectivas diversas:

  • “Explorando a Verificabilidade do Código Gerado pelo GitHub Copilot”: Apoia o consenso de que o Copilot é poderoso, mas não deve “pilotar o avião” sozinho.
  • “Avaliando a Qualidade da Geração de Código do GitHub Copilot”: Vê promessa no Copilot com base em sua análise, mas pede avaliação adicional.
  • “Mudança Radical no Desenvolvimento de Software: Análise Econômica e de Produtividade do Ciclo de Vida do Desenvolvedor com IA”: Destaca a colaboração humana-IA única promovida por essas ferramentas e seu potencial para moldar o desenvolvimento de software no futuro.
  • “O Impacto da IA na Produtividade do Desenvolvedor: Evidências do GitHub Copilot”: Destaca o potencial dos programadores pares de IA para ajudar pessoas que entram no campo de desenvolvimento de software.
  • “Estudo da experiência dos desenvolvedores de software usando a ferramenta Github Copilot no processo de desenvolvimento de software”: Revela opiniões divididas entre os desenvolvedores, com preocupações de segurança dificultando a adoção mais ampla, apesar de atitudes predominantemente positivas.

Para o estudo, a GitClear analisou 153 milhões de linhas de código escritas entre janeiro de 2020 e dezembro de 2023.

Enquanto o Copilot, sem dúvida, aumenta a produtividade dos desenvolvedores, seu impacto na qualidade e manutenibilidade do código requer cuidadosa consideração. Pesquisas adicionais e práticas de desenvolvimento responsáveis ​​são essenciais para aproveitar todo o potencial dos assistentes de IA, mitigando potenciais desvantagens.

A pesquisa da GitClear levanta algumas preocupações importantes sobre o impacto do Copilot no desenvolvimento de software. A rotatividade crescente do código pode levar a problemas de manutenção, pois o código precisa ser atualizado ou corrigido com frequência. Menos código movido pode significar menos reutilização de código, o que pode levar a código mais redundante e difícil de entender. Mais código copiado/colado pode dificultar a manutenção do código, pois os mantenedores precisam rastrear várias implementações redundantes.

É importante notar que essas descobertas são baseadas em um estudo de caso específico e podem não ser generalizáveis ​​para todos os projetos de software. No entanto, elas fornecem evidências de que os desenvolvedores precisam ser cautelosos ao usar o Copilot.

Aqui estão algumas dicas para mitigar os potenciais riscos do Copilot:

  • Use o Copilot com moderação. Não dependa dele para escrever todo o seu código. Use-o como uma ferramenta para ajudar a gerar ideias e acelerar o desenvolvimento.
  • Faça uma revisão cuidadosa do código gerado pelo Copilot. Não confie nele cegamente. Revise o código cuidadosamente para garantir que esteja correto e manutenível.
  • Use o Copilot em conjunto com outras ferramentas de desenvolvimento. Use-o em conjunto com ferramentas de refatoração e análise estática para ajudar a melhorar a qualidade e manutenibilidade do código.

Ao seguir essas dicas, os desenvolvedores podem aproveitar o poder do Copilot sem correr os riscos potenciais.

Leave a Comment