Node - Perguntas para uma entrevista de emprego

Introdução

Procurando uma forma de ajudar os(as) desenvolvedores(as) que estão fora do mercado do mercado de trabalho, eu decidi iniciar uma série de posts onde eu abordo perguntas e respostas recorrentes de uma entrevista para uma vaga de desenvolvedor. Esse é o terceiro post da série e desta vez eu focarei no Node, um interpretador de JavaScript que vem ganhando cada vez mais espaço no mercado. E assim como nos primeiros posts, eu caprichei para o conteúdo ser o mais rico possível, então aproveitem a leitura <3

Node

1. Como o Node funciona?

O seu funcionamento é similar ao de um framework, pois permite que o desenvolvedor escreva os seus códigos em JavaScript, faça a compilação deles e os execute.

Contudo, a diferença é que a aplicação rodará em uma máquina virtual específica, a V8. A máquina virtual em questão é a mesma que o Google desenvolveu para o Chrome com o mesmo objetivo de executar os códigos em JS.

2. Onde nós podemos usar o Node?

O Node.js pode ser usado para os seguintes propósitos.

1- Aplicações Web 2- Aplicações de rede 3- Sistemas distribuídos 4- Aplicações de uso geral

3. Por que o Node é single threaded?

Para processamento assíncrono, o Node.js foi criado como um experimento. Acredita-se que mais desempenho e escalabilidade possam ser alcançados através do processamento assíncrono em um único encadeamento do que na implementação típica baseada em encadeamento.

4. Você pode acessar o DOM no Node?

Não, você não consegue acessar o DOM a partir do Node.

5. O que 'non-blocking' significa no Node?

Isso significa que a sua E/S não possui bloqueio. O Node usa o libuv para lidar com E/S sem depender de qualquer plataforma. Portanto, faz uma solicitação sem bloqueio e, mediante solicitação, enfileira-a no loop de eventos que chama uma callback no segmento principal do JavaScript.

6. O que é libuv?

A biblioteca C que implementa o loop de eventos e todos os comportamentos assíncronos.

7. O que é __dirname?

Uma variável global que retorna o caminho absoluto do diretório que contém o arquivo em execução no momento.

8. Quais são os prós e contras do Node?

Prós:

  • Você pode construir toda a sua aplicação em JavaScript, até mesmo o banco de dados, se utilizar uma ferramenta como MongoDB.
  • Os rastreadores recebem uma resposta HTML totalmente renderizada, o que é muito mais amigável ao SEO, em relação a uma single page application ou um aplicativo websockets executado sobre o Node.js.

Contras:

  • Qualquer computação intensiva da CPU bloqueará a capacidade de resposta do node.js. Portanto, uma plataforma encadeada é uma abordagem melhor.
  • O uso de banco de dados relacional com Node.js não é vantajoso.

9. Qual a diferença entre as dependencies e as devDependencies?

Ambos são definidos no package.json. As dependencies listam os pacotes dos quais o projeto depende. Já as devDependencies listam as dependências necessárias apenas durante o teste e o desenvolvimento.

10. O que é o event loop?

O Node.js processa solicitações recebidas no event loop. É isso que permite ao Node.js executar operações sem bloqueio, mesmo o JavaScript sendo single-threaded .

Conclusão

Por hora é só pessoal! Apesar de eu ter trazido apenas as questões que achei mais recorrentes para um post sobre o Node, você pode encontar muitas outras nesse repositório aqui.

Fique de olho também nos próximos posts relativos a entrevistas de emprego, e se surgirem dúvidas ou sugestões, não deixem de mandar aí nos comentários!

Comentários