Introdução
Desenvolvedores são seres predominantemente imaginativos, pensantes, incansáveis na busca para resolver este ou aquele problema. Indivíduos constantemene bombardeados com ideias muitas vezes mirabolantes e totalmente sem sentido mas que servem de alicerce para construção de soluções robustas.
Entretanto, a maior dificuldade para tirar uma ideia do papel é o tempo. A escasses dele nos empurra para escolhas inapropriadas afetando nossas entregas e criando um débito técnico (sim, ele existe) impagável.
De certa forma porém, o suposto vilão também nos ajuda a ficar nos trilhos porque reduz nossa capacidade de gerar débito técnico.
Com o uso cada vez maior de IA generitivas e agentes de IA essa barreira caiu por terra e até aqueles projetos há meses (quiçá anos) guardados no fundo da gaveta, protegidos por teias de aranha, podem virar um produto ou serviço de verdade.
E poucas coisas dão tanto prazer quanto ver uma ideia se concretizar, não é mesmo?!
Arquitetura
O projeto consiste em um sistema para controle de assinaturas usando o conceito de máquina de estados.
A stack tecnológica é esta:
- Backend: c# / net10
- ORM: Entity Framework Core
- Banco de dados: PostgreSQL
- Autenticação: JWT
- Frontend: ReactJS 19 com Typescript
- Infraestrutura: Docker
O que me motivou a escolher essa stack foi a experiência com C#, especialmente no backend onde as regras de negócio ficam hospedadas.
EF Core veio na esteira o que facilitou o desenvolvimento da aplicação.
PostgreSQL foi a escolha natural para um projeto candidato a MVP. Ele é robusto sem ser pesado, tem boa performance geral e não está preso a nenhum ecossistema.
Autenticação JWT, nem preciso falar muita coisa porque é largamente adotada além de ser uma tecnologia consolidada.
Já no frontend fui compelido a usar a ReactJS com Typescript o que fez todo sentido pra mim por conta da proximidade entre C# e Typescript.
Docker foi a escolha óbvia para agilizar o processo de validação da aplicação, mantendo um ambiente totalmente isolado.
Projeto
A ideia para este projeto é controlar assinaturas, planos, assinantes, troca de planos (de trial para pago por exemplo), etc. Em suma uma Máquina de estados.
A decisão de não integrar com plataformas de pagamento reais foi deliberada, porque o objetivo desta fase é validar o processo em si.
Aprendizado
Não existe sistema sem bug
Uma das verdades universais quando falamos de desenvolvimento de sistemas.
Geralmente nasce daquele código que deveria estar comentado, de variáveis com valor fixo (essa é a melhor...rs) e uma infinidade de coisas que apenas vão se acumulando durante o desenvolvimento e deixamos para ver quando der.
A IA não mudou isso. Apenas acelerou a criação de débito técnico.
Velocidade não é sinônimo de qualidade
O projeto ficou pronto em um curto espaço de tempo, admito. Porém tive o cuidado de verificar tudo o que estava sendo construído.
Nesse momento notei que métodos inteiros eram copiados para uma versão 2 com os ajustes que eu pedia, transformando o antigo em lixo. Ou seja, mais débito técnico.
O lado positivo disso é que nem tudo está perdido. Alguns ajustes no arquivo .md resultou em código mais limpo.
Essa velocidade trouxe um efeito curioso: um programador médio levaria 4 semanas para criar código considerado mediano. Com o advento da IA o mesmo programador médio levaria 4 horas para produzir o mesmo código mediano.
Em outras palavras a velocidade aumentou mas a qualidade do código não.
Quanto mais tempo investimos na fase de planejamento menos tempo gastamos na fase de produção
Pra mim essa é uma das verdades universais no desenvolvimento de sistemas.
Seja chato na análise dos requisitos, faça perguntas mesmo que a resposta lhe pareça óbvia, porque as dúvidas que surgem durante o desenvolvimento são mais relacionadas com regras de negócio do que de lógica ou arquitetura.
Por essa razão decidi colocar mais energia na etapa de planejamento, buscando entender a fundo cada fase do projeto, reduzindo a chance de interrupções e de tabela ganhando velocidade.
Screenshots
Diagrama arquitetural
Crédito: https://github.com/tt-a1i/archify
Planos
Assinantes
Assinaturas
Conclusão
A IA veio para ajudar. Isso é fato.
Trata-se de uma ferramenta valiosa, assim como o Stack Overflow foi. (não estou decretando a morte de ninguém, ok?!..rs)
Então não seja radical se recusando a usá-la ou delegando a ela 100% da tarefa incluindo decisões importantes para o projeto.
E como até o que é óbvio precisa ser dito IA não sabe programar e por isso depende de nós para orientá-la.
Importante
- o projeto atual foi desenvolvido com fins meramente educativos
- o código completo está no meu repositório
Obrigado pela leitura.




Top comments (0)