Pular para o conteúdo

GitHub Copilot: sessões empilhadas para refatorar código legado

Refatorar uma base de código antiga é um dos desafios mais intimidadores para qualquer equipe de desenvolvimento. A tentação de fazer tudo em um único pull request gigante é grande, mas sabemos que isso torna a revisão impraticável e aumenta o risco de bugs. O GitHub acaba de anunciar uma solução inteligente para esse problema: as stacked sessions (sessões empilhadas) no aplicativo GitHub Copilot.

O problema das grandes refatorações

Quando você precisa modernizar um código legado — seja migrando de uma biblioteca antiga, atualizando padrões de código ou reestruturando a arquitetura — você enfrenta um dilema. Fazer tudo de uma vez cria um PR enorme e difícil de revisar. Quebrar manualmente em PRs menores exige planejamento cuidadoso de dependências e muito trabalho manual para manter a consistência entre as mudanças.

É exatamente nesse cenário que as sessões empilhadas entram em ação, combinando a capacidade de raciocínio da IA com um workflow estruturado para gerenciar refatorações em camadas.

Como funcionam as stacked sessions

Segundo o GitHub Blog, as sessões empilhadas permitem que você trabalhe em múltiplas mudanças relacionadas de forma organizada, criando uma pilha de commits e pull requests interdependentes. O aplicativo GitHub Copilot gerencia automaticamente as dependências entre esses PRs, garantindo que cada camada seja construída sobre a anterior.

O workflow funciona assim:

  1. Inicie uma sessão empilhada: No app do GitHub Copilot, você começa uma nova sessão para sua refatoração. A IA entende o contexto completo do que você está tentando realizar.
  2. Crie mudanças em camadas: Em vez de fazer tudo de uma vez, você trabalha em etapas lógicas. Por exemplo, primeiro atualiza tipos e interfaces, depois migra funções utilitárias, e finalmente refatora os componentes principais.
  3. Gere PRs automaticamente: Para cada camada concluída, o Copilot cria um PR separado. Cada PR é pequeno, focado e fácil de revisar, mas mantém a relação com os PRs anteriores da pilha.
  4. Gerencie dependências: O sistema rastreia automaticamente qual PR depende de qual. Quando um PR da base da pilha é mesclado, os PRs subsequentes são automaticamente atualizados.

O diferencial da IA no processo

O que torna as sessões empilhadas especialmente poderosas é como a IA do GitHub Copilot participa ativamente do processo. A ferramenta não apenas executa comandos: ela compreende o objetivo da refatoração e sugere a melhor forma de quebrar o trabalho em partes menores e lógicas.

Durante a sessão, você pode conversar com o Copilot sobre a estratégia de refatoração. A IA analisa seu código, identifica padrões e dependências, e propõe uma sequência de mudanças que minimize conflitos e mantenha o código funcionando em cada etapa.

Isso é fundamentalmente diferente de simplesmente usar um assistente de código para autocompletar. Aqui, a IA atua como um parceiro de planejamento, ajudando você a pensar na arquitetura da mudança antes de executá-la.

Exemplo prático: migrando uma biblioteca

Imagine que você precisa migrar um projeto React de uma biblioteca de gerenciamento de estado antiga para uma moderna. Com sessões empilhadas, você poderia estruturar assim:

PR #1: Adiciona a nova biblioteca como dependência e cria os utilitários de configuração básicos, sem alterar código existente.

// utils/store-config.ts
import { configureStore } from '@reduxjs/toolkit';

export const createAppStore = () => {
  return configureStore({
    reducer: {}
  });
};

PR #2: Migra os tipos e interfaces, construindo sobre o PR #1.

// types/state.ts
export interface RootState {
  user: UserState;
  products: ProductsState;
}

PR #3: Converte os primeiros módulos de estado (por exemplo, autenticação de usuário), usando os tipos do PR #2.

PR #4: Migra os componentes que consomem o estado, agora que a infraestrutura dos PRs anteriores está no lugar.

Cada PR é revisável isoladamente, pode ser testado separadamente, e a equipe pode começar a aprovar e mesclar as primeiras camadas enquanto você ainda trabalha nas seguintes.

Vantagens para equipes

As sessões empilhadas trazem benefícios concretos para o dia a dia de desenvolvimento:

  • Revisões mais rápidas: PRs menores são revisados mais rapidamente. Os revisores podem aprovar camadas iniciais sem esperar a refatoração completa.
  • Menor risco: Mudanças incrementais são mais fáceis de testar e reverter se necessário.
  • Melhor comunicação: Cada PR conta uma história clara de uma mudança específica, facilitando o entendimento do time.
  • Progresso contínuo: Você pode mesclar trabalho concluído mesmo que a refatoração completa ainda esteja em andamento.

Disponibilidade e acesso

O recurso de sessões empilhadas está disponível no aplicativo GitHub Copilot, que é separado das extensões para editores como VS Code ou JetBrains. É importante notar que você precisa do app standalone para usar essa funcionalidade — ela não está disponível nas extensões tradicionais do Copilot.

Considerações finais

As sessões empilhadas representam uma evolução interessante no uso de IA para desenvolvimento. Em vez de focar apenas em autocompletar código linha por linha, a ferramenta está ajudando com um problema de processo: como organizar e executar mudanças complexas de forma estruturada.

Para equipes que lidam com código legado ou que precisam fazer refatorações grandes com frequência, vale a pena experimentar esse workflow. A combinação de IA com um sistema de gerenciamento de dependências entre PRs pode transformar uma tarefa que levaria semanas de trabalho manual em algo mais gerenciável e menos propenso a erros.

O futuro do desenvolvimento assistido por IA parece estar indo além da geração de código: está nos ajudando a pensar melhor sobre como organizamos e executamos nosso trabalho.

Recomendação relacionada

Arquitetura Limpa: O Guia do Artesão para Estrutura e Design de Software

A obra de Robert C. Martin que fundamenta boas práticas de arquitetura de software, em edição traduzida.

Ver na Amazon →

Como Associado Amazon, Visão Binária pode ganhar uma comissão sobre compras qualificadas feitas através deste link, sem custo adicional pra você.