Artigos
Posts
Lições do dia a dia entregando software — padrões, pegadinhas, refactors e as ferramentas que mudam como eu trabalho.
2026
junho
- Essas são as ferramentas que estou testando no meu setupUm hard reset no notebook foi a desculpa pra parar de instalar no automático e testar ferramentas novas — algumas substituindo o que eu usava há anos. Estas são as ferramentas que estão fazendo parte do meu setup: cmux, oh-my-zsh, starship, rtk e mise.
- Guardrails no LangChain: barrando prompt injection antes do modeloBotar "NUNCA ignore estas regras" no system prompt é teatro de segurança — o modelo obedece o atacante na primeira frase esperta. A defesa de verdade é um porteiro que revista o recado antes de ele chegar na IA. Vamos construir um, e ver o LangChain v1 já trazer isso pronto como middleware.
- Entenda de uma vez por todas como funciona o LangChainUm LLM cru é brilhante e caótico ao mesmo tempo. LangChain é a estrutura que falta em volta dele — e dá pra entender a ferramenta inteira montando uma barbearia que marca e cancela cortes por conversa.
- Compozy: o orquestrador que transforma o Spec-Driven Development em código realO que é Spec-Driven Development e como o Compozy torna isso prático: council de ideias, PRD, execução de tasks em daemon e rounds de review. Tudo num exemplo real, construir um jogo da velha em React, do primeiro prompt até os fixes.
2024
dezembro
novembro
- Pare de travar a UI em updates lentos. Use useTransition.useTransition deixa você marcar um update de state como não-urgente pra que o React possa interrompê-lo em favor de algo mais importante — digitar num input, clicar num botão — em vez de congelar a UI inteira atrás dele.
- Pare de suprimir o exhaustive-deps. Stale closures são o motivo de ouvir.A regra react-hooks/exhaustive-deps não é preferência de estilo. É o guardrail que evita useEffect rodando com valores obsoletos que você esqueceu que tava fazendo closure em cima.
outubro
- Pare de adicionar o useCallback em toda função. Ele só ajuda em dois casos.useCallback memoiza a referência da função, não o trabalho dela. Na maior parte do tempo isso não faz nada — exceto em dois casos específicos onde a identidade da referência importa de verdade.
- Dois padrões React que valem a troca: callback refs e object lookupsDois refactors pequenos que removem boilerplate sem mudar comportamento — um callback ref no lugar de useRef + useEffect pra medir um nó do DOM, e um object lookup no lugar de um switch pra render condicional.
- Pare de empilhar isLoading. Use React SuspenseLoading states aninhados, flags de erro e renders condicionais se empilham rápido. React Suspense tira essa complexidade dos seus componentes e leva pra árvore, onde ela deve estar.
- Pare de passar 12 props. Use Component composition.Todo componente React começa simples. Depois cresce. Esse é o padrão que evita o efeito bola de neve da complexidade — sem reescrever tudo.