Aproveitando ao máximo o GitHub Copilot

Dec 01 2022
Os assistentes de codificação AI estão na moda agora. Como você obtém o máximo deles?
Quando o GitHub Copilot foi lançado, eu o experimentei imediatamente. As afirmações pareciam boas demais para ser verdade.

Quando o GitHub Copilot foi lançado, eu o experimentei imediatamente. As afirmações pareciam boas demais para ser verdade.

O que descobri foi o oposto - era melhor do que o anunciado. Fiquei tão impressionado com isso que… nem sequer twittei sobre isso. Eu pensei que era uma vantagem muito grande para dar de graça!

Achei o Copilot tão impactante que, quando tivemos nosso retiro de equipe em 2021, dediquei uma seção inteira sobre minha apresentação de CTO ao Copilot. Usar o Copilot tornou-se tão próximo de “obrigatório” quanto qualquer ferramenta no Infinite Red. Foi uma grande virada de jogo.

O que o Copilot faz pelo meu fluxo de trabalho de codificação

Sou um codificador bastante rápido em circunstâncias normais; O copiloto dobra minha velocidade.

Tenho TDAH leve e uma das minhas maiores lutas é manter o foco. Depois de atingir o “estado de fluxo”, sou imparável. Eu não acho que estou sozinho lutando com isso, mas mesmo que você não o faça, você ainda pode ter momentos em que você meio que “perde o fio da meada” e precisa ser alertado.

Descobri que meu fluxo de codificação ideal sempre envolve emparelhamento. Um bom par me mantém focado, antecipa o que será necessário a seguir, oferece sugestões e é paciente comigo. O copiloto preenche essa função agora, automaticamente. Vou escrever algum código, atingir um certo ponto em que meu cérebro está tentando mudar para algum outro assunto, mas essa pequena pausa é suficiente para o Copilot aparecer com uma sugestão, acionando meu foco novamente.

Limitações do copiloto

Um erro comum é obter resultados ruins do Copilot e culpar a ferramenta. O Copilot não escreve seu código exatamente como você precisa na maioria dos casos. Ele faz o melhor com base no contexto, nas pistas e na quantidade de dados de treinamento aos quais tem acesso. E como qualquer ferramenta, você precisa aprender a usá-la para tirar o máximo proveito dela.

Vamos falar sobre maneiras de obter o máximo do Copilot.

Escrever comentários importantes para o contexto

O contexto é importante, tanto para um programador de pares quanto para um assistente de codificação de IA. Comece escrevendo um comentário claro que dê, em linguagem simples, uma boa ideia de para que serve uma função, quais argumentos ela deve receber, o que ela deve retornar. Se o seu comentário for vago, espere resultados vagos:

Um comentário melhor fornecerá informações melhores ao Copilot:

Não hesite em voltar e ajustar seu comentário até obter os resultados desejados. É claro que você pode editar manualmente o código, mas se ficar bom em escrever comentários descritivos, ele também fará um trabalho melhor com o código futuro.

Nesse caso, adicionar “função digitada” introduziu tipos aos argumentos da função.

Esses comentários não são necessariamente para os leitores humanos do código, embora possam ser lidos como estão. Eu sempre volto e os ajusto para leitores humanos depois que termino.

Aprenda os atalhos de teclado

Se você estiver usando o VS Code, poderá encontrar uma lista de atalhos aqui .

  • Aceite uma sugestão em linha:Tab
  • Dispensar uma sugestão em linha:Esc
  • Mostrar a próxima sugestão inline:Option (⌥)+]
  • Mostrar sugestão inline anterior:Option (⌥)+[
  • Acionar sugestão em linha:Option (⌥)+\
  • Abra o GitHub Copilot:Ctrl+Return

Os que eu mais uso, além de Tab/ Esc, são Option+[e ]. Isso me permite percorrer as sugestões até que eu tenha a mais útil.

Forneça a estrutura do Copilot para trabalhar

Às vezes, o Copilot insere coisas que você realmente deseja extrair em uma função auxiliar. Remova totalmente a função gerada, construa a função auxiliar primeiro, e o Copilot normalmente irá pegá-la e usá-la daqui para frente.

Isso vale para outras coisas, como valores constantes embutidos em código. Adicione variáveis ​​bem nomeadas logo acima do código gerado e o Copilot irá integrá-las.

Copilot pode ajudar com comandos CLI

Se você é como eu e não consegue se lembrar de muitos comandos git, o Copilot pode ajudar com eles também.

Em uma guia vazia, escreva algo assim:

Não é perfeito, mas lhe dará pistas suficientes para chegar perto!

Copilot é ótimo em tarefas repetitivas, como escrever testes

Um dos meus maiores momentos alucinantes no stream foi quando o Copilot escreveu testes precisos para um recurso bastante complexo que eu estava construindo. Dê uma olhada (timestamp 2:23:00):

O copiloto também pode escrever comentários para você!

Embora escrever comentários possa ajudar o Copilot com código, escrever código também pode ajudar o Copilot com comentários!

Se você tiver um código existente e precisar documentá-lo, o Copilot geralmente terá uma ideia do que seja.

O Copilot pode explicar o código para você (via Copilot Labs)

Se você instalar a extensão Copilot Labs, poderá abri-la no painel lateral, destacar um bloco de texto e o Copilot fará o possível para explicá-lo em inglês simples.

Não achei isso tão útil, pois posso ler o código fluentemente, mas pode ser útil se algum código for particularmente enigmático.

Copilot pode ajudá-lo a aprender uma nova linguagem de codificação

Quando eu estava construindo react-native-colo-loco , tive que escrever um script Gradle, que é escrito em Groovy. Eu conheço um pouco de Groovy, mas não muito. Então, concentrei-me em escrever comentários precisos e precisos e deixei o Copilot sugerir linhas de código. Eu poderia então me apoiar em minha experiência de desenvolvimento para aprender padrões e sintaxe e partir daí.

Você pode ver os resultados aqui (deixei quase todos os comentários do líder do Copilot para mostrar o que eram).

Se o código do Copilot estiver errado, continue construindo

O copiloto adora contexto. Quanto mais você constrói, mais contexto ele tem e mais útil ele se torna. Quando decidi reconstruir uma parte do MobX-State-Tree , o Copilot foi incrivelmente útil, porque podia examinar o restante da base de código. (A refatoração nunca foi lançada, mas foi um ótimo exercício de aprendizado.)

Ainda é cedo, mas estou bastante otimista com o GitHub Copilot. Se você tiver outras dicas, deixe-me saber no Twitter !

Reconhecimentos:

  • Obrigado a Rizèl Scarlett por sua palestra sobre o Copilot aqui (vale a pena assistir também!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
  • Obrigado a Marie Prokopets por seu excelente artigo sobre o Copilot (você deveria ler isso também!):https://nira.com/github-copilot/
  • Obrigado a Jenna Fucci pelo incrível gráfico no topo deste artigo!