Examine as melhores práticas do GitHub Copilot

Concluído

As extensões GitHub Copilot para Visual Studio Code ajudam os programadores a escrever código mais rápido e com menos erros.

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

Escolha a ferramenta GitHub Copilot certa para o trabalho

Embora as funcionalidades de completamento de código da GitHub Copilot e as funcionalidades de chat da 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 da GitHub Copilot oferecem mais valor quando são usadas para:

  • 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.
  • Realize tarefas específicas com palavras-chave e habilidades. GitHub Copilot Chat utiliza palavras-chave incorporadas (e competências concebidas para fornecer contexto importante) nos prompts para realizar tarefas comuns rapidamente. Diferentes tipos de palavras-chave e competências estão disponíveis em diferentes plataformas 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.

Aproveite ao máximo as sugestões em linha do GitHub Copilot

A extensão GitHub Copilot apresenta sugestões automaticamente para te ajudar a programar de forma mais eficiente. GitHub Copilot oferece sugestões melhores 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.

Forneça contexto para GitHub Copilot

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 dar contexto ao GitHub Copilot.

Abrir ficheiros

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

Comentário de alto nível

Tal como farias uma breve introdução de alto nível a um colega, um comentário de topo num ficheiro de código pode ajudar 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). GitHub Copilot pode dar sugestões, mas provavelmente sabe melhor quais as dependências que precisa de incluir. Isto também pode informar o GitHub Copilot sobre os frameworks, bibliotecas e as suas versões que gostaria que usasse para criar sugestões.

Nomes de funções significativas

Tal como um método chamado fetchData() não significa 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-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. Comentários de função podem ajudar a preencher detalhes que o GitHub Copilot precisa saber.

Prime GitHub Copilot com código de exemplo

Um truque para colocar 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 GitHub Copilot emular. Fornecer um exemplo pode ajudar GitHub Copilot a gerar sugestões que correspondam à linguagem e às tarefas que pretende emular. Depois de 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" GitHub Copilot. Por exemplo, suponha que 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-GitHub Copilot a começar a sugerir excertos de código que utilizam a versão mais recente da biblioteca. Depois de 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

GitHub Copilot vai agarrar-se 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 GitHub Copilot completações enquanto estás em modo de "hacking". Pode desativar temporariamente as conclusões a partir do menu de estado do GitHub Copilot (acessível na barra de estado do Visual Studio Code).

Tira o máximo proveito do GitHub Copilot Chat

Quando utiliza as funcionalidades de chat da 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 GitHub Copilot, primeiro dê-GitHub Copilot uma descrição geral 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

Use exemplos para ajudar o GitHub Copilot a compreender o que pretende. 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 quiser GitHub Copilot completar uma tarefa complexa ou grande, divida-a em várias tarefas simples e pequenas. Por exemplo, em vez de GitHub Copilot pedir para gerar um passa-palavras, divida o processo em tarefas menores e peça-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 "para que serve isto" quando "isto" pode ser o ficheiro atual, a resposta do último 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 GitHub Copilot Chat no teu IDE, abre o(s) ficheiro(s) ou destaca o código que queres GitHub Copilot referenciar. Use participantes de bate-papo, comandos de barra e variáveis de bate-papo em prompts para definir o contexto. Por exemplo, especifique quais ficheiros 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 @workspace quando fizer perguntas sobre o seu projeto aberto, ou @vscode quando colocar questões sobre funcionalidades e APIs Visual Studio Code.

Os comandos de corte ajudam GitHub Copilot Chat a perceber 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 GitHub Copilot Chat sobre o que está a tentar fazer, ele pode ajustar a resposta à sua tarefa e fornecer comandos, definições e excertos de código úteis.

Os participantes do chat, como @workspace 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 teu código, fornecendo contexto sobre o ficheiro com que estás 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 de 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

GitHub Copilot Chat usa o histórico de chat para obter contexto sobre o seu pedido. Para garantir que GitHub Copilot está a usar 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 estiver a receber as respostas que deseja quando GitHub Copilot pede sugestões, certifique-se de que o seu 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

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 proveito de GitHub Copilot, precisa de seguir as melhores práticas. Ao escolher a ferramenta de GitHub Copilot certa para o trabalho, fornecer contexto e seguir boas práticas de programação, pode otimizar a sua experiência com GitHub Copilot.