Crie prompts eficazes para o GitHub Copilot

Concluído

Um prompt é uma instrução de linguagem natural que diz ao GitHub Copilot o que você quer que ele faça. Os prompts podem ser usados para fazer perguntas, comunicar solicitações ou descrever tarefas.

Por exemplo, os prompts a seguir representam uma pergunta, uma solicitação e uma descrição de tarefa.

Question: How do I create a button that submits a form?

Request: Add a button that opens a modal dialog. The button should be blue with rounded corners.

Task: Build a product page that displays a product title, product image, product description, and price. Product information should be fetched from the attached ProductsList.json file. The price should be formatted as currency. The page should also include a button to add the product to the cart.

A qualidade do seu prompt afeta diretamente a qualidade da resposta do GitHub Copilot.

O que faz uma boa instrução?

Criar prompts de alta qualidade é essencial para obter o máximo valor do GitHub Copilot. As estratégias a seguir ajudarão você a criar prompts que geram respostas mais precisas, relevantes e úteis.

Comece geral e, em seguida, obtenha específico

Ao escrever um prompt para o Copilot, comece com uma descrição ampla do seu objetivo ou cenário e, em seguida, forneça requisitos específicos. Essa abordagem fornece ao Copilot o contexto necessário, garantindo que suas necessidades detalhadas sejam atendidas.

Example:

Write a function that tells me if a number is prime.

The function should take an integer and return true if the integer is prime.

The function should error if the input is not a positive integer.

Forneça exemplos concretos

Os exemplos são uma das formas mais eficazes de comunicar a sua intenção ao Copilot. Você pode fornecer dados de entrada de exemplo, saídas esperadas e até mesmo implementações de exemplo para orientar o entendimento da IA.

Example:

Write a function that finds all dates in a string and returns them in an array. Dates can be formatted like:

- 05/02/24
- 05/02/2024
- 5/2/24
- 5/2/2024
- 05-02-24
- 05-02-2024
- 5-2-24
- 5-2-2024

Example usage:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")

Expected return: ["11/14/2023", "12-1-23"]

Divida tarefas complexas em etapas mais simples

Ao enfrentar uma tarefa complexa ou grande, decomponha-a em componentes menores e gerenciáveis. Essa abordagem leva a melhores resultados e torna mais fácil depurar e refinar peças individuais.

Exemplo: Em vez de pedir ao Copilot para gerar um quebra-cabeça completo de pesquisa de palavras, divida-o:

  1. Write a function to generate a 10 by 10 grid of letters
  2. Write a function to find all words in a grid of letters, given a list of valid words
  3. Write a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 words
  4. Update the previous function to print the grid and 10 random words from the grid

Elimine a ambiguidade

Evite referências vagas e termos ambíguos que possam ser interpretados de várias maneiras. Seja explícito sobre o que você está se referindo e o que você quer que o Copilot faça.

Maus exemplos:

  • "O que isso faz?" (não está claro a que "isto" se refere).
  • "Fix the bug" (não especifica qual bug ou como corrigi-lo).

Melhores exemplos:

  • "O que faz a função createUser?"
  • "O que faz o código na sua última resposta?"
  • "Corrija o erro de validação no campo de entrada de e-mail."

Considerações da biblioteca:

  • Se estiver usando uma biblioteca incomum, descreva sua finalidade.
  • Para bibliotecas específicas, inclua instruções de importação ou especifique qual biblioteca você deseja usar.

Fornecer contexto relevante

Ajude o Copilot a entender a estrutura e as intenções do seu projeto gerenciando seu ambiente de desenvolvimento de forma eficaz.

No seu IDE:

  • Abra ficheiros relevantes e feche ficheiros não relacionados.
  • Realce seções de código específicas que você deseja que o Copilot faça referência.
  • Use participantes de bate-papo como @workspace no Visual Studio Code ou @project em IDEs JetBrains.

No bate-papo do Copilot:

  • Faça referência a arquivos específicos ou blocos de código.
  • Anexar documentação ou especificações relevantes.
  • Use caminhos de arquivo claros e nomes de funções.

Iterar e refinar

Não espere resultados perfeitos na primeira tentativa. O copiloto funciona melhor quando você se envolve em uma conversa iterativa, refinando suas solicitações com base nas respostas recebidas.

Estratégias para iteração:

  • Se estiver usando sugestões embutidas, exclua e tente novamente com um prompt modificado.
  • No Copilot Chat, faça referência a respostas anteriores e peça modificações específicas.
  • Construa sobre soluções parciais, pedindo melhorias incrementais.

Mantenha um histórico de conversas relevante

O Copilot Chat usa o histórico de conversas para entender o contexto, portanto, gerencie esse histórico estrategicamente.

Melhores práticas:

  • Inicie novos threads para diferentes tarefas ou projetos.
  • Exclua solicitações irrelevantes ou malsucedidas que possam confundir respostas futuras.
  • Mantenha as conversas focadas nas funcionalidades relacionadas.

Siga as boas práticas de codificação

A qualidade da sua base de código existente afeta a capacidade do Copilot de gerar sugestões apropriadas. Mantenha altos padrões em seu código para obter melhor assistência de IA.

Fatores de qualidade do código:

  • Use estilos e padrões de código consistentes.
  • Escolha nomes descritivos para variáveis e funções.
  • Adicione comentários significativos para explicar a lógica complexa.
  • Estruture o código em componentes modulares e com escopo adequado.
  • Inclua testes de unidade abrangentes.

Note

Você pode pedir ao Copilot para ajudar a melhorar a qualidade do seu código solicitando comentários, sugestões de refatoração, ou dividindo funções grandes em partes menores e mais fáceis de gerir.

Bons prompts são:

  • Claro: Descreva exatamente o que você quer.
  • Específico: inclua detalhes de layout, comportamento ou estilo.
  • Contextual: Referenciar código ou estrutura existente.

Iteração sobre indicações

Se a resposta inicial do GitHub Copilot não estiver alinhada com as suas expectativas, pode ser necessário ajustar no seu prompt. Considere estas estratégias:

  • Edite o prompt para ser mais específico.
  • Adicione contexto ao chat que esclareça seus objetivos ou requisitos.
  • Use o Copilot Chat para fazer perguntas de acompanhamento baseadas em respostas anteriores.

Avaliar e responder às sugestões do Copilot

Entender como avaliar as sugestões do Copilot é crucial para uma vibe coding eficaz. Nem todas as sugestões serão perfeitas, e saber quando aceitar, rejeitar ou modificar respostas melhorará significativamente sua experiência de desenvolvimento.

Quando aceitar sugestões

Aceite as sugestões do Copilot quando:

  • Atenda às suas necessidades: O código faz exatamente o que você pediu.
  • Siga as práticas recomendadas: usa padrões, convenções de nomenclatura e estrutura apropriados.
  • São bem estruturados: o código é legível, sustentável e formatado corretamente.
  • Inclua o tratamento adequado de erros: casos extremos e potenciais falhas são abordados.
  • Corresponda ao estilo do seu projeto: Consistente com padrões e convenções de base de código existentes.

Exemplo de uma boa sugestão a aceitar:

Prompt: "Criar uma função para validar endereços de e-mail"

O Copilot sugere:

function validateEmail(email) {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (typeof email !== 'string') {
        throw new Error('Email must be a string');
    }
    return emailRegex.test(email.toLowerCase());
}

Esta sugestão deve ser aceite porque inclui validação de entrada, tratamento de erros e utiliza um padrão regex razoável.

Quando rejeitar sugestões

Rejeitar as sugestões do Copilot quando:

  • Não responda ao seu prompt: o código resolve um problema diferente do solicitado.
  • Conter vulnerabilidades de segurança: Use práticas não seguras ou exponha dados sensíveis.
  • São excessivamente complexas: tarefas simples implementadas com complexidade desnecessária.
  • Use métodos obsoletos: confie em APIs desatualizadas ou obsoletas.
  • Falta de tratamento de erros: não leve em conta possíveis cenários de falha.
  • Viole os padrões de codificação: não siga as práticas estabelecidas pela sua equipe.

Exemplo de uma sugestão a rejeitar:

Prompt: "Criar uma função de validação de senha segura"

Fraca sugestão:

function validatePassword(password) {
    return password.length > 6;
}

Isso deve ser rejeitado porque é muito simplista para os requisitos de segurança e não valida a força da senha corretamente.

Quando modificar sugestões

Modificar as sugestões do Copilot quando:

  • Estão corretas, mas precisam de ajustes: a lógica central é sólida, mas os detalhes precisam de ajustes.
  • Precisa de recursos adicionais: A funcionalidade básica é boa, mas requer aprimoramentos.
  • Ter pequenos problemas de estilo: o código funciona, mas não corresponde às suas preferências de formatação.
  • Exigir nomes de variáveis diferentes: a lógica está correta, mas a nomenclatura pode ser melhorada.
  • Precisa de otimizações de desempenho: Funcional, mas poderia ser mais eficiente.

Exemplo de sugestão de modificação:

O Copilot sugere:

function calculateTotal(items) {
    let total = 0;
    for (let i = 0; i < items.length; i++) {
        total += items[i].price;
    }
    return total;
}

Sua modificação para melhor legibilidade e JavaScript moderno:

function calculateTotal(items) {
    return items.reduce((total, item) => total + item.price, 0);
}

Estratégias para melhorar as sugestões

Quando uma sugestão não estiver correta, tente estas abordagens:

Refine seu prompt:

  • Adicione requisitos mais específicos.
  • Inclua exemplos de entradas/saídas esperadas.
  • Especifique o estilo de programação ou a estrutura que você está usando.

Solicitar modificações:

  • "Torne a função anterior mais robusta com o tratamento de erros."
  • "Simplifique o código que você acabou de escrever."
  • "Adicione tipos TypeScript à função anterior."

Crie incrementalmente:

  • Comece com uma versão básica e peça melhorias.
  • Adicione recursos um de cada vez, em vez de solicitar tudo de uma vez.
  • Teste cada iteração antes de passar para o próximo aprimoramento.

Tip

Ao modificar sugestões, mantenha as partes que funcionam bem e seja específico sobre o que precisa mudar. Isso ajuda o Copilot a entender suas preferências e fornecer melhores sugestões futuras.

Summary

Criar prompts eficazes para o GitHub Copilot é essencial para maximizar seu potencial na codificação vibe. Começando com descrições gerais, fornecendo exemplos concretos, detalhando tarefas complexas e mantendo uma comunicação clara, você pode orientar o Copilot para gerar código de alta qualidade que atenda às suas necessidades. Iterar em prompts e entender como avaliar sugestões melhorará ainda mais sua experiência de desenvolvimento, permitindo que você aproveite a assistência de IA de forma eficaz, mantendo o controle sobre o processo de codificação.