‫Instructor: Ahora, para sentar
‫las bases para las próximas conferencias,
‫comencemos por aprender un poco sobre la arquitectura de Node.
‫Así que representemos esa arquitectura aquí en
‫términos de las dependencias de Node, que
‫son solo un par
‫de bibliotecas de las que Node depende para funcionar correctamente.
‫Entonces, el tiempo de ejecución de Node tiene
‫varias dependencias, y
‫las más importantes son el motor V8 (mumbles) y libuv.
‫Ahora dijimos antes que Node es un tiempo de ejecución de JavaScript
‫basado en el motor V8 de Google, ¿verdad?
‫Y por eso aparece aquí como una dependencia.
‫Si no fuera por V8, Node no tendría absolutamente ninguna
‫forma de entender el código JavaScript que escribimos.
‫Y por lo tanto, V8 es una parte
‫fundamental en la arquitectura de Node.
‫Entonces, nuevamente, el motor V8 es lo que convierte el código JavaScript
‫en código de máquina que una computadora realmente puede entender.
‫Está bien, pero eso por sí solo no es suficiente para crear un marco
‫del lado del servidor completo como Node.
‫Y es por eso que también tenemos libuv en Node.
‫Y libuv es una biblioteca de código abierto con un
‫fuerte enfoque en E / S asíncrona.
‫Entonces, entrada salida.
‫Esta capa es lo que le da a Node
‫acceso al sistema operativo subyacente de
‫la computadora, al sistema de archivos, a la red y más.
‫Además de eso, libuv también implementa dos características extremadamente importantes
‫de Node. JS, que son
‫el bucle de eventos y también el grupo de subprocesos.
‫Y en términos simples, el bucle de eventos es
‫responsable de manejar tareas fáciles como ejecutar devoluciones de llamada y
‫E / S de red, mientras que el grupo de subprocesos es para trabajos más
‫pesados, como el acceso a archivos o la compresión, o algo así.
‫Pero aprenderá todo sobre eso,
‫sobre el ciclo de eventos y el grupo
‫de subprocesos, en los próximos dos videos.
‫Una cosa importante a
‫tener en cuenta aquí es que libuv está en realidad
‫completamente escrito en C ++ y no en JavaScript.
‫Y el propio V8 también usa código C ++ además de JavaScript.
‫Entonces, Node en sí es un programa
‫escrito en C ++ y JavaScript y no solo en
‫JavaScript como cabría esperar, ¿verdad?
‫Ahora bien, la belleza de esto es que Node. JS une todas
‫estas bibliotecas, sin importar si están
‫escritas en C ++ o JavaScript y luego
‫nos da a los desarrolladores acceso a sus funciones en JavaScript puro.
‫Así que realmente nos proporciona una
‫muy buena capa de abstracción para hacernos la vida mucho más fácil
‫en lugar de tener que lidiar con el código C ++.
‫Sería una experiencia terrible, ¿verdad?
‫De nuevo, esta arquitectura nos permite escribir
‫código JavaScript 100% puro,
‫ejecutándose en Node. JS y aún accede
‫a funciones como la lectura de archivos,
‫que detrás de escena se implementan
‫en libuv u otras bibliotecas en el lenguaje C ++.
‫Y hablando de
‫otras bibliotecas, Node en realidad no solo
‫se basa en V8 y libuv, sino también en
‫http-parser para analizar http, c-ares o algo así para algunas solicitudes
‫de DNS, OpenSSL para keptografía y también zlib para compresión.
‫Y estos no son tan importantes de entender, ¿de acuerdo?
‫Entonces, al final, cuando tengamos todas estas piezas
‫bien encajadas, terminamos con Node. JS listo para ser utilizado
‫en el lado del servidor con las cuatro aplicaciones.
‫Y a continuación, aprenderá más sobre los subprocesos en
‫Node y el grupo de subprocesos.
‫Así que estad atentos a ese.