Há algumas semanas, muitos programadores (ou talvez ex-programadores) começaram a notar que o modelo Codex da OpenAI desenvolveu uma obsessão por codificação defensiva.
Nada capturou isso melhor do que isRecord, uma guarda ridícula para verificar se um objeto parecido com um objeto é realmente um objeto, que começou a aparecer em todos os lugares.
https://x.com/weswinder/status/2073959658167898594
https://x.com/cnakazawa/status/2062755985702494643
https://x.com/thdxr/status/2069927201638682976
A peculiaridade rapidamente se tornou um meme. Está até disponível como pacote npm.
Ei, eu conheço esse código
Bem, eu sempre usei isWhatever para helpers que retornam booleanos. De vez em quando, tive que pressionar meus pobres colegas a usá-lo também, tanto para consistência de estilo quanto por uma coisinha chamada modo fundador.
Então, quando todo esse discurso sobre isRecord chegou à minha timeline, eu tive que parar. Eu tinha certeza de que já tinha visto isRecord antes. E, com certeza, uma busca no código do tldraw revelou isso:

Essa guarda faz parte do nosso pacote de armazenamento de dados, onde todas as informações no canvas do tldraw são armazenadas como um mapa reativo plano de objetos, ou "records". É uma guarda simples e mais sobre atribuir um tipo do que realmente proteger o store.As. Pelo que posso dizer, essas linhas são a fonte do isRecord tão amado pelos modelos de codificação. Se você procurar o código no GitHub, encontrará tldraw e muitas cópias do tldraw, seguidas por código mais recente escrito pelo Codex.

O único outro repositório que encontrei usando isRecord dos tempos antigos é a versão do RocketChat, adicionada em julho de 2025:

Não quero me gabar, mas nossa isRecord antecede isso em pelo menos dois anos. Na verdade, acho que escrevemos o armazenamento no verão de 2022, embora o git blame só nos leve até 2023, quando movemos o código do repositório privado para o público.
10.000 anos de isRecord
No final, tenho que admitir certo orgulho por ter tido uma pequena influência nos pesos de modelos tão incríveis. Da próxima vez que você vir um isRecord na sua base de código, por favor, pense no tldraw.





