﻿1
00:00:01,170 --> 00:00:02,830
‫Instructor: Ahora, para sentar

2
00:00:02,830 --> 00:00:04,710
‫las bases para las próximas conferencias,

3
00:00:04,710 --> 00:00:08,083
‫comencemos por aprender un poco sobre la arquitectura de Node.

4
00:00:09,430 --> 00:00:11,980
‫Así que representemos esa arquitectura aquí en

5
00:00:11,980 --> 00:00:14,610
‫términos de las dependencias de Node, que

6
00:00:14,610 --> 00:00:16,620
‫son solo un par

7
00:00:16,620 --> 00:00:20,300
‫de bibliotecas de las que Node depende para funcionar correctamente.

8
00:00:20,300 --> 00:00:23,320
‫Entonces, el tiempo de ejecución de Node tiene

9
00:00:23,320 --> 00:00:25,010
‫varias dependencias, y

10
00:00:25,010 --> 00:00:29,030
‫las más importantes son el motor V8 (mumbles) y libuv.

11
00:00:29,030 --> 00:00:32,800
‫Ahora dijimos antes que Node es un tiempo de ejecución de JavaScript

12
00:00:32,800 --> 00:00:35,570
‫basado en el motor V8 de Google, ¿verdad?

13
00:00:35,570 --> 00:00:39,140
‫Y por eso aparece aquí como una dependencia.

14
00:00:39,140 --> 00:00:42,620
‫Si no fuera por V8, Node no tendría absolutamente ninguna

15
00:00:42,620 --> 00:00:45,980
‫forma de entender el código JavaScript que escribimos.

16
00:00:45,980 --> 00:00:48,770
‫Y por lo tanto, V8 es una parte

17
00:00:48,770 --> 00:00:50,880
‫fundamental en la arquitectura de Node.

18
00:00:50,880 --> 00:00:55,450
‫Entonces, nuevamente, el motor V8 es lo que convierte el código JavaScript

19
00:00:55,450 --> 00:00:59,470
‫en código de máquina que una computadora realmente puede entender.

20
00:00:59,470 --> 00:01:03,370
‫Está bien, pero eso por sí solo no es suficiente para crear un marco

21
00:01:03,370 --> 00:01:05,380
‫del lado del servidor completo como Node.

22
00:01:05,380 --> 00:01:09,100
‫Y es por eso que también tenemos libuv en Node.

23
00:01:09,100 --> 00:01:12,380
‫Y libuv es una biblioteca de código abierto con un

24
00:01:12,380 --> 00:01:15,060
‫fuerte enfoque en E / S asíncrona.

25
00:01:15,060 --> 00:01:16,860
‫Entonces, entrada salida.

26
00:01:16,860 --> 00:01:19,500
‫Esta capa es lo que le da a Node

27
00:01:19,500 --> 00:01:21,790
‫acceso al sistema operativo subyacente de

28
00:01:21,790 --> 00:01:25,240
‫la computadora, al sistema de archivos, a la red y más.

29
00:01:25,240 --> 00:01:28,440
‫Además de eso, libuv también implementa dos características extremadamente importantes

30
00:01:28,440 --> 00:01:30,540
‫de Node. JS, que son

31
00:01:30,540 --> 00:01:34,010
‫el bucle de eventos y también el grupo de subprocesos.

32
00:01:34,010 --> 00:01:37,130
‫Y en términos simples, el bucle de eventos es

33
00:01:37,130 --> 00:01:40,430
‫responsable de manejar tareas fáciles como ejecutar devoluciones de llamada y

34
00:01:40,430 --> 00:01:44,790
‫E / S de red, mientras que el grupo de subprocesos es para trabajos más

35
00:01:44,790 --> 00:01:48,200
‫pesados, como el acceso a archivos o la compresión, o algo así.

36
00:01:48,200 --> 00:01:50,120
‫Pero aprenderá todo sobre eso,

37
00:01:50,120 --> 00:01:52,430
‫sobre el ciclo de eventos y el grupo

38
00:01:52,430 --> 00:01:54,430
‫de subprocesos, en los próximos dos videos.

39
00:01:54,430 --> 00:01:56,080
‫Una cosa importante a

40
00:01:56,080 --> 00:01:59,010
‫tener en cuenta aquí es que libuv está en realidad

41
00:01:59,010 --> 00:02:01,840
‫completamente escrito en C ++ y no en JavaScript.

42
00:02:01,840 --> 00:02:06,840
‫Y el propio V8 también usa código C ++ además de JavaScript.

43
00:02:06,950 --> 00:02:10,150
‫Entonces, Node en sí es un programa

44
00:02:10,150 --> 00:02:14,170
‫escrito en C ++ y JavaScript y no solo en

45
00:02:14,170 --> 00:02:16,530
‫JavaScript como cabría esperar, ¿verdad?

46
00:02:16,530 --> 00:02:19,660
‫Ahora bien, la belleza de esto es que Node. JS une todas

47
00:02:19,660 --> 00:02:22,310
‫estas bibliotecas, sin importar si están

48
00:02:22,310 --> 00:02:25,640
‫escritas en C ++ o JavaScript y luego

49
00:02:25,640 --> 00:02:30,380
‫nos da a los desarrolladores acceso a sus funciones en JavaScript puro.

50
00:02:30,380 --> 00:02:33,090
‫Así que realmente nos proporciona una

51
00:02:33,090 --> 00:02:37,290
‫muy buena capa de abstracción para hacernos la vida mucho más fácil

52
00:02:37,290 --> 00:02:41,200
‫en lugar de tener que lidiar con el código C ++.

53
00:02:41,200 --> 00:02:43,970
‫Sería una experiencia terrible, ¿verdad?

54
00:02:43,970 --> 00:02:47,450
‫De nuevo, esta arquitectura nos permite escribir

55
00:02:47,450 --> 00:02:49,490
‫código JavaScript 100% puro,

56
00:02:49,490 --> 00:02:52,960
‫ejecutándose en Node. JS y aún accede

57
00:02:52,960 --> 00:02:55,490
‫a funciones como la lectura de archivos,

58
00:02:55,490 --> 00:02:57,650
‫que detrás de escena se implementan

59
00:02:57,650 --> 00:03:01,290
‫en libuv u otras bibliotecas en el lenguaje C ++.

60
00:03:01,290 --> 00:03:03,090
‫Y hablando de

61
00:03:03,090 --> 00:03:06,750
‫otras bibliotecas, Node en realidad no solo

62
00:03:06,750 --> 00:03:10,920
‫se basa en V8 y libuv, sino también en

63
00:03:10,920 --> 00:03:15,920
‫http-parser para analizar http, c-ares o algo así para algunas solicitudes

64
00:03:16,420 --> 00:03:21,420
‫de DNS, OpenSSL para keptografía y también zlib para compresión.

65
00:03:21,490 --> 00:03:24,740
‫Y estos no son tan importantes de entender, ¿de acuerdo?

66
00:03:24,740 --> 00:03:27,830
‫Entonces, al final, cuando tengamos todas estas piezas

67
00:03:27,830 --> 00:03:32,030
‫bien encajadas, terminamos con Node. JS listo para ser utilizado

68
00:03:32,030 --> 00:03:35,000
‫en el lado del servidor con las cuatro aplicaciones.

69
00:03:35,000 --> 00:03:37,670
‫Y a continuación, aprenderá más sobre los subprocesos en

70
00:03:37,670 --> 00:03:39,600
‫Node y el grupo de subprocesos.

71
00:03:39,600 --> 00:03:41,663
‫Así que estad atentos a ese.

