Edição 000 — o começo, com ressalvas
Primeira edição da Fritura Semanal: o que caiu do caminhão, o erro do laboratório e uma coisa aleatória que vale a sua atenção.
- newsletter
- edicao-000
Bem-vindo à primeira edição de um resumo que promete ser semanal e que se compromete apenas a ser útil. Sem patrocínio, sem indicação paga, sem link de afiliado. Se algo aqui estiver errado, a correção entra na edição seguinte, com o seu nome se você quiser.
O que caiu do caminhão
A semana foi dominada por uma discussão que não é nova e que não vai acabar: quem valida o quê. Três produtos diferentes anunciaram recursos de validação "no banco", o que na prática significa constraint, e três vezes a mesma pergunta apareceu nas discussões técnicas: se a regra está no banco, como o usuário recebe uma mensagem decente?
A resposta é sempre a mesma e nunca é satisfatória: validação de UX no cliente, regra de domínio no servidor, invariante no banco — e as três precisam concordar. Quando não concordam, quem paga a conta é a conciliação do fim do mês. Escrevi sobre isso no artigo desta semana.
Do laboratório
O Detector de Gambiarra nasceu de um erro bobo: rodei a heurística contra o próprio site e ele reprovou a página que o contém. O motivo era um catch vazio em um componente de tema. Corrigi, e agora a ferramenta passa em si mesma — o que é o mínimo de integridade que um detector pode ter.
Lição da semana: ferramenta de auditoria precisa rodar contra o próprio autor. É desconfortável e é exatamente por isso que funciona.
Código que vale olhar
Duas linhas que resolvem um problema que costuma virar três consultas e dois bugs de concorrência:
UPDATE contas
SET saldo = saldo - $1
WHERE id = $2
AND saldo >= $1
RETURNING saldo;
Ler, comparar e escrever em três passos parece mais legível e é mais frágil: entre a leitura e a escrita cabe outra requisição. Uma instrução com condição no WHERE sobrevive à concorrência e ainda devolve o saldo resultante. Vale o hábito.
Coisa de internet
A documentação do SQLite tem uma página dedicada a explicar quando não usar SQLite. Ferramenta que sabe dizer onde ela é a escolha errada merece mais confiança do que ferramenta que promete resolver tudo: sqlite.org/whentouse.html.
Na próxima
Uma investigação sobre por que quase todo sistema lento tem índice não usado, um experimento novo no lab, e a resposta para a pergunta "quantos containers eram realmente necessários" — que já tem ferramenta e continua sem resposta.
Assine para receber a próxima edição. Se não assinar, nada acontece: a edição fica no arquivo público de qualquer maneira.