Príncipe do Oceano, Marajá dos Legados e agora um dev cansado também no BlueSky com @rafaelponte.bsky.social . Me segue ✌🏻https://t.co/TDmRghB8iv
Dec 30, 2024 • 7 tweets • 3 min read
salvo pelos testes 🙌🏻
projeto Java coberto por testes e verdinho 🤤
vamos fazer upgrade do Spring Boot, né? molezinha, eh só atualizar o pom.xml (maven) 🙌🏻
então, estava eu migrando um projeto de Spring Boot 2.7.x para 3.x e eis que esse teste de integração quebrou! 😱😱
⚠️ o assert esperava 3 erros mas encontrou apenas 1
Por que?
na migração vc precisa alterar os imports de javax.* para jakarta.*
as anotações da Bean Validation mudaram pra Jakarta, e eu esqueci de modificar os imports dessa classe - oq fez as anotações antigas serem IGNORADAS pela processador do framework.
eh um erro silencioso q SEM testes de INTEGRAÇÃO a gente só pegaria em produção 😵💫
Jul 24, 2023 • 8 tweets • 4 min read
vc confia nesse if()?
mesmo favorecendo testes de integração, existem cenários *implicitos* que são dificeis de cobrir e garantir a corretude, como bugs de concorrência e race conditions.
por exemplo, cadastrar uma entidade somente SE ELA NÃO EXISTIR no sistema:
talvez para maioria dos dos sistemas isso não seja um problema.
mas se for...
basta 2 usuários tentando cadastrar o mesmo livro no mesmo instante que BOOM, temos um race condition em mãos:
(mentira, 1 único usuário com dedo nervoso eh suficiente 😬)
Dec 12, 2022 • 7 tweets • 3 min read
vc sabe quais são os 3 pilares para escalar aplicações web?
existem 3 pilares para escalar qualquer aplicação web, independente de tecnologias, eles são:
cache vai permitir responder as requisições mais rapidamente, tirar carga do banco de dados e serviços externos, e melhorar throughput de leitura;
ao retirar carga de leitura do banco vc libera recursos para o banco processar cargas de escrita e também leitura.
Aug 18, 2022 • 14 tweets • 4 min read
apesar de possível, eh muito doido p/ mim quando alguém favorece criar uma camada de indireção com intuito de abstrair:
- local vs remoto
- sync vc async
- transacional vs non-transacional
- stateful vs starless
na teoria a camada faz parecer q tudo eh igual, mas na prática 🤡
as vezes vem nego me dizer que nao tem diferença! daí eu penso: ou eh doido ou ingênuo 😅
curiosamente essa mesma pessoa eh a que já mete o envio de e-mail async para:
1. não aumentar latência na lógica de negócio principal;
2. adicionar alguma tolerância a falhas;
🤡
Jun 10, 2021 • 11 tweets • 2 min read
a piada da "fila virtual" e sistemas resilientes
semanas atrás estava pensando sobre como usar "fila virtual" em ecommerces, sites de vendas, eventos online etc virou piada p/ muitos desenvolvedores
para alguns parece incompetência um site não aguentar uma Black Friday, mas...
se pensarmos bem, se trata de uma forma honesta de lidar com um problema complexo e de grande escala.
explico....
uma Black Friday acontece 1x por ano e requer bastante esforço e *meses de preparo* dos times envolvidos para lidar com uma demanda dessa maginitude.