‫Instrutor: Agora, a fim de
‫preparar o terreno para as próximas
‫aulas, vamos começar aprendendo um pouco sobre a arquitetura do Node.
‫Então, vamos representar essa arquitetura aqui
‫em termos de dependências do Node,
‫que são apenas algumas
‫bibliotecas das quais o Node depende para funcionar corretamente.
‫Portanto, o tempo de execução do Node tem
‫várias dependências, e
‫as mais importantes são o motor V8 (murmúrios) e o libuv.
‫Já dissemos antes que o Node é um tempo de execução do
‫JavaScript baseado no motor V8 do Google, certo?
‫E é por isso que aqui aparece como uma dependência.
‫Se não fosse pelo V8, o Node não teria absolutamente
‫nenhuma maneira de entender o código JavaScript que escrevemos.
‫E, portanto, V8 é uma parte fundamental
‫na arquitetura do Node.
‫Então, novamente, o motor V8 é o que converte o código JavaScript
‫em código de máquina que um computador pode realmente entender.
‫Ok, mas só isso não é suficiente para criar uma estrutura inteira do
‫lado do servidor como o Node.
‫E é por isso que também temos libuv no Node.
‫E libuv é uma biblioteca de código aberto com
‫um forte foco em IO assíncrono.
‫Então, entrada e saída.
‫Essa camada é o que dá ao
‫Node acesso ao sistema operacional
‫do computador, sistema de arquivos, rede e muito mais.
‫Além disso, o libuv também implementa dois recursos extremamente importantes
‫do Node. JS que são
‫o loop de eventos e também o pool de threads.
‫E, em termos simples, o loop de eventos
‫é responsável por lidar com tarefas fáceis, como executar callbacks
‫e E / S de rede, enquanto o pool de threads é para trabalhos
‫mais pesados, como acesso a arquivos ou compactação ou algo assim.
‫Mas você aprenderá tudo sobre
‫isso, sobre o loop de eventos e o
‫pool de threads, nos próximos dois vídeos.
‫Uma coisa importante a
‫se notar aqui é que libuv é, na verdade,
‫completamente escrito em C ++ e não em JavaScript.
‫E o próprio V8 também usa código C ++ além de JavaScript.
‫Portanto, o próprio Node é um programa escrito
‫em C ++ e JavaScript e não apenas em JavaScript
‫como você pode esperar, certo?
‫Agora, a beleza disso é aquele Nodo. JS une
‫todas essas bibliotecas, não importa se
‫escrito em C ++ ou JavaScript e, em
‫seguida, dá aos desenvolvedores acesso às suas funções em JavaScript puro.
‫Portanto, isso realmente nos fornece uma
‫ótima camada de abstração para tornar nossas vidas muito mais fáceis,
‫em vez de termos que mexer com o código C ++.
‫Seria uma experiência terrível, certo?
‫Então, novamente, essa arquitetura nos permite escrever código
‫JavaScript 100 por cento puro,
‫rodando em Node. JS e ainda
‫acessam funções como leitura de arquivo,
‫que nos bastidores são implementadas
‫em libuv ou outras bibliotecas na linguagem C ++.
‫E por falar
‫em outras bibliotecas, o Node não depende apenas
‫do V8 e do libuv, mas também do analisador http
‫para analisar http, c-ares ou algo parecido para algumas coisas de
‫solicitação de DNS, OpenSSL para keptografia e também zlib para compactação.
‫E isso não é tão importante entender, certo?
‫Então, no final, quando tivermos todas essas peças bem
‫encaixadas, acabaremos com o Node. JS pronto para ser usado
‫no lado do servidor em todos os quatro aplicativos.
‫E a seguir, você aprenderá mais sobre threads em
‫Node e o pool de threads.
‫Portanto, fique atento para isso.