Ideias & Insights

Explorando desenvolvimento AI-first, guardrails de código e a arquitetura da descartabilidade.

Fuck-u-code: O Gate de Qualidade Determinístico Que Sua Pipeline de IA Esqueceu

Você tem type checking, linting e regras de arquitetura. Mas sua pilha determinística é cega para complexidade, duplicação e desastres de nomenclatura. Eis a correção de $0.

Vamos ser honestos sobre como a maioria das pipelines de código com IA realmente se parece agora. Você gera código com Cursor ou Claude Code. Você roda porque…

Testes Baseados em Propriedades em Rust Encontram os Bugs que Seus unit tests Deixam Passar

Testes baseados em exemplos cobrem apenas as entradas que você imaginou. Testes baseados em propriedades geram dados aleatórios, verificam invariantes e reduzem falhas aos contraexemplos mínimos.

Você escreveu uma função . Testou com e . Passou. Enviou para produção. Um usuário passa um slice de um único elemento. Sua função o ignora silenciosamente.…

Por que a primeira versão nunca é o problema: AI coding e manutenção no longo prazo

Ferramentas de AI coding são excelentes para gerar a primeira versão. O verdadeiro desafio de engenharia começa na versão quatro, quando o time precisa mudar algo sem quebrar todo o resto.

Toda demonstração de AI coding segue o mesmo arco. Alguém faz um prompt para um modelo. Um aplicativo funcional se materializa. A audiência fica impressionada.…

Código gerado por AI e o princípio da substituibilidade

A verdadeira medida da qualidade do código gerado por AI não é se ele funciona no primeiro dia. É se você consegue substituí-lo no trigésimo dia sem reescrever todo o resto.

A maioria das conversas sobre a qualidade de código gerado por AI se concentra na correção no momento da geração. A saída compila? Ela passa nos testes? Ela…

Guardrails determinísticos para codebases de AI

Revisão humana é inconsistente. Revisão com AI é pior. A única defesa escalável para codebases geradas por AI é enforcement determinístico: regras que falham o build, não sugestões que acabam ignoradas.

O conselho padrão para código gerado por AI é "revise com cuidado". Esse conselho está correto e é inútil em escala. Um desenvolvedor revisando saída de AI…

Contratos de Runtime em Rust Podem Ser Gratuitos em Builds de Release, mas o compiler Não Vai Fazer Isso por Você

Rust remove debug assertions automaticamente, mas design-by-contract de verdade precisa de mais do que debug_assert!. Veja como construir contratos de runtime com custo zero que desaparecem do seu binário de release.

Rust pode impor contratos de runtime em desenvolvimento e apagá-los completamente das builds de release. A ressalva é que a linguagem não trata contracts como…

Zero, Um ou Doze: Quantas Assertions uma Função de Produção Realmente Precisa

Desenvolvedores ou espalham assertions como confete ou as evitam completamente. Aqui está o framework de decisão que separa invariants úteis de gatilhos de crash em produção.

A maioria dos codebases de produção se divide em dois campos. O Campo A trata como um tempero decorativo, espalhando-o a cada outra linha até que a função…

O strictNullChecks do TypeScript É uma Proteção em Tempo de Compilação, Não um Escudo em Runtime

O modo strict captura os nulls que você escreve, não os nulls que chegam em runtime de APIs, queries no DOM e JSON.parse. É aqui que o sistema de tipos para e suas defesas começam.

Você ativou no . Corrigiu cada erro. Enviou para produção confiante de que e eram problemas resolvidos. Aí a resposta do backend mudou de forma, uma query no…