KnightX — logotipo oficialKnightX
Voltar para o inícioKnightX Blog

A era do “dev de framework” está acabando

AI

A era do “dev de framework” está acabando — e isso não é um drama, é um filtro

Imagina a cena: você abre o Cursor/Claude/ChatGPT, descreve um produto, e em 30 minutos tem 40 telas, tabela, filtro, modal, login fake e um dashboard “bonito”. Você mostra pra alguém e ouve: “caramba, ficou pronto”.

Aí você tenta colocar em produção.

  • Como versiona o schema do banco?
  • Como garante consistência entre “Pedido”, “Estoque” e “Pagamento”?
  • Onde fica a regra de negócio?
  • Como lida com concorrência, idempotência, retry, observabilidade?
  • Como segura permissão, auditoria, LGPD, custos, performance?

E de repente você descobre: a UI era a parte fácil.

O texto que você trouxe é sobre isso: a IA acelerou o “como codar”, então o mercado começa a pagar mais pelo “o que construir” e “como sustentar”.


O problema técnico (sem código): software não é tela, é sistema

Framework é ferramenta de entrega. Mas empresa não compra “telas” — compra:

  • fluxo operacional que não quebra
  • dados confiáveis
  • regras consistentes
  • capacidade de evoluir sem reescrever tudo
  • previsibilidade (custo, risco, prazo)

Quando alguém “gera” uma aplicação com IA sem visão arquitetural, costuma acontecer o mesmo padrão:

  1. Tudo vira UI + fetch
  2. Regra de negócio fica espalhada (front, backend, banco, “um if ali”)
  3. Cada ajuste vira efeito colateral
  4. Produção vira “mão no coração”

A IA não falha por gerar código. Ela falha porque não toma responsabilidade pela arquitetura do produto. Quem toma é você.


A pirâmide do conhecimento: o que te mantém relevante

O ponto do livro (“Fundamentos de Arquitetura de Software”) é muito bom porque separa maturidade em camadas:

1) O que você conhece (profundidade)

React, Spring, Nextjs, Nestjs, Angular etc.

Isso ainda importa, mas vira commodity quando a IA escreve 80% do boilerplate.

2) O que você sabe que não conhece (amplitude consciente)

Você não precisa dominar Kafka, mas precisa entender:

  • quando mensageria faz sentido
  • que Saga existe e por quê
  • que SQL vs NoSQL não é “gosto”, é trade-off
  • que consistência, latência, custo e operação entram na conta

Essa camada é o que te dá poder de escolha.

3) O que você nem sabe que não conhece (zona cega)

É onde mora o perigo: decisões erradas que você nem percebe que são erradas.

O diferencial real é a soma: profundidade + amplitude.

Sem amplitude, você vira “especialista local”: muito forte num quadrado, fraco no tabuleiro.


Aprofundamento técnico: “visão arquitetural” na prática (sem misticismo)

Quando o texto fala “visão arquitetural”, ele não está dizendo “seja um arquiteto que não programa”. Ele está falando de capacidade de transformar requisito em sistema com limites claros.

O que um dev com visão arquitetural faz diferente

1) Ele começa pelo domínio

  • Que problema de negócio é esse?
  • Quais são os termos do cliente? (Pedido, convênio, estoque, conciliação, reembolso…)
  • Onde estão as fronteiras naturais?

2) Ele desenha limites (Boundaries)

  • O que é “Catálogo” e o que é “Venda”?
  • O que é “Financeiro” e o que é “Entrega”?
  • Onde a regra vive? Quem manda em quê?

3) Ele escolhe padrões por necessidade, não por moda

  • CQRS se você tem leitura absurda e escrita com regras fortes
  • Event-driven se você precisa desacoplar e tolerar latência
  • Monólito modular se você precisa evoluir rápido sem virar microserviço precoce

4) Ele pensa no operacional

  • logs, métricas, tracing
  • idempotência
  • retry e dead-letter
  • migração de schema
  • rate limit e caching
  • segurança e auditoria

É isso que transforma “app que roda” em app que aguenta empresa.


Exemplo prático realista: ERP modular para rede de farmácias (o cenário do texto)

Vamos usar o próprio exemplo: um ERP modular para farmácias.

O “dev de framework” tende a montar assim:

  • Um projeto com “/pages”
  • CRUD de Produto, Cliente, Pedido
  • Tudo chama o mesmo backend
  • Regras viram “if” em controller
  • Banco vira “verdade absoluta” com triggers, ou então vira bagunça

Funciona… até o primeiro caso real:

  • estoque negativo
  • duas vendas simultâneas
  • devolução parcial
  • convênio com regras por filial
  • conciliação financeira e estorno

O dev com visão arquitetural desenha primeiro:

Módulos (exemplo):

  • Catálogo (produto, preço, promoções)
  • Estoque (saldo, movimentações, reservas)
  • Vendas (pedido, itens, descontos, regras)
  • Financeiro (recebíveis, conciliação, estorno)
  • Clientes/Convênios (benefícios, regras, elegibilidade)

E define regras-chave:

  • Vendas não atualiza estoque direto → solicita reserva (ou baixa) ao módulo de estoque
  • Estoque garante invariantes: “saldo não pode ficar negativo sem permissão”
  • Financeiro trabalha com idempotência e eventos (pago, estornado, conciliado)

A IA pode gerar tela e endpoint, mas quem define o contrato entre módulos e as invariantes é você. E isso é a parte que paga caro.


Por que paradigmas (POO / Funcional) ficaram ainda mais importantes

Aqui o texto acerta em cheio: IA torna fácil “escrever código”, então o que importa é modelar bem.

  • POO bem usada ajuda a organizar invariantes, encapsular regra, evitar espalhar lógica
  • Funcional bem usada ajuda a previsibilidade, composição, testabilidade, menos efeito colateral

Quando você entende paradigmas, você aprende frameworks rápido porque percebe:

  • “ah, isso aqui é composição”
  • “isso é injeção de dependência”
  • “isso é boundary”
  • “isso é um pipeline de transformação”
  • “isso é separação de leitura e escrita”

O exemplo do MVC é perfeito: muita gente usa MVC, mas não sabe explicar o “porquê” — e aí não sabe sair dele quando precisa.


Erros comuns e armadilhas (que a IA piora se você não tiver base)

  1. Confundir velocidade de protótipo com entrega de produção
  2. Colocar regra de negócio na UI porque “foi mais rápido”
  3. Microserviço como primeira escolha (complexidade operacional explode)
  4. Banco como camada de regra (triggers, procedures sem governança)
  5. Sem contratos claros: tudo depende de tudo
  6. Sem observabilidade: em produção você fica cego
  7. Sem idempotência: qualquer retry vira duplicidade (pagamento, pedido, etc.)

Boas práticas e recomendações (o caminho “2025–2026” do texto)

Se você quiser transformar esse texto em ação, a trilha é:

1) Treinar “system design de verdade”

  • desenhar componentes e responsabilidades
  • identificar gargalos e riscos
  • decidir trade-offs conscientemente

2) Estudar domínio e modularização

  • DDD (principalmente bounded context e linguagem ubíqua)
  • monólito modular antes de microserviços, na maioria dos casos

3) Padrões que pagam boleto

  • consistência / transações / concorrência
  • mensageria e entrega confiável
  • idempotência
  • caching e invalidation
  • observabilidade (logs/métricas/traces)

4) IA como acelerador, não como muleta

Use IA para:

  • gerar boilerplate
  • sugerir alternativas
  • revisar riscos
  • produzir documentação e diagramas

      Mas você valida arquitetura, contratos e invariantes.


Conclusão: o futuro não é “engenheiro de prompt”, é engenheiro de sistemas

O texto resume uma verdade dura e útil: a IA vai substituir o desenvolvedor que é apenas “executor de framework”.

Mas vai amplificar o desenvolvedor que:

  • entende domínio
  • desenha limites
  • escolhe trade-offs
  • entrega sistemas operáveis
  • fala a linguagem do negócio

Você pode usar 5% ou 90% de código gerado por IA. O mercado vai continuar valorizando quem sabe transformar requisito em software que aguenta o mundo real.