﻿1
00:00:01,270 --> 00:00:04,520
‫Narrador: Agora, antes de mergulhar em algum código NodeJS, vamos

2
00:00:04,520 --> 00:00:06,700
‫fazer uma visão geral de alto nível

3
00:00:06,700 --> 00:00:08,990
‫do que o NodeJS realmente é, para

4
00:00:08,990 --> 00:00:11,800
‫que o usamos e por que usamos o Node

5
00:00:11,800 --> 00:00:13,843
‫em vez de outras tecnologias.

6
00:00:15,410 --> 00:00:17,570
‫Portanto, a definição oficial é que

7
00:00:17,570 --> 00:00:19,480
‫NodeJS é um JavaScript

8
00:00:19,480 --> 00:00:23,783
‫Runtime construído no mecanismo V8 JavaScript de código aberto do Google.

9
00:00:23,783 --> 00:00:26,279
‫Agora, o que isso realmente significa?

10
00:00:26,279 --> 00:00:29,289
‫Bem, vamos começar tentando entender o que

11
00:00:29,289 --> 00:00:31,174
‫o JavaScript Runtime

12
00:00:31,174 --> 00:00:33,913
‫e o motor V8 realmente são.

13
00:00:35,190 --> 00:00:37,914
‫Então, você provavelmente já usou JavaScript

14
00:00:37,914 --> 00:00:42,120
‫antes e provavelmente sempre esteve apenas dentro de um navegador, certo?

15
00:00:42,120 --> 00:00:45,400
‫Porque qualquer navegador entende HTML, CSS e

16
00:00:45,400 --> 00:00:49,250
‫JavaScript nativamente e não importa se você escreve JavaScript

17
00:00:49,250 --> 00:00:51,760
‫vanilla ou alguma estrutura de

18
00:00:51,760 --> 00:00:54,713
‫JavaScript como React ou código Angular,

19
00:00:54,713 --> 00:00:56,370
‫isso é

20
00:00:56,370 --> 00:00:59,920
‫tudo JavaScript que é executado direto no navegador.

21
00:00:59,920 --> 00:01:01,500
‫Portanto, neste caso, o

22
00:01:01,500 --> 00:01:03,454
‫navegador é o JavaScript Runtime.

23
00:01:03,454 --> 00:01:06,110
‫Mas, e se pudéssemos tirar o

24
00:01:06,110 --> 00:01:08,311
‫JavaScript do navegador e

25
00:01:08,311 --> 00:01:10,988
‫simplesmente executar o código JavaScript em outro

26
00:01:10,988 --> 00:01:14,860
‫lugar, sem todas as restrições que temos no navegador?

27
00:01:14,860 --> 00:01:17,580
‫Bem, descobrimos que realmente podemos.

28
00:01:17,580 --> 00:01:19,955
‫E a solução para isso, como

29
00:01:19,955 --> 00:01:23,425
‫você pode imaginar, é chamada de NodeJS e, portanto, o

30
00:01:23,425 --> 00:01:25,830
‫Node JS é apenas outro JavaScript Runtime.

31
00:01:25,830 --> 00:01:29,252
‫É como um container, como um ambiente,

32
00:01:29,252 --> 00:01:32,010
‫no qual um programa escrito

33
00:01:32,010 --> 00:01:37,010
‫em JavaScript pode ser executado, mas fora de qualquer navegador.

34
00:01:37,230 --> 00:01:39,850
‫Tudo bem, na verdade é um pouco mais complexo

35
00:01:39,850 --> 00:01:42,908
‫do que isso, é claro, mas por enquanto, isso é o suficiente.

36
00:01:42,908 --> 00:01:45,380
‫Agora, quem realmente executa o

37
00:01:45,380 --> 00:01:47,438
‫código senão o navegador?

38
00:01:47,438 --> 00:01:50,070
‫E é aí que o motor

39
00:01:50,070 --> 00:01:52,770
‫V8 desenvolvido pelo Google entra em jogo.

40
00:01:52,770 --> 00:01:55,420
‫Porque é exatamente onde o

41
00:01:55,420 --> 00:01:59,800
‫código JavaScript será analisado e executado no NodeJS, certo?

42
00:01:59,800 --> 00:02:02,819
‫Portanto, espero que agora a definição de

43
00:02:02,819 --> 00:02:07,116
‫NodeJS como um JavaScript Runtime no mecanismo V8 JavaScript faça muito

44
00:02:07,116 --> 00:02:10,104
‫mais sentido e, novamente, esta é apenas

45
00:02:10,104 --> 00:02:12,742
‫uma visão geral de alto

46
00:02:12,742 --> 00:02:16,060
‫nível do que é Node e como funciona.

47
00:02:16,060 --> 00:02:18,430
‫Vamos entrar em muitos detalhes sobre

48
00:02:18,430 --> 00:02:20,926
‫como o Node realmente funciona nos bastidores

49
00:02:20,926 --> 00:02:23,860
‫na próxima seção, mas neste ponto, eu só quero

50
00:02:23,860 --> 00:02:26,152
‫que você tenha uma visão

51
00:02:26,152 --> 00:02:28,810
‫geral rápida para que possa começar a aprender

52
00:02:28,810 --> 00:02:32,203
‫os fundamentos do NodeJS na prática ao longo esta seção.

53
00:02:34,000 --> 00:02:36,230
‫De qualquer forma, agora que

54
00:02:36,230 --> 00:02:38,400
‫temos JavaScript fora do navegador

55
00:02:38,400 --> 00:02:40,704
‫em um tipo de ambiente autônomo

56
00:02:40,704 --> 00:02:44,058
‫que apenas NodeJS, podemos fazer muito mais coisas com

57
00:02:44,058 --> 00:02:46,690
‫JavaScript que eram completamente impossíveis antes, como

58
00:02:46,690 --> 00:02:48,254
‫acessar o sistema

59
00:02:48,254 --> 00:02:50,515
‫de arquivos, ou melhores recursos de

60
00:02:50,515 --> 00:02:53,054
‫rede não são possíveis com O NodeJS

61
00:02:53,054 --> 00:02:55,630
‫e todos esses fatores juntos nos fornecem

62
00:02:55,630 --> 00:02:59,750
‫as condições perfeitas para usar o NodeJS como um servidor da web,

63
00:02:59,750 --> 00:03:02,327
‫o que significa que agora podemos finalmente

64
00:03:02,327 --> 00:03:05,550
‫usar o JavaScript no lado do servidor de desenvolvimento

65
00:03:05,550 --> 00:03:08,020
‫da web para construir aplicativos de rede

66
00:03:08,020 --> 00:03:10,810
‫rápidos e altamente escalonáveis para alimentar o back-end

67
00:03:10,810 --> 00:03:13,540
‫de todos para sites ou aplicativos da web.

68
00:03:13,540 --> 00:03:15,990
‫E isso é absolutamente

69
00:03:15,990 --> 00:03:19,030
‫fantástico e revolucionário para o desenvolvimento web.

70
00:03:19,030 --> 00:03:22,103
‫Portanto, vamos agora dar uma olhada em alguns casos de uso

71
00:03:22,103 --> 00:03:25,703
‫para o Node e por que ele se encaixa tão bem no desenvolvimento de back-end.

72
00:03:27,010 --> 00:03:29,430
‫E a primeira coisa sobre a qual precisamos

73
00:03:29,430 --> 00:03:31,060
‫falar é o fato

74
00:03:31,060 --> 00:03:34,603
‫de que os aplicativos Node são tão rápidos e escaláveis porque

75
00:03:34,603 --> 00:03:36,705
‫o NodeJS é de thread único

76
00:03:36,705 --> 00:03:40,110
‫baseado em um modelo de E / S não bloqueado

77
00:03:40,110 --> 00:03:43,932
‫e orientado por eventos que torna o NodeJS muito leve e eficiente.

78
00:03:43,932 --> 00:03:47,140
‫Agora, isso, é claro, parece super complicado, eu sei,

79
00:03:47,140 --> 00:03:50,040
‫mas mais uma vez vamos falar sobre o

80
00:03:50,040 --> 00:03:52,146
‫que tudo isso significa exatamente um

81
00:03:52,146 --> 00:03:54,110
‫pouco mais tarde no curso.

82
00:03:54,110 --> 00:03:56,250
‫Mas, por enquanto, apenas tenha em

83
00:03:56,250 --> 00:03:59,052
‫mente que o Node é perfeito para criar

84
00:03:59,052 --> 00:04:02,910
‫aplicativos da web com uso intensivo de dados, super rápidos e escalonáveis.

85
00:04:02,910 --> 00:04:06,280
‫E isso torna o NodeJS um ajuste perfeito para construir

86
00:04:06,280 --> 00:04:08,580
‫todos os diferentes tipos de

87
00:04:08,580 --> 00:04:11,830
‫aplicativos, como construir uma API com um banco de

88
00:04:11,830 --> 00:04:16,830
‫dados por trás dele e, de preferência, um banco de dados NoSQL não relacional

89
00:04:17,090 --> 00:04:20,250
‫como o MongoDB e isso é exatamente o que

90
00:04:20,250 --> 00:04:24,568
‫faremos posteriormente neste curso, enquanto mergulhe cada vez mais fundo no NodeJS.

91
00:04:24,568 --> 00:04:27,350
‫Mas, é claro, existem todos os tipos de

92
00:04:27,350 --> 00:04:30,007
‫outros aplicativos que podemos construir como aplicativos de

93
00:04:30,007 --> 00:04:33,739
‫streaming de dados, como YouTube ou Netflix, aplicativos de bate-papo em

94
00:04:33,739 --> 00:04:36,600
‫tempo real ou mesmo aplicativos da web do

95
00:04:36,600 --> 00:04:39,430
‫lado do servidor onde todo o conteúdo é

96
00:04:39,430 --> 00:04:42,055
‫simplesmente gerado diretamente no servidor, como

97
00:04:42,055 --> 00:04:44,684
‫você vê, as possibilidades são realmente infinitas.

98
00:04:44,684 --> 00:04:47,650
‫Mas, na verdade, também existe um tipo de aplicativo

99
00:04:47,650 --> 00:04:49,990
‫que não devemos construir com o Node.

100
00:04:49,990 --> 00:04:51,890
‫E isso é quando

101
00:04:51,890 --> 00:04:54,380
‫nosso aplicativo precisa de algum processamento superpesado

102
00:04:54,380 --> 00:04:57,750
‫do lado do servidor, como manipulação de imagens, conversão de

103
00:04:57,750 --> 00:05:01,270
‫vídeo, compactação de arquivo ou qualquer coisa assim, tudo bem.

104
00:05:01,270 --> 00:05:04,930
‫E você aprenderá por que isso acontece quando nos aprofundarmos

105
00:05:04,930 --> 00:05:07,410
‫em como o Node realmente funciona.

106
00:05:07,410 --> 00:05:09,500
‫Portanto, neste caso, é

107
00:05:09,500 --> 00:05:14,010
‫melhor usar algo como Ruby on Rails, PHP ou Python.

108
00:05:14,010 --> 00:05:16,460
‫Como o NodeJS simplesmente não foi

109
00:05:16,460 --> 00:05:19,910
‫desenvolvido para esses casos de uso e embora existam soluções

110
00:05:19,910 --> 00:05:22,480
‫para lidar com eles, devemos sempre usar

111
00:05:22,480 --> 00:05:25,157
‫a ferramenta certa para a tarefa em questão.

112
00:05:25,157 --> 00:05:28,361
‫Ok, então esses são os tipos de

113
00:05:28,361 --> 00:05:31,977
‫aplicativos que podemos e não podemos construir usando o NodeJS.

114
00:05:31,977 --> 00:05:34,780
‫E se você escolher usar o Node,

115
00:05:34,780 --> 00:05:37,540
‫bem, então você está em

116
00:05:37,540 --> 00:05:41,206
‫boa companhia porque muitas empresas importantes como Netflix, Uber,

117
00:05:41,206 --> 00:05:45,140
‫PayPal, Ebay e muitas outras já começaram a usar o

118
00:05:45,140 --> 00:05:48,910
‫NodeJS, o que realmente prova que a tecnologia é

119
00:05:48,910 --> 00:05:52,850
‫estável o suficiente neste ponto para ser usado na produção.

120
00:05:52,850 --> 00:05:56,125
‫Agora, é claro que há mais razões para usar o

121
00:05:56,125 --> 00:05:59,040
‫Node, e a maior delas é provavelmente que usar

122
00:05:59,040 --> 00:06:01,650
‫a mesma linguagem em toda a pilha,

123
00:06:01,650 --> 00:06:03,758
‫tanto no front-end quanto no

124
00:06:03,758 --> 00:06:07,420
‫back-end, é muito mais fácil para você ou para sua equipe.

125
00:06:07,420 --> 00:06:09,010
‫Primeiro, você não

126
00:06:09,010 --> 00:06:11,070
‫precisa aprender uma nova linguagem

127
00:06:11,070 --> 00:06:13,580
‫de programação para construir seu back-end e,

128
00:06:13,580 --> 00:06:15,824
‫também, não precisa ficar alternando entre

129
00:06:15,824 --> 00:06:18,450
‫as linguagens, o que tornará todo o processo

130
00:06:18,450 --> 00:06:20,533
‫de construção mais rápido e eficiente.

131
00:06:20,533 --> 00:06:23,107
‫Acredite em mim, é realmente

132
00:06:23,107 --> 00:06:26,230
‫incrível poder usar JavaScript para construir seu

133
00:06:26,230 --> 00:06:29,215
‫aplicativo inteiro do início ao fim.

134
00:06:29,215 --> 00:06:31,727
‫É absolutamente fantástico.

135
00:06:31,727 --> 00:06:34,150
‫E outra grande razão para

136
00:06:34,150 --> 00:06:38,502
‫usar o Node é que existe uma enorme biblioteca de pacotes

137
00:06:38,502 --> 00:06:41,450
‫ou módulos de código aberto, como também

138
00:06:41,450 --> 00:06:43,884
‫podemos chamá-los, disponível para todos gratuitamente.

139
00:06:43,884 --> 00:06:47,190
‫Chama-se NPM e provavelmente você já ouviu falar dele

140
00:06:47,190 --> 00:06:48,976
‫ou já o usou.

141
00:06:48,976 --> 00:06:51,170
‫E, é claro, também começaremos

142
00:06:51,170 --> 00:06:53,563
‫a usar pacotes direto na seção.

143
00:06:54,430 --> 00:06:56,920
‫E, finalmente, também é bom

144
00:06:56,920 --> 00:06:59,420
‫saber que existe uma enorme comunidade

145
00:06:59,420 --> 00:07:02,020
‫ativa de desenvolvedores Node por aí que

146
00:07:02,020 --> 00:07:05,650
‫estão constantemente melhorando o NodeJS e ajudando iniciantes como você.

147
00:07:05,650 --> 00:07:08,670
‫E, para que você possa realmente contar com

148
00:07:08,670 --> 00:07:11,929
‫a tecnologia para todos os seus projetos nos próximos anos.

149
00:07:11,929 --> 00:07:15,343
‫Ok, então essa foi uma breve introdução

150
00:07:15,343 --> 00:07:20,040
‫e visão geral do NodeJS e alguns de seus casos de uso.

151
00:07:20,040 --> 00:07:21,920
‫Portanto, no restante desta seção,

152
00:07:21,920 --> 00:07:23,810
‫usaremos o Node para criar um

153
00:07:23,810 --> 00:07:25,950
‫servidor da web muito simples e

154
00:07:25,950 --> 00:07:28,750
‫construir uma API extremamente simples, para que você

155
00:07:28,750 --> 00:07:30,160
‫possa se familiarizar

156
00:07:30,160 --> 00:07:32,763
‫com os princípios básicos do desenvolvimento do Node.

