DEV Community

edersontec
edersontec

Posted on

Reflexões ao usar o GitHub Copilot

Fiz um projeto de API simples para validação de bandeiras de cartão como exercício proposto no 'Bootcamp Microsoft AI for Tech - GitHub Copilot' (feito em Fevereiro de 2025).

O objetivo é criar um validador de bandeiras de cartão de crédito com assistência do GitHub Copilot.

Reflexões

A proposta foi utilizar os recursos do GitHub Copilot para geração de código com pouca intervenção do programador. Em geral ele teve êxito nas tarefas solicitadas, e não obteve êxito em outras (prompts mau formulados contribuíram para isso).

Penso que caberá ao programador "agir como piloto / ser o maestro / saber o que está fazendo / entender os princípios da boa programação", pois será necessário conhecimento para criar o prompt correto, validar o retorno gerado pela IA e fazer as adequações necessárias no código.

Repito: sempre valide o que IA gerar.

Penso que comunidades como Stack Overflow ainda serão de grande importância para questões mais específicas ou quando a IA começar a "viajar na maionese / ter alucinações / reescrever a mesma mais de uma vez"

Processos em que GitHub Copilot agiu "com sucesso":

  • criação da estrutura de pastas recomendada para uma API
  • criação de rotas
  • criação de Controller para validar número do cartão
  • criação de funções regex a partir de documento explicativo
  • criação de um middleware de autenticação usando Bearer tokens
  • criação de estrutura para testes unitários
  • criação de testes unitários básicos

Processos em que GitHub Copilot agiu "com falha inicialmente":

  • criação da lógica de negócio no Controller e não no Model
  • capturar qualquer outra rota no framework Slim que não esteja definida e retornar uma mensagem personalizada em vez de apresentar uma exceção
  • receber dados da API via JSON em vez de formulário (form-data)
  • lógica para buscar variáveis de ambiente (.env)

O que achou desta reflexão? O que concorda e o que discorda?
Deixe seu comentário! Obrigado!

Top comments (0)