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
-
Ao trabalhar em seu IDE, realce o código que precisa de melhorias.
-
Abra Bate-Papo Copilot na IDE.
-
Peça Copilot para refatorar o código. Por exemplo:
Extract this into a reusable helper and add error handlingStandardize this logging format to match our patternAdd null checks for all optional parametersReplace this deprecated API call with the current version
-
Examine as alterações sugeridas.
-
Aceite as alterações ou peça Copilot para modificar sua abordagem.
-
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:
Refactor this to use structured logging and proper error handling
// Highlight this code
try {
await fetchData();
} catch (e) {
console.log(e);
}
Refactor this to use structured logging and proper error handling
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
-
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. -
Atribua o problema ao usuário do Copilot .
-
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
-
Examine a solicitação de pull exatamente como faria com uma solicitação de pull gerada por um humano.
-
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.
-
Itera dessa forma até que o trabalho seja concluído corretamente.
-
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
- No repositório, crie um arquivo chamado
.github/copilot-instructions.md. - Adicione os padrões de codificação da equipe em instruções claras e simples, por exemplo, usando listas com marcadores.
- 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
-
Verifique se todos os participantes piloto tenham Copilot acesso com agente de nuvem Copilot habilitado.
-
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
-
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
-
Crie seu primeiro arquivo
.github/copilot-instructions.mdcom 3 a 5 dos seus padrões mais importantes.
Semanas 2 a 4: Conduzir o piloto
-
Selecione 5 a 10 repositórios para o piloto.
-
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
-
Use Copilot em seu IDE para correções rápidas à medida que você encontra problemas.
-
Atribuir tarefas de limpeza maiores a agente de nuvem Copilot.
-
Revise cuidadosamente todos os PRs gerados por Copilot.
-
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