Skip to main content

Usar GitHub Copilot para reduzir a dívida técnica

Use Copilot para automatizar tarefas de refatoração e manutenção, liberando sua equipe para se concentrar no desenvolvimento de recursos.

Introdução

A dívida técnica se acumula em cada base de código: código duplicado, testes ausentes, dependências desatualizadas e padrões inconsistentes. Esses problemas podem se acumular porque o desenvolvimento de recursos normalmente recebe uma prioridade mais alta. Este tutorial explica como você pode usar GitHub Copilot para enfrentar a dívida técnica sistematicamente, sem sacrificar o ritmo de entrega de funcionalidades.

Para quem este tutorial serve

Este tutorial foi projetado para ajudar as equipes de engenharia e líderes técnicos a reduzir a dívida técnica, mantendo o ritmo no qual novos recursos são entregues. Você precisará ter:

  • Uma Copilot assinatura com acesso a agente de nuvem Copilot
  • Acesso de administrador para pelo menos um repositório
  • Familiaridade com o fluxo de trabalho de desenvolvimento da sua equipe

O que você vai realizar

Ao final deste tutorial, você terá aprendido sobre:

  • Usar Copilot para implementar correções no momento
  • Utilização do agente de nuvem Copilot para tarefas de limpeza em larga escala
  • Criando instruções sob medida visando alinhar-se aos Copilot padrões da sua equipe
  • Medindo o impacto de Copilot sobre a sua dívida técnica

Noções básicas sobre o problema da dívida técnica

Antes de começar a reduzir a dívida técnica em uma base de código, você deve levar algum tempo para identificar os tipos de dívida técnica que sua equipe enfrenta com mais frequência.

Os tipos comuns de dívida técnica incluem:

  •         **Duplicação de código** – A mesma lógica implementada em vários locais
    
  •         **Testes ausentes** – Funcionalidades sem cobertura de testes adequados
    
  •         **Dependências desatualizadas** – Bibliotecas que estão várias versões abaixo das versões mais recentes.
    
  •         **Padrões inconsistentes** – abordagens diferentes para o mesmo problema em sua base de código
    
  •         **Código herdado** – código antigo que funciona, mas não segue os padrões atuais
    

O custo da dívida técnica aumenta ao longo do tempo.

  • Engenheiros seniores gastam tempo em atualizações rotineiras em vez de design de arquitetura
  • As revisões de código tornam-se mais longas à medida que os revisores debatem padrões inconsistentes
  • Novos desenvolvedores levam mais tempo para serem integrados devido à organização de código confusa
  • O risco de implantação aumenta à medida que dependências desatualizadas acumulam vulnerabilidades

Usar Copilot na sua IDE para correções imediatas

A melhor maneira de evitar o acúmulo de dívidas técnicas em sua base de código é evitar que ela entre na base de código em primeiro lugar.

Quando você encontrar uma dívida técnica durante o desenvolvimento, corrija-a imediatamente usando Copilot no seu IDE.

Fluxo de trabalho de refatoração rápida

  1. Ao trabalhar em seu IDE, realce o código que precisa de melhorias.

  2. Abra Bate-Papo Copilot na IDE.

  3. Peça Copilot para refatorar o código. Por exemplo:

    • Extract this into a reusable helper and add error handling
    • Standardize this logging format to match our pattern
    • Add null checks for all optional parameters
    • Replace this deprecated API call with the current version
  4. Examine as alterações sugeridas.

  5. Aceite as alterações ou peça Copilot para modificar sua abordagem.

  6. Execute seus testes para verificar se as alterações funcionam corretamente.

Exemplo: Padronizando o tratamento de erros

Se você encontrar tratamento de erros inconsistentes, por exemplo:

// Highlight this code
try {
  await fetchData();
} catch (e) {
  console.log(e);
}

Peça Copilot para melhorar o código, por exemplo:

Copilot prompt
Refactor this to use structured logging and proper error handling
          Copilot pode sugerir:
try {
  await fetchData();
} catch (error) {
  logger.error('Failed to fetch data', {
    error: error.message,
    stack: error.stack,
    timestamp: new Date().toISOString()
  });
  throw error;
}

Observação

Essa resposta é um exemplo. Bate-Papo Copilot as respostas não são determinísticas, portanto, você poderá obter uma resposta diferente se executar o mesmo prompt no mesmo código.

Ao adotar a abordagem de correção no momento, você ajuda a garantir que o código abaixo do padrão não seja adicionado à sua base de código e evite a criação de um problema de backlog que talvez nunca seja resolvido.

Para obter mais detalhes sobre como usar Copilot em seu IDE, consulte Fazendo perguntas para o GitHub Copilot no seu IDE.

Usando agente de nuvem Copilot para refatoração em larga escala

Algumas tarefas de refatoração são grandes demais para serem concluídas enquanto todos na equipe estão ocupados desenvolvendo novos recursos. Nessa situação, você pode usar agente de nuvem Copilot para lidar com essas tarefas de forma autônoma. O esforço humano ainda será necessário — no mínimo para revisar as alterações agente de nuvem Copilot propostas — mas delegar a maior parte do trabalho ao Copilot pode permitir que você realize uma refatoração em grande escala com muito menos impacto na produtividade da sua equipe.

Quando usar agente de nuvem Copilot

Use agente de nuvem Copilot para tarefas que:

  • Toque em muitos arquivos em sua base de código
  • Exigir alterações sistemáticas (como remover sinalizadores de recursos antigos)
  • Precisa de testes cuidadosos, mas são simples de implementar
  • Interromperia o desenvolvimento de funcionalidades se fosse feito manualmente

Os exemplos incluem:

  • Atualizações de estrutura que afetam mais de 50 arquivos
  • Removendo sinalizadores de funcionalidades preteridas
  • Migrando para TypeScript estrito
  • Atualizando versões de dependência
  • Padronizando padrões de importação

Fluxo de trabalho para agente de nuvem Copilot

  1. Crie um GitHub problema que descreva a tarefa de refatoração.

    Seja específico sobre o que precisa mudar. Por exemplo:

    Remove all feature flags marked for cleanup in Q2.
    
    These flags are:
    - `enable_new_dashboard`
    - `beta_export_feature`
    - `experimental_search`
    
    All three flags are enabled by default in production.
    
    Remove the flag checks and keep the "enabled" code path.
    
  2. Atribua o problema ao usuário do Copilot .

  3.        agente de nuvem Copilot vai:
    
    • Configurar um ambiente de desenvolvimento
    • Abrir um rascunho de pull request
    • Fazer as alterações necessárias no código
    • Executar seus testes
    • Finalizar a pull request para análise
    • Solicite sua revisão do pull request
  4. Examine a solicitação de pull exatamente como faria com uma solicitação de pull gerada por um humano.

  5. Deixe comentários se forem necessárias alterações,agente de nuvem Copilot atualizará a solicitação de pull com base em seus comentários.

  6. Itera dessa forma até que o trabalho seja concluído corretamente.

  7. Aprove e mescle a pull request.

Para saber mais, confira Asking GitHub Copilot to create a pull request e Reviewing a pull request created by GitHub Copilot.

Guardrails de segurança

          agente de nuvem Copilot opera com medidas de segurança internas:
  • Ele só tem permissão para efetuar push para suas próprias branches copilot/*
  • Ele não pode mesclar solicitações de pull — requer sua aprovação
  • Todas as confirmações são registradas e auditáveis
  • As proteções de branch existentes continuam ativas
  • Verificações de CI/CD são executadas antes de qualquer código ser mesclado

Criando instruções personalizadas para sua equipe

Instruções personalizadas ajudam o Copilot a entender as normas e padrões de codificação da sua equipe. Isso garante que as sugestões correspondam às suas expectativas desde o início.

Configurando instruções personalizadas

  1. No repositório, crie um arquivo chamado .github/copilot-instructions.md.
  2. Adicione os padrões de codificação da equipe em instruções claras e simples, por exemplo, usando listas com marcadores.
  3. Confirme o arquivo no repositório.

Exemplo de instruções personalizadas

Aqui está um exemplo de instruções personalizadas eficazes:

## Our Standards

- Use structured logging, not console.log
- Sanitize user input before database queries
- Check for null/undefined on all optional parameters
- Keep functions under 50 lines (extract helpers if needed)
- Every public function needs a test
- Flag any loops that might trigger N+1 queries

## Error Handling

- Always use try-catch blocks for async operations
- Log errors with context (user ID, request ID, timestamp)
- Never swallow errors silently
- Return appropriate HTTP status codes

## Testing Requirements

- Unit tests for all business logic
- Integration tests for API endpoints
- Mock external services in tests
- Test both success and failure paths

Para obter diretrizes detalhadas sobre como escrever instruções personalizadas, consulte Adicionando instruções personalizadas do repositório para GitHub Copilot.

Benefícios das instruções personalizadas

Com instruções personalizadas em vigor:

  •         Copilot sugere códigos que seguem seus padrões
    
  • As revisões de código tornam-se mais rápidas, com menos discussões sobre alterações de estilo
  • Novos membros da equipe aprendem seus padrões por meio Copilot de sugestões
  • A consistência melhora em toda a base de código

Executando um programa piloto

Comece de forma pequena para validar o impacto de Copilot na sua dívida técnica antes de implementar amplamente.

Semana 1: Configurar e estabelecer linhas de base

  1. Verifique se todos os participantes piloto tenham Copilot acesso com agente de nuvem Copilot habilitado.

  2. Conte os itens de dívida técnica em sua lista de pendências:

    • Quantidade de issues marcadas como "dívida técnica", "tarefa" ou termos equivalentes
    • Número de dependências desatualizadas
    • Quantidade de arquivos com falha em verificações do linter
  3. Acompanhe as métricas atuais:

    • Média de tempo entre a criação e a fusão de pull requests de refatoração
    • Média de rodadas de revisão por pull request de refatoração
  4. Crie seu primeiro arquivo .github/copilot-instructions.md com 3 a 5 dos seus padrões mais importantes.

Semanas 2 a 4: Conduzir o piloto

  1. Selecione 5 a 10 repositórios para o piloto.

  2. Escolha 1 a 2 problemas específicos a serem resolvidos. Por exemplo:

    • Duplicação de código em uma área específica
    • Falta de testes em arquivos frequentemente modificados
    • Dependências desatualizadas
  3. Use Copilot em seu IDE para correções rápidas à medida que você encontra problemas.

  4. Atribuir tarefas de limpeza maiores a agente de nuvem Copilot.

  5. Revise cuidadosamente todos os PRs gerados por Copilot.

  6. Dê feedback sobre sugestões para Copilot aprender suas preferências.

Semana 5: Avaliar resultados

Após o piloto, meça seus resultados:

  • Com que rapidez as pull requests de refatoração estão sendo mescladas?

  • Quantas rodadas de revisão precisam agora?

  • Quais tipos de sugestões de alteração de código, feitas por agente de nuvem Copilot em pull requests, os desenvolvedores aceitam com mais frequência?

  • Quais sugestões precisavam da revisão mais necessária?

  • Suas métricas técnicas de dívida estão melhorando?

    • Há uma redução nos avisos do linter?
    • Cobertura de teste aumentando?
    • Versões de dependência mais atuais?

Atualize suas instruções personalizadas com base no que você aprendeu sobre quais diretrizes mais ajudaram Copilot .

Medindo o sucesso

Acompanhe métricas específicas para compreender o impacto de Copilot na sua dívida técnica.

Métricas de velocidade

Monitore como Copilot afeta a velocidade de desenvolvimento:

  • Tempo para fechar problemas técnicos de dívida (meta: redução de 30 a 50%)
  • Quantidade semanal de pull requests de dívida técnica mescladas (objetivo: crescimento de 2 a 3 vezes).
  • Quantidade média de ciclos de revisão por pull request de refatoração (avalie se isso aumentou ou diminuiu)

Métricas de qualidade

Verifique se a qualidade melhora junto com a velocidade:

  • Número de avisos do linter (espera-se que diminua)
  • Percentual de cobertura de teste (isso deve ser tendência para cima)
  • Número de incidentes de produção relacionados ao código refatorado (avalie se isso foi alterado)

Satisfação do engenheiro

Pesquise sua equipe regularmente:

  • Os engenheiros estão gastando menos tempo em manutenção de rotina?
  • As revisões de código estão focando mais na arquitetura e menos no estilo?
  • A integração é mais rápida para novos membros da equipe?

Resolução de problemas

          Copilot sugere alterações incorretas

Se Copilot consistentemente sugerir um código que não corresponda às suas necessidades:

  • Examine suas instruções personalizadas, elas podem ser muito vagas ou contraditórias
  • Fornecer um contexto mais específico em seus prompts
  • Adicionar exemplos de bom código às suas instruções personalizadas
  • Deixe comentários detalhados nas revisões de pull request para permitir que agente de nuvem Copilot corrija os problemas.

As solicitações de pull são muito grandes para serem revisadas

Se agente de nuvem Copilot criar solicitações de pull difíceis de examinar:

  • Dividir tarefas grandes em problemas menores e focados
  • Peça agente de nuvem Copilot para manipular um arquivo ou diretório de cada vez
  • Usar descrições de problema mais específicas

Alterações interrompem testes

Se a refatoração introduzir falhas de teste:

  • Verifique se o conjunto de testes é executado de forma confiável antes de usar agente de nuvem Copilot
  • Examinar Copilot as alterações cuidadosamente antes de mesclar
  • Peça Copilot para atualizar testes junto com as alterações de código

A adoção pela equipe está lenta

Se a sua equipe não estiver usando Copilot para dívida técnica:

  • Compartilhar histórias de sucesso dos primeiros adotantes
  • Demonstrar economia de tempo em reuniões de equipe
  • Comece com os itens de dívida técnica mais irritantes
  • Tornar a criação de instruções personalizadas uma atividade de equipe

Conclusion

Neste tutorial, você aprendeu a usar Copilot para reduzir sistematicamente a dívida técnica. Agora você sabe como:

  • Corrija a dívida técnica imediatamente usando Copilot no seu IDE
  • Atribuir tarefas de refatoração grandes a agente de nuvem Copilot
  • Crie instruções personalizadas que estejam alinhadas aos Copilot padrões da sua equipe
  • Executar um programa piloto para validar a abordagem
  • Impacto da medida Copilotna dívida técnica

Ao automatizar tarefas de refatoração e manutenção de rotina, Copilot libera você para focar na arquitetura, no desenvolvimento de funcionalidades e em outros trabalhos de alto valor.

Pesquisa rápida

Depois de ler este tutorial, você se sente confiante de que pode usar Copilot para reduzir a dívida técnica em uma base de código?

          <a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
          <span>Yes</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>No</span></a>

Próximas etapas

  •         **Expanda o piloto:** estenda o uso para outros repositórios considerando os resultados do piloto.
    
  •         **Automatizar atualizações de dependência**: Crie tarefas recorrentes para agente de nuvem Copilot gerenciar atualizações de dependência.
    
  •         **Crie uma fila de refatoração**: rotule problemas em sua lista de pendências como bons para, em Copilot seguida, atribuir regularmente um lote desses para Copilot trabalhar.
    
  •         **Compartilhar práticas recomendadas**: registre orientações bem-sucedidas e instruções personalizadas para sua equipe.
    

Leitura adicional

  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent)
    
  •         [AUTOTITLE](/copilot/tutorials/refactoring-code-with-github-copilot)
    
  •         [Como usar o GitHub Copilot em seu IDE: dicas, truques e práticas recomendadas](https://github.blog/developer-skills/github/how-to-use-github-copilot-in-your-ide-tips-tricks-and-best-practices/) no GitHub blog
    
  •         [5 maneiras de integrar o GitHub agente de nuvem Copilot ao fluxo de trabalho](https://github.blog/ai-and-ml/github-copilot/5-ways-to-integrate-github-copilot-coding-agent-into-your-workflow/) no GitHub blog