Article image
Milton Junior
Milton Junior06/01/2024 23:59
Compartilhe

GitHub Copilot: Será mesmo que pode te ajudar?

  • #Inteligência Artificial (IA)

Escrevi esse artigo principalmente para aqueles que ainda não tiveram o primeiro contato com o GitHub Copilot.

Vamos às definições:

"O GitHub Copilot é uma ferramenta de programação que usa inteligência artificial para ajudar os desenvolvedores a escrever código mais rapidamente e com menos erros. Ele é capaz de fornecer sugestões de código para linhas inteiras ou funções inteiras diretamente dentro do editor. O GitHub Copilot é capaz de fornecer sugestões de código para várias linguagens de programação, incluindo Python, JavaScript, TypeScript, Ruby, Go, Rust e muitas outras. O GitHub Copilot é compatível com diferentes IDEs, como o Visual Studio Code e IntelliJ IDEA ".

Na prática, um autocomplete que julgo ser bastante eficiente, e por esse motivo, trago uma pequena demonstração para um trecho de código sugerida por ele. Veja:

image

Na ocasião, eu tinha a intenção de adicionar uma rotar para excluir uma empresa recém cadastrada (Empresa e "usuário interno do sistema"), note que ele sugeriu a rota e middleware anteriormente utilizada por mim. Também sugeriu uma função de nome "delete" dentro de "controller.FirstConfigurate", porem essa função ainda não existe.

Nada de tão impressionante ate agora, vamos criar a função controller.FirstConfigurate.delete, veja:

image

Vamos analisar cada parte do código que o Copilot sugeriu para esta função.

  • image

Assim como eu estava escrevendo anteriormente, ele sugeriu uma função com async, criou uma constante cnpj que vem do parâmetro da rota, iniciou a transação em transaction e pesquisou o registro da empresa pelo CNPJ. Estou usando o Sequelize nesse projeto. Vamos a próxima parte:

  • image

Aqui, caso não encontre a empresa, ele irá desfazer a transação e sair da rotina. Neste trecho devo algumas explicações. Esta validação, poderia ter sido realizada antes de iniciar a transação, dessa forma, não seria necessário desfazer. Porém, não posso culpar o Copilot, pois, "algumas funções", fiz dessa forma. Podemos notar que a resposta da requisição está usando a função utils.createError, que criei anteriormente a fim de padronizar as respostas. A mensagem está em português, pois essa é a resposta que o usuário final irá visualizar.

  • image

Nessa parte ele localiza o usuário vinculado a empresa. E mas uma vez, desfaz a transação e envia uma mensagem. E você provavelmente, deve estar achando estranho esse relacionamento, mas sem entrar muito no contexto do projeto, posso informar que cada empresa tem um usuário de sistema, que é armazenado pelo aplicativo. Apagando o registro da empresa:

  • image

Agora, o registro da empresa será excluído e caso não seja possível, a transação será desfeita e será retornada uma mensagem "não tratada". Nesse ponto, é necessário nossa intervenção.

  • image

Também exclui o usuário vinculado a empresa. Caso não consiga, desfaz a transação e retorna um erro. Mas se tudo acontecer pelo caminho feliz...

  • image

Ele irá realizar o commit e retornará o código 200 que está definido na função utils.createSuccess.

Depois de usar o Copilot por quase um ano, esta ferramenta ainda me surpreende e me pergunto: Como ele sabia que eu queria fazer isso??? O fato é que não da mais pra ficar sem ele e que este assistente é quase tão bom quanto o programador que o utiliza.

Compartilhe
Comentários (1)

RS

Romullo Silva - 07/01/2024 01:35

top