MORCoRA: Multi-Objective Refactoring Recommendation Considering Review Availability

O artigo apresenta o MORCoRA, uma técnica de busca multiobjetivo que recomenda sequências de refatoração para melhorar a qualidade do código e preservar a semântica, ao mesmo tempo que identifica revisores disponíveis e com expertise adequada para garantir a aprovação rápida da revisão.

Lei Chen, Shinpei Hayashi

Publicado Tue, 10 Ma
📖 4 min de leitura☕ Leitura rápida

Each language version is independently generated for its own context, not a direct translation.

Imagine que você é o gerente de uma grande oficina de carros (o repositório de código). De repente, você percebe que o motor de um dos carros está muito bagunçado e precisa de um ajuste fino para funcionar melhor. Isso é o que chamamos de refatoração: reorganizar o código para deixá-lo mais limpo e eficiente, sem mudar o que o carro faz por fora.

O problema é que, na vida real, você não pode simplesmente mandar um mecânico arrumar o carro de qualquer jeito. Antes de aplicar a mudança, você precisa de um segundo mecânico (o revisor) para olhar o plano e dizer: "Isso é seguro? Você sabe o que está fazendo? Você tem tempo para fazer isso agora?"

Muitas vezes, as ferramentas automáticas que sugerem essas melhorias esquecem dessa parte humana. Elas dizem: "Arrume o motor!" mas não perguntam: "Quem vai fazer isso e está ocupado demais para parar agora?". Se o mecânico sugerido estiver atolado de trabalho ou não entender de motores, a mudança nunca acontece, e o carro continua com problemas.

É aqui que entra o MORCoRA, a solução proposta neste artigo. Vamos entender como ele funciona com uma analogia simples:

O Problema: A "Lista de Tarefas" Infinita

Imagine que você tem uma lista de 100 ideias para melhorar o carro.

  1. A abordagem antiga: O computador escolhe as 10 melhores ideias tecnicamente. Mas, ao tentar executar, você descobre que o único mecânico que entende dessas peças específicas está com 20 carros na fila de espera. Ele não vai conseguir revisar seu plano. Resultado? Nada é feito.
  2. A abordagem MORCoRA: O MORCoRA é como um gerente inteligente que não olha apenas para a qualidade da ideia, mas também para a disponibilidade da equipe.

Como o MORCoRA Funciona (Os 3 Pilares)

O MORCoRA usa um "super-gerente" (um algoritmo de busca) que procura por soluções que atendam a três critérios ao mesmo tempo:

  1. Melhorar o Carro (Qualidade): A mudança realmente deixa o código mais limpo, organizado e fácil de manter?
  2. Não Quebrar o Motor (Semântica): A mudança faz sentido? Se você pegar uma peça de um motor de caminhão e tentar encaixar num carro esportivo só porque "ficou bonito", vai dar errado. O MORCoRA garante que a peça nova se encaixe perfeitamente no contexto original.
  3. Ter Quem Assine (Disponibilidade de Revisão): Este é o grande diferencial. O sistema pergunta:
    • Quem entende dessa parte do código? (Especialidade)
    • Essa pessoa está livre ou atolada? (Carga de trabalho)

Se o sistema vê uma ótima ideia, mas o único especialista está com a agenda cheia, o MORCoRA descarta essa ideia e busca outra que seja boa e tenha alguém disponível para aprovar.

A Analogia do "Time de Futebol"

Pense no código como um time de futebol.

  • Refatorar é trocar de posição um jogador para melhorar o jogo.
  • Revisão é o treinador aprovando a troca.
  • O MORCoRA é o assistente técnico que diz: "Podemos trocar o atacante, mas o treinador que entende desse jogador está viajando para uma final de copa. Vamos trocar um jogador que o treinador local conhece e que está livre no banco de reservas?"

Se você tentar fazer a troca sem o treinador certo, o time fica confuso e a jogada não sai. O MORCoRA garante que a jogada seja boa, faça sentido e tenha quem possa gritar "Vai!" no momento certo.

O Que Eles Descobriram?

Os pesquisadores testaram essa ideia em 6 projetos de código aberto famosos (como o Mockito e o Retrofit). Eles compararam o MORCoRA com as ferramentas antigas e descobriram coisas incríveis:

  • Mais Eficiência: O MORCoRA conseguiu encontrar soluções que eram 433% mais "disponíveis" para serem revisadas do que as ferramentas antigas.
  • Qualidade Real: Embora às vezes as soluções antigas parecessem tecnicamente "perfeitas" no papel, elas eram inúteis se ninguém pudesse aprová-las. O MORCoRA entrega soluções que são boas e executáveis.
  • O Algoritmo Certo: Eles testaram várias "inteligências" diferentes para fazer essa busca e descobriram que o NSGA-II (o cérebro do MORCoRA) era o melhor "gerente" para equilibrar esses três objetivos.

Conclusão Simples

Este artigo nos ensina uma lição valiosa para o mundo do desenvolvimento de software (e para a vida em geral): Não adianta ter a melhor ideia do mundo se você não tem a equipe certa para executá-la no momento certo.

O MORCoRA é uma ferramenta que une a inteligência técnica (saber o que consertar) com a inteligência humana (saber quem pode fazer). Ele garante que, quando você decidir melhorar seu código, haverá alguém disponível, capacitado e com tempo para dizer: "Sim, isso é seguro, vamos fazer!".

Em resumo: O MORCoRA transforma a refatoração de um "sonho de um programador solitário" em um "plano de ação realista e executável".