← Últimos artigos
💻 computer science

Prefactory: Automated Discovery and Application of Library-Adoption Refactorings

Este artigo apresenta o Prefactory, um sistema automatizado que sintetiza heurísticas de busca executáveis usando LLMs para detectar e aplicar eficientemente refatorações de adoção de bibliotecas em código Python, alcançando taxas de detecção e validação significativamente superiores às das linhas de base existentes em um novo benchmark de projetos do mundo real.

Autores originais: Islem Bouzenia, Michael Pradel

Publicado 2026-07-21
📖 4 min de leitura☕ Leitura rápida

Autores originais: Islem Bouzenia, Michael Pradel

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você é um bibliotecário encarregado de organizar uma biblioteca massiva e caótica, onde cada livro foi escrito por um autor diferente usando seu próprio estilo único. Alguns autores reinventam a roda, escrevendo instruções longas e complicadas para coisas que já possuem uma ferramenta perfeita e pré-fabricada na sala dos fundos da biblioteca. No mundo da programação de computadores, isso é chamado de "refatoração". É a arte de limpar o código bagunçado e escrito à mão e substituí-lo por chamadas limpas e eficientes de bibliotecas existentes e bem testadas. Pense nisso como perceber que você está tricotando um suéter à mão quando poderia simplesmente comprar um perfeito em uma loja. O problema é que encontrar essas oportunidades é como procurar uma agulha em um palheiro, especialmente quando a agulha nem sequer parece uma agulha. O código escrito à mão pode nem mencionar o nome da biblioteca; ele apenas faz a mesma coisa de uma maneira desajeitada. Durante anos, os computadores lutaram para detectar essas chances ocultas de atualizar o código porque eram muito rígidos, e pedir a uma IA superinteligente para ler cada arquivo de um projeto é caro e lento demais.

Apresentamos o Prefactory, uma nova ferramenta projetada para resolver esse quebra-cabeça. Em vez de pedir a uma IA superinteligente para ler toda a biblioteca de código do zero toda vez (o que é como contratar um detetive para ler cada livro da biblioteca um por um), o Prefactory ensina a IA a construir um conjunto de "detectores de metal" personalizados primeiro. Esses detectores são como detectores de metal especializados, sintonizados para encontrar formas e sons específicos de tesouros enterrados. Uma vez que a IA constrói esses detectores, eles podem escanear todo o código-fonte num piscar de olhos, encontrando o código bagunçado e escrito à mão que corresponde ao padrão de uma função de biblioteca. Quando uma correspondência é encontrada, a IA intervém uma última vez para realizar a substituição e verificar se o novo código funciona exatamente como o antigo.

Os pesquisadores testaram essa ideia em uma coleção massiva de 100 exemplos do mundo real onde desenvolvedores já haviam substituído com sucesso o código escrito à mão por chamadas de biblioteca. Eles descobriram que o Prefactory era incrivelmente bom em detectar essas oportunidades. Ele identificou com sucesso os arquivos corretos em 75 de 100 casos e apontou as funções exatas para corrigir em 56 casos. Em comparação, o próximo melhor método, que dependia de um agente de IA padrão lendo o código, encontrou apenas os arquivos corretos em 35 casos e as funções corretas em 32. Ainda melhor, o Prefactory conseguiu produzir 40 refatorações totalmente validadas e funcionais que passaram em todos os testes de segurança.

O que torna essa abordagem tão especial é como ela economiza dinheiro e tempo. Escanear um projeto com o Prefactory leva, em média, apenas 1,3 segundos e custa menos de US$ 0,05 por instância para encontrar e corrigir. O método do agente de IA padrão, por outro lado, custa cerca de três vezes mais e leva muito mais tempo porque tem que "pensar" em todo o projeto toda vez. O artigo sugere que, ao transformar o conhecimento da IA em detectores reutilizáveis e executáveis, podemos tornar a limpeza de código rápida, barata e confiável. No entanto, os autores também observam que o sistema ainda não é perfeito; às vezes, ele tem dificuldade com bibliotecas muito grandes e complexas, onde o código "escrito à mão" parece muito diferente dos padrões padrão da biblioteca, e não consegue corrigir códigos que envolvem mudanças arquiteturais complexas de múltiplos arquivos. Mas para a grande maioria das tarefas cotidianas de limpeza de código, essa nova abordagem de "construção de detectores" parece ser um divisor de águas.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →