Analise as melhores práticas do GitHub Copilot

Concluído

O GitHub Copilot para Visual Studio Code ajuda os programadores a escrever código mais rápido e com menos erros.

No entanto, o GitHub Copilot é um programador de pares de IA, não um programador. Para tirar o máximo partido do GitHub Copilot, é preciso seguir as melhores práticas.

Escolha a ferramenta GitHub Copilot certa para o trabalho

Embora as funcionalidades de completamento de código do GitHub Copilot e as funcionalidades de chat do GitHub Copilot partilhem algumas funcionalidades, as duas ferramentas são melhor usadas em circunstâncias diferentes.

As completações de código têm mais valor quando são usadas para:

  • Conclua trechos de código, nomes de variáveis e funções à medida que os escreve.
  • Gere código repetitivo.
  • Gere código a partir de comentários em linha em linguagem natural.
  • Gere testes para desenvolvimento orientado a testes.

Alternativamente, as funcionalidades de chat do GitHub Copilot são as que mais valor oferecem quando são usadas a:

  • Responda a perguntas sobre código em linguagem natural.
  • Gere grandes seções de código e, em seguida, itere nesse código para atender às suas necessidades.
  • Execute tarefas específicas usando participantes do chat, comandos de barra e variáveis do chat. Os participantes do chat (como @vscode ou @terminal) definem o contexto para um pedido, comandos de barra (como /explain ou /fix) comunicam a sua intenção, e as variáveis do chat (como #file ou #codebase) focam-se Copilot num contexto específico. Diferentes participantes e comandos estão disponíveis em diferentes plataformas do GitHub Copilot Chat.
  • Conclua uma tarefa como uma persona específica. Por exemplo, pode dizer ao GitHub Copilot Chat que é um Desenvolvedor Sénior de C++ que se preocupa muito com a qualidade do código, legibilidade e eficiência. Depois de estabelecer a persona, pode pedir ao GitHub Copilot para rever o seu código.

Tira o máximo proveito das sugestões inline do GitHub Copilot

O GitHub Copilot apresenta sugestões automaticamente para te ajudar a programar de forma mais eficiente. O GitHub Copilot oferece melhores sugestões quando segues certas ações e comportamentos. Você já pode estar acompanhando algumas dessas ações e comportamentos, pois eles também ajudam você e seus colegas a entender seu código.

Fornecer contexto para o GitHub Copilot

O GitHub Copilot funciona melhor quando tem contexto suficiente para saber o que estás a fazer e com o que queres ajuda. Tal como fornece a um colega contexto relevante ao pedir ajuda, precisa de fornecer contexto ao GitHub Copilot.

Abrir ficheiros

Para completações de código, o GitHub Copilot analisa os ficheiros abertos no seu editor para estabelecer contexto e criar sugestões apropriadas. Ter ficheiros relacionados abertos no Visual Studio Code enquanto usas o GitHub Copilot ajuda a definir o contexto e permite ao GitHub Copilot ver o quadro geral do teu projeto.

Comentário de alto nível

Tal como farias uma breve introdução a um colega, um comentário de topo num ficheiro de código pode ajudar o GitHub Copilot a compreender o contexto geral do código que estás a criar.

Inclusões e referências adequadas

É melhor definir manualmente as referências de módulos ou inclusões de que você/vós precisa para o(s) seu(s) trabalho(s). O GitHub Copilot pode dar sugestões, mas provavelmente sabe melhor as dependências que necessita incluir. Isto também pode informar o GitHub Copilot sobre os frameworks, bibliotecas e as suas versões que gostaria que usasse ao criar sugestões.

Nomes de funções significativas

Tal como um método chamado fetchData() não vai significar muito para um colega (ou para ti após vários meses), o fetchData() não vai ajudar o GitHub Copilot a perceber o teu código. Usar nomes de funções significativos ajuda o GitHub Copilot a gerar sugestões que fazem o que queres.

Comentários de funções específicas e com escopo adequado

Um nome de função só pode ser tão descritivo sem ser excessivamente longo. Os comentários funcionais podem ajudar a preencher detalhes que o GitHub Copilot possa precisar de saber.

Prime GitHub Copilot com código de exemplo

Um truque para colocar o GitHub Copilot na página certa é copiar e colar exemplos de código desejáveis num separador aberto do editor. O exemplo deve representar o código que queres que o GitHub Copilot emule. Fornecer um exemplo pode ajudar o GitHub Copilot a gerar sugestões que correspondam à linguagem e às tarefas que pretende emular. Depois de o GitHub Copilot te ajudar a criar algum código que corresponda ao teu objetivo, podes apagar o código de exemplo. Esta abordagem é especialmente útil quando precisas de "treinar" o GitHub Copilot. Por exemplo, suponha que o GitHub Copilot sugere por defeito excertos de código que implementam uma versão mais antiga de uma biblioteca. Você pode inserir código em seu projeto que usa a versão mais recente da biblioteca. Isto ajuda o GitHub Copilot a começar a sugerir excertos de código que utilizam a versão mais recente da biblioteca. Depois de o GitHub Copilot aprender a usar a nova versão da biblioteca, pode apagar o código de exemplo.

Seja consistente e mantenha a barra de qualidade alta

O GitHub Copilot vai aderir ao teu código para gerar sugestões que sigam o padrão existente, por isso o ditado "lixo entra, lixo sai" aplica-se.

Manter sempre um bar de alta qualidade pode exigir disciplina. Especialmente quando você está codificando rápido e solto para fazer algo funcionar. Podes querer desativar as conclusões do GitHub Copilot enquanto estás em modo de "hacking". Pode desativar temporariamente as conclusãos a partir do menu de estado do GitHub Copilot (acessível na barra de estado do Visual Studio Code).

Tira o máximo partido do GitHub Copilot Chat

Quando utiliza as funcionalidades de chat do GitHub Copilot, há várias coisas que pode fazer para otimizar a sua experiência.

Comece de forma geral e, a seguir, vá para o específico.

Ao escrever um prompt para o GitHub Copilot, dê primeiro ao GitHub Copilot uma descrição ampla do objetivo ou cenário. Em seguida, liste todos os requisitos específicos. Considere as seguintes solicitações:

  1. Escreva uma função que me diga se um número é primo.
  2. A função deve receber um inteiro e retornar verdadeiro se o inteiro for primo.
  3. A função deve gerar um erro se a entrada não for um número inteiro positivo.

Dê exemplos

Usa exemplos para ajudar o GitHub Copilot a perceber o que queres. Você pode fornecer dados de entrada de exemplo, saídas de exemplo e implementações de exemplo.

Divida tarefas complexas em tarefas mais simples

Se quiseres que o GitHub Copilot complete uma tarefa complexa ou grande, divide a tarefa em várias tarefas simples e pequenas. Por exemplo, em vez de pedir ao GitHub Copilot para gerar um puzzle de sopa de palavras, divida o processo em tarefas menores e peça ao GitHub Copilot para as realizar uma a uma:

  1. Escreva uma função para gerar uma grelha de 10 por 10 letras.
  2. Escreva uma função para encontrar todas as palavras em uma grade de letras, dada uma lista de palavras válidas.
  3. Escreva uma função que use as funções anteriores para gerar uma grade de 10 por 10 letras que contenha pelo menos 10 palavras.
  4. Atualize a função anterior para imprimir a grelha de letras e 10 palavras aleatórias dessa grelha.

Evitar a ambiguidade

Evite termos ambíguos. Por exemplo, não perguntes "o que é que isto faz" quando "isto" pode ser o ficheiro atual, a última resposta do GitHub Copilot, ou um bloco de código específico. Em vez de usar termos ambíguos, seja específico: O que faz a função createUser?

Indicar o código pertinente

Se estiveres a usar o GitHub Copilot Chat no teu IDE, abre o(s) ficheiro(s) ou destaca o código que queres que o GitHub Copilot consulte. Use participantes de bate-papo, comandos de barra e variáveis de bate-papo em prompts para definir o contexto. Por exemplo, especifique quais os ficheiros que o GitHub Copilot Chat deve referenciar.

Usar participantes do chat, comandos de barra e variáveis de chat

Os participantes do bate-papo são projetados para coletar contexto extra sobre uma base de código ou um domínio ou tecnologia específicos. Quando especifica o participante apropriado, o GitHub Copilot Chat pode encontrar e fornecer informações melhores para enviar ao backend do GitHub Copilot. Por exemplo, use @vscode quando colocar questões sobre funcionalidades e APIs Visual Studio Code.

Os comandos com barra ajudam o GitHub Copilot Chat a compreender a sua intenção quando faz uma pergunta. Estás a aprender sobre uma base de código (/explain), queres ajuda para corrigir um problema (/fix), ou estás a criar casos de teste (/tests)? Ao informar o GitHub Copilot Chat sobre o que está a tentar fazer, pode ajustar a resposta à sua tarefa e fornecer comandos, definições e excertos de código úteis.

Os participantes do chat, como @terminal ou @vscode, podem contribuir com variáveis de chat que forneçam contexto específico do domínio. Pode referenciar uma variável de chat no seu prompt de chat usando o # símbolo. Você pode usar variáveis de bate-papo para ser mais específico sobre o contexto do prompt.

Por exemplo, a #file variável de chat permite-te referenciar ficheiros específicos do teu espaço de trabalho no prompt do chat. Isto ajuda a tornar as respostas do GitHub Copilot Chat mais relevantes para o seu código, fornecendo contexto sobre o ficheiro com que está a trabalhar. Podes fazer perguntas como "Can you suggest improvements to #file:package.json?" ou "How do I add an extension in #file:devcontainer.json?". Usar a variável #file pode ajudar a obter respostas mais direcionadas e precisas da GitHub Copilot.

Experimentar e iterar

Caso não obtenha o resultado desejado, repita com o prompt e tente novamente. Faça referência à resposta anterior no seu próximo pedido. Você também pode excluir a resposta anterior e começar de novo.

Mantenha o histórico relevante

O GitHub Copilot Chat usa o histórico de conversas para obter contexto sobre o seu pedido. Para garantir que o GitHub Copilot utiliza um histórico de chat relevante:

  • Use threads para iniciar uma nova conversa para uma nova tarefa.
  • Exclua solicitações que não são mais relevantes ou que não deram o resultado desejado.

Siga as boas práticas de codificação

Se não estiveres a obter as respostas que queres quando pedes sugestões ao GitHub Copilot, certifica-te de que o teu código atual segue as melhores práticas e é fácil de ler. Por exemplo:

  • Use um estilo e padrões de código consistentes.
  • Use nomes descritivos para variáveis e funções.
  • Comente o seu código.
  • Estruture seu código em componentes modulares com escopo.
  • Inclua testes unitários.

Resumo

O GitHub Copilot é uma ferramenta poderosa que pode ajudar-te a escrever código mais rápido e com menos erros. No entanto, para tirar o máximo partido do GitHub Copilot, é preciso seguir as melhores práticas. Ao escolher a ferramenta GitHub Copilot certa para o trabalho, fornecer contexto e seguir boas práticas de programação, pode otimizar a sua experiência com o GitHub Copilot.