
NodeJS
Resumo do episódio 62 do AguiarDev Talks. Prefere assistir? Veja o episódio completo →
Tiago Aguiar recebe Lucas Santos, desenvolvedor brasileiro radicado na Suécia, para explicar o que é o Node.js e de onde ele veio. A conversa parte da pergunta mais básica — linguagem, runtime ou biblioteca? — e percorre as diferenças entre rodar JavaScript no browser e no servidor, os limites (ou a ausência deles) do que dá para construir com Node, o estado do ecossistema de testes e como o mercado de trabalho se comporta no Brasil e na Europa.
O que foi discutido
- O que é o Node.js e como ele nasceu a partir do motor V8 do Chrome
- As diferenças entre rodar JavaScript no browser e no Node — DOM, sandbox e acesso a sistema
- Que tipos de aplicação é possível construir com Node, de APIs a aplicações desktop
- As ferramentas de teste disponíveis, do Jasmine e Mocha ao Node Test Runner nativo
- Como está o mercado de trabalho para quem trabalha com Node, no Brasil e fora
- Diferenças de exigência técnica entre o mercado brasileiro e o europeu
- Os riscos de aprender frameworks sem entender os fundamentos da web
Sobre Lucas Santos
Lucas Santos é desenvolvedor brasileiro radicado na Suécia, trabalhando com JavaScript, TypeScript e Node desde 2014 — o primeiro emprego formal com Node veio em 2015. Passou pela Microsoft, na área de Kubernetes e infraestrutura, e depois pela Klarna, um dos maiores bancos digitais da Europa. É criador da Formação TS (formacaots.com.br), curso completo de TypeScript com centenas de alunos, e mantém blog e canal próprios sob o domínio lucassantos.dev, onde escreve sobre JavaScript, testes e, mais recentemente, criptografia.
Principais pontos
Node é um ambiente de execução, não uma linguagem
O JavaScript nasceu em 1995 para dar interatividade a páginas web e, por muito tempo, só rodou no browser. Em 2009, Ryan Dahl teve a ideia de extrair o V8 — o motor de execução de JavaScript por trás do Google Chrome — e colocá-lo para rodar fora do navegador, criando APIs próprias para acessar recursos que o browser bloqueia por segurança, como sistema de arquivos e variáveis de ambiente.
"O Node é o que a gente chama de runtime... A linguagem que ele roda é JavaScript. Então, o Node em si, ele é um lugar onde o JavaScript pode rodar" por Lucas Santos
Sem DOM, mas com acesso direto ao sistema
A diferença mais citada por quem migra do front-end para o back-end é a ausência do DOM — não existe página, janela ou documento para manipular. Em compensação, o Node roda fora do sandbox de segurança do browser: onde um site não pode ler arquivos do disco ou abrir sockets livremente, um processo Node pode.
"O Node não tem essas limitações, ele tá rodando teoricamente no seu próprio servidor. Então, você pode acessar a variável de ambiente, você pode acessar o sistema de arquivo, você pode fazer chamada de rede" por Lucas Santos
O Node não tem limite de aplicação
Da criação de APIs web a servidores de arquivo, ferramentas de linha de comando, filas de processamento e até aplicações desktop — como o VS Code e o Obsidian, construídos em Electron, que combina o V8 com o Chrome em processos separados que se comunicam via IPC — o Node se tornou uma base para praticamente qualquer tipo de software, incluindo casos citados na conversa como React rodando em TVs da Netflix.
"O Node, literalmente, não tem limites, assim. Isso é uma das coisas mais impressionantes" por Lucas Santos
O ecossistema de testes amadureceu sem depender de bibliotecas externas
O histórico passa por Jasmine, Mocha e, principalmente, Jest — criado pelo Facebook com mocks e assertions nativas, hoje um "legado gigante" do ecossistema. Desde a versão 20, o Node Test Runner nativo permite escrever testes unitários, de integração e end-to-end sem instalar nada externo, embora ainda não tenha a maturidade de dez anos de Jest em recursos como mocks e transformers.
"Você pode escrever teste unitário, integração, end-to-end, o que você quiser, usando só o Node Test Runner. Você não precisa estar lá nada externo, ele funciona bem, ele é muito rápido" por Lucas Santos
A demanda por Node é alta, mas o filtro muda de continente
No Brasil, a procura recai sobre JavaScript e as ferramentas mais recentes do ecossistema. Na Europa — pelo menos na experiência sueca de Lucas — praticamente nenhuma vaga pede JavaScript puro: o requisito é TypeScript, refletindo empresas acostumadas a linguagens fortemente tipadas como Java e C#. A facilidade de aprender JavaScript também amplia a concorrência: a mesma vaga que teria poucos candidatos em uma tecnologia mais nichada atrai centenas de inscritos.
"Todas as vagas que eu vi aqui na Europa, pelo menos na Suécia, precisam de TypeScript, todo mundo quer TypeScript" por Lucas Santos
Frase de destaque
"Você tem que saber como funcionam as coisas na base, porque senão, tudo que você quiser vai ser um problema sério depois, principalmente na questão de segurança" por Lucas Santos
Lições do episódio
- Entender que o Node é um runtime, não uma linguagem, evita confusões comuns sobre onde termina o JavaScript e começa a ferramenta que o executa.
- A ausência de DOM é a principal armadilha de quem migra do front-end para o back-end — vale mapear essa diferença antes de escrever a primeira API.
- O acesso a sistema de arquivos, variáveis de ambiente e sockets é uma vantagem do Node sobre o browser, mas também exige mais cuidado com segurança.
- O Node cobre praticamente qualquer tipo de aplicação — vale conhecer o ecossistema antes de assumir que ele serve só para APIs web.
- O Node Test Runner nativo já é uma opção viável para cobrir testes sem depender de bibliotecas externas como Jest.
- Para o mercado europeu, dominar TypeScript pesa mais do que apenas JavaScript — vale mapear essa exigência antes de buscar oportunidades fora do Brasil.
- Pular os fundamentos de web (DOM, requisições, protocolos) tende a aparecer mais tarde como falhas de segurança e performance difíceis de diagnosticar.