GitHub Copilot: o que é, como funciona e como usar
Publicados: 2024-04-25A IA generativa está mudando a cara da colaboração criativa, e os assistentes de codificação são alguns dos novos aplicativos mais interessantes. Esses assistentes podem entender seu código, sugerir conclusões, gerar funções inteiras e propor abordagens alternativas. Aqui está uma visão geral de um dos principais assistentes de codificação de IA, GitHub Copilot.
Índice
- O que é GitHub Copilot?
- Como funciona o GitHub Copilot
- Quem criou o GitHub Copilot?
- O GitHub Copilot é gratuito?
- Como usar o GitHub Copilot
- Dicas para maximizar a eficiência
- Prós de usar o GitHub Copilot
- Contras de usar o GitHub Copilot
- Conclusão
O que é GitHub Copilot?
GitHub Copilot é um assistente de codificação de IA, também conhecido como programador de pares de IA. Existem duas maneiras principais de usá-lo: você pode começar a escrever o código e fazer com que o GitHub Copilot o conclua ou pode descrever o que deseja que o código faça usando linguagem natural, e a IA gerará um trecho de código para você.
GitHub Copilot pode escrever código em todas as linguagens que aparecem em repositórios públicos, incluindo JavaScript, TypeScript, Python e Ruby.
Você pode usar GitHub Copilot em seu ambiente de desenvolvimento integrado (IDE) e na linha de comando. Se você tiver uma conta de nível empresarial, também poderá acessá-la em GitHub.com.
Como funciona o GitHub Copilot
As ferramentas de preenchimento automático de código já existem há algum tempo. GitHub Copilot vai além porque pode escrever linhas e funções inteiras e responder às suas perguntas. Aqui está uma visão geral dos mecanismos por trás da plataforma.
Compreender a IA generativa e os grandes modelos de linguagem (LLMs)
GitHub Copilot é baseado em um modelo de linguagem grande (LLM). Os LLMs podem analisar e processar grandes quantidades de informações e gerar novos conteúdos, como código, texto ou imagens.
Durante os estágios iniciais do Copilot, o GitHub experimentou o GPT-3, um LLM feito pela OpenAI. Vejamos como os modelos GPT funcionam em alto nível.
Primeiro, os desenvolvedores inserem grandes quantidades de texto no modelo. O texto pode ser páginas da web, livros, diálogos de filmes ou discussões em fóruns. No caso do GitHub Copilot, os modelos foram alimentados com bilhões de linhas de código-fonte aberto.
Os modelos GPT processam esses dados para identificar padrões entre as palavras e a estrutura da linguagem. Eles usam o contexto para compreender o significado do conteúdo, da mesma forma que usamos pistas de contexto para descobrir o significado de uma nova palavra.
Depois que o modelo desenvolve seu mapa de pistas de contexto e padrões de linguagem, ele pode fazer previsões fundamentadas sobre o que deve acontecer a seguir em uma sequência. Portanto, quando você começa a digitar o código no GitHub Copilot, ele prevê a próxima parte do seu código com base nos dados que aprendeu. Quando você faz uma pergunta ou solicita um novo código do zero, sua resposta é como um palpite altamente fundamentado. Ele prevê cada palavra ou trecho de código, um por um. Para um exemplo básico, quando o GitHub Copilot vê que um desenvolvedor escreveu 'if __name__', ele pode prever com precisão o resto da linha '__main__'.
Após o treinamento inicial, o modelo é ajustado com feedback humano. Os humanos analisam suas respostas e as classificam quanto à precisão, relevância e fatores éticos (como preconceitos e ofensividade). Com o tempo, o modelo aprende quais respostas os humanos preferem.
Evolução dos modelos por trás do GitHub Copilot
Em 2021, GitHub e OpenAI lançaram Codex, uma ramificação específica de codificação do GPT-3. O GitHub refinou e treinou esse modelo para fornecer respostas mais relevantes e desejáveis. Em 2023, o GitHub anunciou que estava usando um modelo mais inteligente e eficiente para o Copilot, embora não fornecesse detalhes sobre o nome ou o treinamento.
Interfaces primárias para usar GitHub Copilot
GitHub Copilot oferece duas interfaces principais para todos os usuários: Copilot Chat e Copilot na CLI.
O Copilot Chat funciona dentro do seu IDE. Atualmente, ele suporta Visual Studio Code, Visual Studio e o conjunto de IDEs JetBrains. Você pode destacar um trecho de código e escrever uma solicitação sobre ele sem sair do editor. Você também pode escrever o início de uma função ou linha de código e o Copilot sugerirá o restante para você. O Copilot Chat também pode explicar trechos de código, recomendar correções de bugs, descrever conceitos de programação e escrever casos de teste.
O Copilot na CLI fornece uma interface de chat dentro do terminal. Este plugin permite que você faça perguntas ou execute prompts sobre a linha de comando, como fornecer uma explicação ou sugestão.
Quem criou o GitHub Copilot?
GitHub Copilot é o resultado de uma colaboração entre GitHub, Microsoft e OpenAI (a empresa que fabrica ChatGPT e DALL-E).
GitHub Copilot foi lançado inicialmente em outubro de 2021 como uma prévia técnica limitada. Em junho de 2022, foi amplamente disponibilizado a todos os desenvolvedores por meio de uma assinatura.
O uso do GitHub Copilot é gratuito?
GitHub Copilot é oferecido em três níveis pagos:
- Copilot Individual para usuários pessoais
- Copilot Business para organizações
- Copilot Enterprise para empresas que usam GitHub Enterprise Cloud, que permite ter várias organizações em uma conta
Todas as assinaturas custam por usuário e por mês, exceto o Copilot Individual, que também oferece uma assinatura anual. Todas as camadas oferecem Copilot Chat, GitHub CLI e a capacidade de conectar-se ao seu editor de código. Algumas diferenças importantes entre os níveis pessoal e empresarial são o acesso a registos de auditoria e o aumento dos controlos de políticas.
Se você quiser experimentar o GitHub Copilot antes de se comprometer a pagar, há uma avaliação única de 30 dias para todos os usuários.
Professores, alunos e mantenedores de projetos populares de código aberto podem usar o GitHub Copilot gratuitamente.
Dicas e truques para usar o GitHub Copilot
GitHub Copilot é impressionante em compreender a linguagem natural e antecipar suas necessidades. Mas você ainda precisa conhecer algumas dicas e truques para obter resultados relevantes e de alta qualidade de forma consistente. Vamos revisar algumas práticas recomendadas que aumentam suas chances de obter as respostas desejadas.
Escreva prompts detalhados
Para gerar respostas eficazes, o GitHub Copilot precisa de prompts detalhados e precisos. Para fazer isso, você precisa incluir as informações corretas em suas solicitações. Por exemplo, se quiser escrever um código para desenhar uma casa, você precisa detalhar a cor da casa, o número de andares e o ângulo de onde deseja visualizá-la.
Forneça exemplos
Se você fornecer exemplos de código ao GitHub Copilot, terá mais chances de obter o resultado desejado. Esta é uma maneira simples de adicionar contexto ao seu prompt sem precisar explicar o que você está imaginando. Com um exemplo, há menos espaço para interpretações erradas.
Mantenha convenções de nomenclatura consistentes
Use nomes específicos relacionados à finalidade de cada variável ou função para ajudar GitHub Copilot a entender o contexto. Essa prática também ajuda a manter a saída do GitHub Copilot organizada porque replica as convenções de nomenclatura que você usa em seu código.
Divida as coisas em etapas simples
GitHub Copilot funciona melhor ao escrever trechos de código mais curtos. Divida suas tarefas em etapas simples para obter os melhores resultados. Por exemplo, se você quiser escrever uma função, explique claramente cada etapa que o GitHub precisa seguir. Permita que ele gere o trecho de código para cada etapa, um por um.
Revise as respostas do GitHub Copilot
Embora o GitHub Copilot seja proficiente na geração de código utilizável, ele ainda precisa de supervisão humana. Verifique cada resposta para ter certeza de que ela é precisa, atende às práticas recomendadas de codificação, segue suas políticas e não contém vulnerabilidades de segurança.
Abra guias relevantes
Ao manter abertas algumas outras guias relacionadas ao seu projeto, você pode trabalhar com mais eficiência e aumentar as chances de obter melhores respostas. GitHub Copilot usa uma técnica chamada abas vizinhas para obter mais contexto sobre suas solicitações. Ele verifica outras guias abertas em seu IDE para encontrar trechos de código correspondentes e incluí-los em suas respostas.
Maneiras de maximizar a eficiência do desenvolvimento com GitHub Copilot
GitHub Copilot pode agilizar seus processos de várias maneiras, desde a geração de novo código até a escrita de documentação. Aqui estão alguns dos aplicativos mais populares para este programador de pares de IA.
Gerar novo código
GitHub Copilot pode criar código do zero. Você pode criar novas funções, classes e outras estruturas de código escrevendo uma descrição detalhada do seu objetivo. Escrever do zero com GitHub Copilot é melhor para elaborar padrões e código básico.
Sugestões de código e preenchimento automático
À medida que você escreve o código, GitHub Copilot pode fazer sugestões com base no contexto do arquivo que você está editando. Às vezes, ele fornece várias sugestões, que você pode alternar para encontrar a que mais lhe agrada. Você também pode combinar o código de mais de uma sugestão. Se você não gostar do primeiro lote de recomendações gerado pelo GitHub Copilot, poderá solicitar mais.
Depuração eficiente e correção de erros
Você pode pedir ao GitHub Copilot para recomendar estratégias e soluções para corrigir erros de código. No seu IDE, descreva o erro no Copilot Chat e peça uma solução. Se estiver usando a CLI, você poderá usar /fix para gerar possíveis correções. GitHub Copilot considera o código de erro, o código circundante e a sintaxe do código para gerar possíveis soluções.
Além disso, se um comando não for executado no terminal de comando, GitHub Copilot sugerirá possíveis razões pelas quais o código falhou e oferecerá possíveis soluções.
Automatizando a escrita de casos de teste
Quando você quiser verificar se seu código funcionará conforme planejado, GitHub Copilot pode ajudá-lo a escrever casos de teste de unidade. Você pode selecionar um bloco de código e pedir ao GitHub Copilot para criar um teste de unidade ou descrever o que você gostaria de testar.
Discussões interativas sobre código
Você pode interagir com GitHub Copilot usando linguagem natural para fazer perguntas e obter orientação sobre desafios de codificação. Em vez de pesquisar em fóruns ou vasculhar a documentação, você pode obter respostas para suas perguntas sobre codificação diretamente em seu editor.
Tente perguntar ao GitHub Copilot o seguinte:
- Como configurar um novo projeto em uma linguagem de codificação específica
- Os prós e contras de várias arquiteturas de software
- Explique o que um trecho de código faz
- Forneça as regras de sintaxe associadas a um idioma específico
- Fale sobre um problema de codificação, como por que o código não está funcionando conforme o esperado
Simplificando a documentação
GitHub Copilot pode escrever documentação para seu código. Comece a escrever sua documentação e ela será preenchida automaticamente para você. Assim como acontece com os preenchimentos automáticos de codificação, você pode percorrer as sugestões para encontrar aquela que se adapta ao seu código. Em seguida, você pode selecionar o texto correto e fazer edições para que a documentação fique completa e precisa. Também pode sugerir subseções como Testes, Uso e Diretrizes para Colaboradores.
Otimização e refatoração de código
Você pode usar GitHub Copilot para tornar seu código mais eficiente, legível ou de fácil manutenção. Destaque um bloco de código e solicite a otimização. Com esse recurso, GitHub Copilot pode ajudá-lo a simplificar coisas como reorganizar blocos de código, renomear variáveis e tornar o código mais conciso.
Prós de usar o GitHub Copilot
Usar o GitHub Copilot ajuda você a trabalhar com mais eficiência e pode fazer parte do seu kit de ferramentas educacionais de codificação. Você também pode se beneficiar compartilhando insights com a enorme comunidade do GitHub.
Vamos dar uma olhada mais de perto nas vantagens de usar o GitHub Copilot.
Eficiência de codificação simplificada
A IA generativa oferece aos desenvolvedores um grande aumento de produtividade. De acordo com um estudo, os programadores de pares de IA podem reduzir o tempo de geração de código em 35-45%. GitHub Copilot acelera os processos de codificação automatizando tarefas manuais e repetitivas. Isso permite que você gaste mais tempo em atividades de codificação mais complexas.
Aqui estão algumas maneiras pelas quais você pode economizar tempo:
- Reduz a necessidade de digitar trechos de código repetitivos ou procurar sintaxe específica
- Automatiza a documentação
- Oferece respostas para questões de codificação sem exigir que você saia do editor
- Escreve código padrão para tarefas comuns, como configuração de funções, classes ou tratamento de erros
- Economiza tempo gasto na procura de código desatualizado e ineficiente e na descoberta de maneiras de melhorá-lo
- Fornece sugestões de código para ajudá-lo a iniciar seu projeto
Recursos educacionais para aprendizagem contínua
GitHub Copilot pode ajudar programadores iniciantes e experientes a aprimorar suas habilidades. Quando usado junto com outros recursos educacionais de codificação, pode ajudá-lo a aprender os fundamentos.
Veja como:
- Conceitos e terminologia de codificação de pesquisa
- Obtenha sugestões sobre maneiras de melhorar o código
- Incentive o uso das melhores práticas de codificação
- Obtenha exposição à sintaxe correta e à estrutura de arquivos, o que ajuda a reconhecer os padrões subjacentes por trás dessas práticas
- Explore múltiplas abordagens para resolver problemas de codificação
- Faça perguntas sobre trechos de código para aprofundar sua compreensão do que eles significam ou por que estão ali
Envolvimento da comunidade
A experimentação e a exploração são essenciais para o uso bem-sucedido de plataformas generativas de IA. Como o GitHub tem uma comunidade grande, ativa e global, é provável que você encontre outros usuários do Copilot com quem tenha algo em comum. A comunidade permite que os usuários aprendam uns com os outros, compartilhem dicas e discutam as atualizações mais recentes. Você encontrará informações úteis e relevantes em fóruns, mídias sociais, podcasts e YouTube.
Ter uma grande base de usuários também contribui para melhorar o GitHub Copilot. Os usuários fornecem feedback, ajudam a treinar o modelo, criam casos de uso inovadores e encontram novas maneiras de combinar o GitHub Copilot com outros plug-ins e extensões.
Contras de usar o GitHub Copilot
Como toda tecnologia, o GitHub Copilot tem desvantagens potenciais. Pode ser impreciso ou gerar resultados inconsistentes com base na sua linguagem de programação. Existem também preocupações éticas sobre a sua formação e respostas.
Lembre-se dessas possíveis armadilhas ao usar o GitHub Copilot.
Respostas imprecisas ou problemáticas
Como o GitHub Copilot foi treinado em código disponível publicamente, ele pode refletir algumas das falhas em sua base de conhecimento. Por exemplo, suas respostas podem conter bugs, fazer referência a APIs desatualizadas ou conter vulnerabilidades de segurança. Também pode vazar código privado (como chaves de API).
Além disso, a IA generativa sempre corre o risco de produzir respostas ofensivas ou tendenciosas. Embora o GitHub tenha implementado proteções contra solicitações e respostas ofensivas, elas não são infalíveis.
Em última análise, você é responsável por verificar a precisão, eficácia e segurança do código. GitHub fornece vários recursos para ajudá-lo a avaliar o código, como GitHub Actions, Dependabot, CodeQL e verificação de código.
Proficiência em linguagem de programação
GitHub Copilot é tecnicamente proficiente em todas as linguagens de programação disponíveis publicamente. No entanto, a qualidade das suas respostas é melhor para alguns do que para outros.
Aqui estão as linguagens nas quais ele tem mais habilidade, de acordo com o Github:
- Pitão
- JavaScript
- Texto datilografado
- Rubi
- Ir
- C#
- C++
Essas linguagens tendem a ser as mais populares em repositórios públicos, por isso o GitHub Copilot tem melhor desempenho com elas. Se você usar uma linguagem que não é tão comumente discutida em fóruns públicos, é mais provável que você obtenha imprecisões e menos respostas.
Preocupações éticas
Como acontece com toda IA, existem preocupações éticas sobre o uso de código público pelo GitHub Copilot e a capacidade de proteger seus resultados com direitos autorais. Os desenvolvedores do GitHub Copilot dizem que o uso de dados públicos para treinamento está sob a proteção do uso justo.
Os detratores dizem que os dados de treinamento do GitHub são, na verdade, cobertos por licenças copyleft ou software livre e de código aberto (FOSS), que exigem que você siga diretrizes específicas para atribuição. Com licenças copyleft, os autores podem ditar como seu trabalho será usado. Alguns especialistas dizem que o GitHub viola esses princípios. Outros dizem que o GitHub Copilot não está fazendo nada ilegal, mas precisamos ter uma conversa mais ampla sobre IA e seu uso de dados de código aberto.
Em última análise, os reguladores e os tribunais decidirão. Este não é um motivo para evitar o uso do GitHub Copilot, mas é algo que você deve estar ciente. Se você usa GitHub Copilot extensivamente para projetos comerciais, talvez queira discutir sua exposição a riscos legais com um especialista.
O que vem por aí para GitHub Copilot e outros assistentes de codificação de IA?
GitHub Copilot pode ajudá-lo a codificar com mais rapidez, incentivar o uso de práticas recomendadas de programação e expandir seu conhecimento de codificação. Seus amplos recursos, desde sugerir a próxima linha de código até escrever casos de teste, simplificam muitos dos aspectos mais manuais e tediosos da codificação. Todos, desde desenvolvedores novos até desenvolvedores experientes, podem aproveitar as vantagens dos recursos do GitHub Copilot e aprender com sua grande comunidade de usuários.
Ainda assim, não substitui o conhecimento humano. Você deve revisar suas respostas para garantir que sejam precisas e seguras. Você também pode preferir usá-lo para algumas linguagens de programação em detrimento de outras, pois seus resultados podem variar.
Então, o que vem por aí para o GitHub Copilot e outras plataformas generativas de IA? A IA generativa está avançando na velocidade da luz, e manter-se atualizado sobre as ferramentas, aplicativos e regulamentações mais recentes é a melhor maneira de se preparar para o futuro.