Bun na prática: testes rápidos e trade-offs reais hoje
Bun brilha em velocidade. A decisão madura é onde usar, o que medir e o que ainda deixar no Node.
Resposta direta
É meu amigo, minha amiga, eu estou novamente, por mais uma vez, acho que já posso com o tape de música no Fantástico de tantas vezes, que eu novamente estou testando o Banner num projeto pessoal.
Por que este material importa
Este artigo reorganiza a transcrição de `bun-runtime-testes-rapidos` (tema: bun runtime testes rapidos) em leitura operacional: o que muda no produto ou no processo nesta semana.
É meu amigo, minha amiga, eu estou novamente, por mais uma vez, acho que já posso com o tape de música no Fantástico de tantas vezes, que eu novamente estou testando o Banner num projeto pessoal.
A cena inicial já define o jogo: É meu amigo, minha amiga, eu estou novamente, por mais uma vez, acho que já posso com o tape de música no Fantástico de tantas vezes, que eu novamente estou testando o Banner num projeto pessoal. Então eu estava utilizando, por exemplo, a parte do OpenTelemetry para a parte de tracing. Então aqui, por exemplo, eu posso ver, eu tenho configuração do OpenTelemetry, ou seja, eu quero enviar todos os logs, todos os traces, para eu saber exatamente o que esdando erro na minha aplicação para uma ferramenta externa, um Jagger, um Datadog.
O problema real atrás de bun runtime testes rapidos
Antes de qualquer ferramenta, o áudio marca o limite: bugava, então assim, tinha muito problema e eu falei, cara, eu vou deixar o Ban de lado construí minha API na época utilizando Node puro com TypeScript com, se não me engano, o TSA pra converter o TypeScript pra JavaScript, pra rodar em produção, só que cara, o Ban ele traz muitos quality of life improvements, assim, muitos benefícios, né, pra que coisas que a gente tem que fazer manualmente no Node que aqui no Ban são muito legais e eu falei, pô, vou tentar desenvolver. Sim, tem muita coisa no BAN que esmelhor E eu vou te mostrar algumas dessas coisas aqui Nesse projetinho que eu criei Então primeiro eu vou rodar aqui meu banco de dados Só para a gente ver E a primeira coisa que eu já quero te mostrar É a velocidade que o BAN roda, por exemplo, testes da nossa aplicação Eu vou rodar um BAN run test aqui E olha só a velocidade, ele consegue rodar aqui os testes A maioria dos testes, olha só Em 0.01 milissegundos, 0.02 milissegundos E isso. É claro que não é uma aplicação muito grande, mas a gente vê aqui a média de milissegundos que ele leva por teste, já é algo incrível, isso aqui mostra que, conforme a gente for tendo uma suite de testes maior, a gente não vai ter muito problema com lentidão.
Desdobrando a decisão prática: E o BAN implementou isso dentro da função de build. É claro que aqui, né, eu ainda utilizo o Dockerfile, e olha aqui, Dockerfile simples, né, pra gerar esse build.
Se você não resume a restrição em uma frase, ainda extraiu só a vibe do vídeo — não o problema.
Âncora
Information gain = caso + mecanismo. Sem o caso, vira resumo vazio de blog.
O que esdando erro na minha aplicação para uma ferram
O trecho operacional que importa: E eu simplesmente rodo esse comando server, né, então porque eu uso o deploy da minha aplicação sempre via Dockerfile, Que é uma maneira muito fácil de eu... Mas uma das coisas que eu acho muito legal do BAN em si, é que a gente consegue usar bibliotecas nativas do BAN para fazer algumas coisas. E o Better Auth, né, ele traz toda a parte de autenticação pronta pra gente na nossa aplicação, sem a gente precisar usar um hosting de autenticação terceiro, então não precisa usar um Auth0, não precisa usar um Cognito, não precisa usar um Clerk ou qualquer coisa assim.
O mecanismo útil (sem teatro) fica nestes trechos: Por exemplo, claro, aqui eu estou usando o Drizzle, mas olha só que interessante. Não sei se você conhece, mas o Polar, não sei se é assim que se pronuncia, ele é uma alternativa ao Stripe que se integra muito bem com o BetterAuth.
Checklist curto: 1) Dono da decisão. 2) Métrica de 7 dias. 3) Rollback se piorar. 4) Doc de uma página no repo.
Checklist
Copie o mecanismo, não a persona do criador. Seu ICP e stack ditam o experimento.
Porque eu uso o deploy da minha aplicação sempre via D
O aviso embutido na narrativa: Eles criaram internamente, como tem muitas aplicações agora, que estão fazendo cobrança com base em uso de AI, então imagina que tu desenvolvendo uma ferramenta, como por exemplo, sei lá, um gerador de Ghibli, né? Porque o valor que a IA me cobra, ela é diferente às vezes.
Falsas vitórias comuns: demo bonita sem dados, integração 'pronta' sem observabilidade, e automação que esconde erro em vez de expor.
Para `bun-runtime-testes-rapidos`, a pergunta de corte é: o usuário completa a tarefa sem você na call? Se não, ainda é protótipo.
Sinais de que você ainda está no protótipo: Eu usei essa ferramenta e comecei a testar ela e bom, posso trazer no próximo vídeo também, mas é algo que eu ainda não consegui usar na prática, testar na prática, por isso eu nem vou falar muito agora sobre isso, né? Outra coisa do Ban, né, que a gente pode entrar aqui no HTTP e a gente vai ver, é que ele usa muito, né, que eu tô usando o Eligia, mas ele usa, ele não usa o Zod, né, ele usa o Typebox, teoricamente porque o Typebox ele é mais rápido, mas principalmente porque o Typebox tem algumas features que o Zod não tinha até a última versão do Zod.
Atenção
Não marque como shipped o que só funciona com o founder logado e o .env da demo.
Como validar bun runtime testes rapidos em 7 dias
Leve para o board só o que for observável: Então eu estava utilizando, por exemplo, a parte do OpenTelemetry para a parte de tracing. Então aqui, por exemplo, eu posso ver, eu tenho configuração do OpenTelemetry, ou seja, eu quero enviar todos os logs, todos os traces, para eu saber exatamente o que esdando erro na minha aplicação para uma ferramenta externa, um Jagger, um Datadog.
Internalize com links vivos do ecossistema CrazyStack: /blog, /curso-cursor-avancado-configuracoes-pro, /curso-claude-code-9-dicas-profissionais, /programa-crazystack e /checklist-independencia-cursor.
Detalhes do material de origem
Feche a semana com estes critérios do material: Então aqui, por exemplo, eu posso ver, eu tenho configuração do OpenTelemetry, ou seja, eu quero enviar todos os logs, todos os traces, para eu saber exatamente o que esdando erro na minha aplicação para uma ferramenta externa, um Jagger, um Datadog. bugava, então assim, tinha muito problema e eu falei, cara, eu vou deixar o Ban de lado construí minha API na época utilizando Node puro com TypeScript com, se não me engano, o TSA pra converter o TypeScript pra JavaScript, pra rodar em produção, só que cara, o Ban ele traz muitos quality of life improvements, assim, muitos benefícios, né, pra que coisas que a gente tem que fazer manualmente no Node que aqui no Ban são muito legais e eu falei, pô, vou tentar desenvolver. Sim, tem muita coisa no BAN que esmelhor E eu vou te mostrar algumas dessas coisas aqui Nesse projetinho que eu criei Então primeiro eu vou rodar aqui meu banco de dados Só para a gente ver E a primeira coisa que eu já quero te mostrar É a velocidade que o BAN roda, por exemplo, testes da nossa aplicação Eu vou rodar um BAN run test aqui E olha só a velocidade, ele consegue rodar aqui os testes A maioria dos testes, olha só Em 0.01 milissegundos, 0.02 milissegundos E isso.
Implicações para produto e engenharia: É claro que não é uma aplicação muito grande, mas a gente vê aqui a média de milissegundos que ele leva por teste, já é algo incrível, isso aqui mostra que, conforme a gente for tendo uma suite de testes maior, a gente não vai ter muito problema com lentidão. E o BAN implementou isso dentro da função de build. É claro que aqui, né, eu ainda utilizo o Dockerfile, e olha aqui, Dockerfile simples, né, pra gerar esse build.
O que levar para a próxima sprint: Mas uma das coisas que eu acho muito legal do BAN em si, é que a gente consegue usar bibliotecas nativas do BAN para fazer algumas coisas. E o Better Auth, né, ele traz toda a parte de autenticação pronta pra gente na nossa aplicação, sem a gente precisar usar um hosting de autenticação terceiro, então não precisa usar um Auth0, não precisa usar um Cognito, não precisa usar um Clerk ou qualquer coisa assim. Por exemplo, claro, aqui eu estou usando o Drizzle, mas olha só que interessante.
Mais evidência do áudio original, sem inventar cena: Eu usei essa ferramenta e comecei a testar ela e bom, posso trazer no próximo vídeo também, mas é algo que eu ainda não consegui usar na prática, testar na prática, por isso eu nem vou falar muito agora sobre isso, né? Outra coisa do Ban, né, que a gente pode entrar aqui no HTTP e a gente vai ver, é que ele usa muito, né, que eu tô usando o Eligia, mas ele usa, ele não usa o Zod, né, ele usa o Typebox, teoricamente porque o Typebox ele é mais rápido, mas principalmente porque o Typebox tem algumas features que o Zod não tinha até a última versão do Zod. Então, como a gente pode ver, tem duas features aqui que o Zod não tinha e que eram, assim, limitantes pra gente usar o Zod como uma API não só de validação, mas de tipagem das rotas pra que eu gere uma documentação automática.
Se travar na execução, volte a estes trechos-âncora: Se eu abro aqui localhost 3000 barra openAPI, se eu não me engano, Ele já vai ter aqui toda a parte de documentação de todas as rotas da minha aplicação. Na parte de definição aqui das respostas. Isso era uma limitação, e outra coisa, a parte de metadados, né, então aqui, por exemplo, no type box, eu posso passar aqui o examples, né, isso aqui vai ser convertido automaticamente lá na documentação como exemplos no meu OpenAPI.
Quando a transcrição é curta, o ganho editorial está em transformar a restrição em checklist e critério de corte — sem inventar fatos ausentes do áudio.