Fiber: Performance Acima da Pureza “Idiomática”

Já posso ouvir os puristas do Go afiando seus forcados. “Use a biblioteca padrão”, eles entoam. “Frameworks são um antipadrão”, eles gritam.

Eu não me importo.

Não estou usando Fiber porque sou preguiçoso. Não estou usando porque se parece com o Express.js. Estou usando porque tenho um vício patológico por velocidade, e o net/http, abençoado seja seu coração seguro e compatível, é simplesmente educado demais para a violência que quero infligir na minha CPU.

Read More

Contract First ou Morra Tentando: A Única Maneira Sensata de Projetar APIs

Preciso desabafar. Algo que tem apodrecido na minha alma desde a primeira vez que entrei em um projeto em meio ao desenvolvimento e fiz a pergunta fatídica: “Onde está a documentação da API?”

A resposta, invariavelmente, era uma das seguintes:

  1. “Confira a coleção do Postman.” (Tradução: um cemitério de 200 requisições, metade das quais desatualizadas, com nomes como GET users FINAL v2 (cópia))
  2. “É só olhar o código.” (Tradução: faça engenharia reversa do nosso espaguete e boa sorte)
  3. “Vamos documentar depois.” (Tradução: nunca vamos documentar)

Eu Desisto!

Read More

A Morte do JSON no Backend: Por que migrei toda minha stack para gRPC e Protobuf

Vou começar este post com uma confissão que pode me render alguns inimigos: Eu odeio JSON.

Não é um ódio irracional, daqueles que aparecem do nada. É um ódio construído, tijolo por tijolo, ao longo de anos debugando payloads malformados, campos que deveriam ser números mas chegaram como strings, e aquele clássico null onde você esperava um array vazio. JSON é o equivalente digital de uma conversa telefônica com sua avó: você acha que entendeu o que ela disse, mas quando você chega lá, o bolo de cenoura não tinha aquela cobertura de chocolate esperada (brasileiros vão entender).

Read More

O Kobayashi Maru do Java: Tratamento Global de Exceções

Para quem pulou as aulas da Academia da Frota Estelar, o Kobayashi Maru é um exercício de treinamento projetado como um “cenário sem vitória”. O objetivo não é vencer, é ver como você lida com uma falha inevitável. No mundo da Engenharia de Backend, nosso cenário sem vitória é a Exceção Não Tratada.

Você passa semanas arquitetando um serviço bonito e limpo. Você usa Records, otimiza suas consultas SQL, aplica princípios SOLID. E então, no dia da produção, um usuário envia um JSON malformado, e sua API vomita um Stack Trace de 50 linhas diretamente no console do navegador dele. É feio, é pouco profissional e expõe sua lógica interna para o mundo.

Read More

Arquivos de Comprimento Fixo com Spring Batch 6.0: O “Prazer” dos Dados Legados

Se você é um desenvolvedor que já lidou com processamento de folha de pagamento ou conciliação bancária/financeira em uma empresa que usa Spring, provavelmente já trabalhou com Spring Batch. Confesso que não sou um grande fã; ele tem aquela característica verbosidade e sobrecarga do ecossistema Java, fazendo parecer que até o job mais simples exige muito mais estrutura do que o necessário. Mas de que adianta reclamar? A tecnologia que sua empresa usa é o que garante sua sobrevivência (moradia, comida, roupa). Então, lamentações não são o tema de hoje.

Read More