Ideias & Insights

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

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…

Na era da IA, code review vira specification review

Quando a IA consegue gerar implementação, testes e contracts a partir de uma especificação, o trabalho humano de maior alavancagem sobe no fluxo. O artefato que mais precisa de escrutínio passa a ser a própria especificação.

Se você já está publicando com IA há mais de algumas semanas, provavelmente conhece essa sensação. Você abre um pull request. O código está limpo o bastante. A…

A safety stack da AI: types, contracts, property tests e mutation gates

Se você quer que código gerado por AI sobreviva em produção, code review sozinho não basta. Você precisa de uma safety stack em camadas, de type constraints até mutation testing e runtime containment.

O aspecto mais perigoso do código gerado por AI não é ele estar sempre errado. O mais perigoso é que muitas vezes ele parece correto o suficiente para ser…