Guiando o Copilot com contexto

Desenvolvimento de Software com GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

A importância do contexto

Desenvolvimento de Software com GitHub Copilot

A importância do contexto

Desenvolvimento de Software com GitHub Copilot
Desenvolvimento de Software com GitHub Copilot

A variável #codebase

$$

#codebase: Faz busca semântica de código em todo o projeto

Prompt de exemplo:

Como a autenticação de usuário é tratada? #codebase

Resultado:

  • 🔍 Examina toda a base de código
  • 💻 Inclui lógica, chamadas de função ou configs relevantes na resposta
Desenvolvimento de Software com GitHub Copilot

Como o Copilot entende sua base de código

Tipos de índice:

  • Índice local: Armazenado na sua máquina
  • Índice remoto: Para repositórios no GitHub
Desenvolvimento de Software com GitHub Copilot

Verificando o tipo de índice

Desenvolvimento de Software com GitHub Copilot

Verificando o tipo de índice

Desenvolvimento de Software com GitHub Copilot

A variável #changes

$$

#changes: Faz referência às mudanças mais recentes no controle de versão

Prompt de exemplo:

Alguma dessas mudanças quebra o fluxo de login? #changes

Use quando:

  • 💾 Avaliar modificações de código
Desenvolvimento de Software com GitHub Copilot

A variável #selection

$$

#selection: Faz referência aos blocos de código destacados

Prompt de exemplo:

Você pode refatorar isto? #selection

Use quando:

  • 🔧 Fazer edições rápidas
  • 📝 Criar prompts direcionados
Desenvolvimento de Software com GitHub Copilot

A variável #fetch

  • Documentação 📚, referência de API 💻, post de blog 📰

$$

#fetch: Busca o conteúdo de uma página web

Prompt de exemplo:

Resuma esta documentação pra mim #fetch https://example.com/docs

Resultado:

  • 🌐 Busca a página e usa como contexto
Desenvolvimento de Software com GitHub Copilot

A variável #files

$$

#files: Anexa arquivos específicos ao prompt

Prompt de exemplo:

Você pode verificar este arquivo por problemas de tratamento de erros? #files:utils/data_loader.py

Resultado:

  • 🔍 Analisa o conteúdo do arquivo referenciado
  • 📄 Inclui como parte do contexto do prompt
Desenvolvimento de Software com GitHub Copilot

Outras variáveis e ferramentas do chat

$$

Variável/ferramenta Descrição
#search Permite buscar arquivos no workspace atual.
#testFailure Obtém informações de falhas de testes unitários. Útil ao executar e diagnosticar testes.
#problems Adiciona problemas do workspace do painel Problems como contexto. Útil ao corrigir ou depurar código.
#terminalLastCommand Obtém o último comando do terminal e sua saída.
#githubRepo Faz uma busca de código em um repositório do GitHub.
1 https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
Desenvolvimento de Software com GitHub Copilot
Desenvolvimento de Software com GitHub Copilot

Construindo uma conversa progressiva

Prompt único e complexo:

Adicione integração com PostgreSQL com autenticação, persistência, sessões, tratamento de erros e pool de conexões

Fluxo de complexidade progressiva:

  1. Qual é a melhor abordagem para adicionar persistência no banco? #codebase
  2. Implemente a conexão com o banco usando a abordagem sugerida
  3. Me ajude no design do schema para as classes Task e User
  4. Agora adicione gerenciamento de sessão e tratamento básico de erros
  5. ...
Desenvolvimento de Software com GitHub Copilot

Iniciar um novo chat para limpar o contexto

Desenvolvimento de Software com GitHub Copilot

Iniciar um novo chat para limpar o contexto

Desenvolvimento de Software com GitHub Copilot

Desenvolvimento de Software com GitHub Copilot

Vamos praticar!

Desenvolvimento de Software com GitHub Copilot

Preparing Video For Download...