Usei a IDE Cursor AI para desenvolver um microsserviço do zero!

Contexto

Recentemente, na empresa que trabalho, puxei uma tarefa que seria desenvolver um novo produto para o nosso SaaS. Será praticamente um microserviço novo, que seria desenvolvido do zero.

A direção da empresa está focada no desenvolvedor empoderado por IA, incentivando o uso e descobrimento de ferramentas, então me surgiu a ideia de desenvolver todo o novo projeto usando a IDE Cursor AI (No plano Free).

Objetivo

  1. Não escrever uma linha de código sequer.

Considerações

  1. Escolhi a liguagem Python, pois já tenho familiaridade com a mesma, assim ficaria mais fácil fazer o code review em tempo real;
  2. A IDE é basicamente uma cópia do VS Code, então para quem tá acostumado com ela é bom, pra mim que uso mais as IDEs da JetBrains, tem uma curva de adaptação (visualmente falando);
  3. O microserviço ferramentas da AWS ( Elastic Container Service, EventBridge, S3, Dynamo), então a IA deveria me ajudar na orquestração da arquitetura também.
  4. Usei o modelo 03-mini, e um pouco do claude-3.5-sonnet
  5. Basicamente usei o Composer da IDE em todo o desenvolvimento, então quando eu escrever "chat" é a aba do Composer e não do "chat" mesmo.
  6. Achei bem chatinho "instalar" a IDE no Linux.

Como foi a experiência?

Comecei dando um contexto pro chat de o que o código deveria fazer, e gradativamente fui dando detalhes específicos da implementação. Então no início pude ver o código sendo gerado bem simples e crescendo cada vez com mais detalhes e mais próximo do resultado. Como o código faz uma iteração por APIs de bancos, tive de solicitar especificamente que ele gerasse uma camada de abstração para a comunicação, pois no início, o chat estava querendo colocar tudo num mesmo arquivo. Nessa parte vi grande vantagem do uso do Cursor, pois ele cria os arquivos automaticamente, cria as pastas, então diferente de um Copilot (ou um copia e cola de qualquer outra AI) não é necessário ter o arquivo, a IDE cria tudo pra você. Nos primeiros dias avancei muito, o modelo 03-mini gerou muito código, e eu apenas aceitava o código e testava, claro que nem sempre foi acertado de primeira, mas com certeza a velocidade de entrega do mesmo projeto, sendo codificado inteiro por mim seria muito menor.

perdi um dia inteiro Porém chegou num dia que o código não saiu do lugar, fiquei horas travado, e como o proposto foi não tocar no código, eu tentei apenas resolver usando o chat, horas depois que percebi que a IDE tinha criado uma pasta nova e arquivos novos (que não estavam sendo chamados no código) e então as alterações não surtiam efeito por causa disso. Mesmo deletando a pasta, a IDE criava ela denovo e colocava as alterações ali, me pareceu ser um bug da IDE mesmo. Por fim troquei de modelo, para o da Claude e voltou a fluir novamente.

perdi mais agumas horas hoje Hoje novamente patinei por horas num mesmo erro, e mesmo alterando pra lá e pra cá, o mesmo erro ocorria ao rodar o container em produção. Então depois de diversas tentativas o chat me falou uma possível causa desse erro e como consertar. Mas teoricamente ele mesmo já deveria saber e ter resolvido, pois ele já tinha essas informações. Mas também pode ter se perdido ao trocar de modelo.

Considerações finais

  • Hoje concluí o projeto, nem mesmo o README eu escrevi, solicitei pra IDE escrever todo o arquivo, e explicar que o projeto foi todo desenvolvido através do Cursor AI. Ela também descreveu toda e estrutura e como rodar localmente.
  • Foi bom ter escolhido uma linguagem que já conheço, facilita a revisão.
  • Algumas vezes a IDE se perde e não coloca as alterações no arquivo, então você é obrigado a falar no chat: "Implemente as alterações no arquivo", isso é um pouco chato.
  • A integração com a IDE se perdeu por completo algumas vezes.
  • Foi uma experiência muito boa, de criar um código sem escrver código.
  • A sensação é de você estar dando instruções para outro DEV codar, se você pedir besteira, ou não for claro e específico, ele vai se perder.
  • Mas as vezes mesmo você sendo específico ele se perde!
  • Como foi um projeto do ZERO, não tinha código legado, próxima experiência quero abrir algum repositório legado gigante pra ver se o Cursor dá jeito de trabalhar.

Meus 2 cents:

Achei bem interessante a ideia, parabens pelo esforco. Caso nao entre em algum segredo interno - seria interessante se voce puder compartilhar alguns dos prompts usados para criar o projeto (p.ex. os 3 ou 4 prompts iniciais e alguns intermediario/final) para ver como foi a caminhada.

Obrigado. Realmente eu queria dar mais detalhes e explicar 100% o serviço, mas como é um produto novo e estratégico da empresa, eu não estou autorizado a compartilhar. Pois os prompts basicamente seriam o esqueleto/projeto dessa aplicação :(
Meus 2 cents expandidos: Sem problema - entendo a questao que voce coloca (ser um produto interno). Era mais para comparar com outros prompts que estao usando para processos deste tipo - para entender se tem algum padrao que funcione melhor.
Eu tinha duas ideias: 1- Escrever um prompt gigante, detalhando tudo, cada especificação, cada regra de negócio, o resultado esperado complet. Ou seja, num prompt eu teria como resultado o projeto todo pronto. 2- O método que escolhi: Fazer por etapas, explicando o conceito geral, e ir esmiuçando os detalhes. Não sei qual é o melhor, mas para sentir a experiência resolvi fazer em etapas. Para ver o código evoluindo.

Belo compartilhamento de um feedback massa com a IA + DEV, top demais!