1
00:00:00,000 --> 00:00:04,322
[MUSIC]

2
00:00:04,322 --> 00:00:09,700
Прежде чем мы начнем изучать Angular более подробно, давайте зададим себе

3
00:00:09,700 --> 00:00:14,681
фундаментальный вопрос, зачем нам нужны эти фреймворки JavaScript?

4
00:00:14,681 --> 00:00:18,348
Что именно они и что они помогают нам

5
00:00:18,348 --> 00:00:23,160
выполнить, чего мы не можем сделать с помощью стандартного JavaScript?

6
00:00:24,330 --> 00:00:28,610
Давайте рассмотрим некоторые из этих вопросов немного подробно в этой лекции.

7
00:00:30,690 --> 00:00:33,950
Во-первых, почему фреймворки JavaScript?

8
00:00:33,950 --> 00:00:38,470
Очевидно, что из вашего предыдущего опыта работы с JavaScript и

9
00:00:38,470 --> 00:00:44,440
также, возможно, опыт работы с фреймворками на основе веб-интерфейса, такими как Bootstrap и

10
00:00:44,440 --> 00:00:48,780
, использование jQuery, вы более или менее решили, что вы можете

11
00:00:48,780 --> 00:00:53,800
получить большинство вещей, которые вы хотите сделать на веб-сайте выполнено,

12
00:00:53,800 --> 00:00:57,560
, используя все эти инструменты и техники, которые у вас уже есть под рукой.

13
00:00:58,700 --> 00:01:03,940
Действительно, многие успешные веб-сайты могут быть реализованы с помощью

14
00:01:03,940 --> 00:01:07,980
этих простых методов и инструментов.

15
00:01:07,980 --> 00:01:12,840
Но по мере роста сложности вашего приложения

16
00:01:12,840 --> 00:01:19,010
количество манипуляций с DOM, которое необходимо выполнить, и количество обновлений данных

17
00:01:19,010 --> 00:01:23,950
, которые необходимо обрабатывать вручную, становится значительно сложным.

18
00:01:25,770 --> 00:01:30,770
Простые подходы, такие как использование библиотеки jQuery, могут

19
00:01:30,770 --> 00:01:36,200
недостаточно удовлетворить потребности, которые у вас есть под рукой.

20
00:01:36,200 --> 00:01:41,160
Это где наличие хорошо структурированных фреймворков

21
00:01:41,160 --> 00:01:45,380
, таких как Angular, которые полагаются на стандартные,

22
00:01:46,610 --> 00:01:51,820
программные парадигмы или шаблоны разработки программного обеспечения, такие как представление модели

23
00:01:51,820 --> 00:01:57,820
контроллер или модель представления модели или вид модели, что угодно, помогает нам в

24
00:01:57,820 --> 00:02:03,430
реализовать эти веб-сайты эффективно и масштабируемо.

25
00:02:03,430 --> 00:02:07,440
Теперь в этом контексте, мы собираемся поговорить об этом немного более подробно

26
00:02:07,440 --> 00:02:09,430
по мере того, как мы идем в этом курсе.

27
00:02:09,430 --> 00:02:14,870
Мы также поговорим о том, как мы привязываем модель к представлению и

28
00:02:14,870 --> 00:02:19,550
использование контроллеров и моделей представления для выполнения этих вещей.

29
00:02:19,550 --> 00:02:24,320
Будет обсуждаться немного более подробно, как мы рассматриваем Angular в этом курсе.

30
00:02:25,500 --> 00:02:30,900
Позвольте мне быстро напомнить вам о том, что такое библиотека программного обеспечения,

31
00:02:30,900 --> 00:02:35,240
библиотека программного обеспечения представляет собой набор реализаций поведения

32
00:02:35,240 --> 00:02:40,070
, которые вы неоднократно используете в своих приложениях.

33
00:02:40,070 --> 00:02:44,775
Таким образом, эти поведения могут быть реализованы с помощью функций с четко определенными интерфейсами

34
00:02:44,775 --> 00:02:45,643
, поэтому

35
00:02:45,643 --> 00:02:51,480
, что использование их при реализации вашего приложения становится простым.

36
00:02:51,480 --> 00:02:56,610
Если вы занимались программированием на любом языке, вы бы часто

37
00:02:56,610 --> 00:03:01,780
видели, что многие стандартные функции, поддерживаемые

38
00:03:01,780 --> 00:03:07,038
на этих языках, реализованы через библиотеки, которые вы используете.

39
00:03:07,038 --> 00:03:11,775
Например, входные выходные библиотеки и, возможно, даже

40
00:03:11,775 --> 00:03:17,875
библиотеки GUI, которые поддерживают многие стандартные языки программирования.

41
00:03:17,875 --> 00:03:22,377
Это где концепция повторного использования поведения очень,

42
00:03:22,377 --> 00:03:33,847
очень эффективна, потому что мы можем реализовать ее один раз в библиотеке, а затем повторно использовать это поведение везде, где нам нужно в нашем программном приложении.

43
00:03:33,847 --> 00:03:40,477
Это также вносит модульность в способ реализации нашего приложения.

44
00:03:40,477 --> 00:03:46,500
Хорошим примером библиотеки программного обеспечения, которая используется в веб-мире, является jQuery.

45
00:03:47,540 --> 00:03:50,150
Если бы вы взяли предыдущий курс Bootstrap,

46
00:03:50,150 --> 00:03:55,130
вы бы увидели некоторые элементы jQuery в этом курсе.

47
00:03:55,130 --> 00:03:56,360
В этом контексте

48
00:03:56,360 --> 00:04:02,720
позвольте мне также отличить библиотеку программного обеспечения от программной структуры.

49
00:04:02,720 --> 00:04:05,980
Программный фреймворк представляет собой абстракцию

50
00:04:05,980 --> 00:04:10,770
, в которой программное обеспечение обеспечивает такую общую функциональность, а затем предоставляет вам возможность настроить эту функциональность для

51
00:04:10,770 --> 00:04:19,550
реализации решений для вашего конкретного приложения.

52
00:04:19,550 --> 00:04:25,200
Таким образом, вы будете дополнять программную инфраструктуру своим собственным кодом

53
00:04:25,200 --> 00:04:29,490
, чтобы выполнить все, что вы пытаетесь выполнить.

54
00:04:29,490 --> 00:04:33,540
Таким образом, это другой способ мышления о том, как вы

55
00:04:33,540 --> 00:04:38,180
пытаетесь решить проблему в отличие от использования библиотеки программного обеспечения.

56
00:04:38,180 --> 00:04:45,190
Теперь эта программная платформа обеспечивает универсальную многоразовую среду

57
00:04:45,190 --> 00:04:52,090
с определенной функциональностью, которая является частью более крупной программной платформы.

58
00:04:52,090 --> 00:04:57,770
Мы рассмотрим Angular как пример того, как это делается более подробно.

59
00:04:57,770 --> 00:05:02,100
Есть несколько других таких программных фреймворков, которые используются в веб-мире

60
00:05:02,100 --> 00:05:06,400
, включая Ember, Backbone и многие другие.

61
00:05:06,400 --> 00:05:10,380
Теперь здесь, вы, очевидно, думаете о вопросе.

62
00:05:10,380 --> 00:05:13,670
Как отличить библиотеку от фреймворка?

63
00:05:13,670 --> 00:05:17,070
Каковы характерные характеристики каждого и

64
00:05:17,070 --> 00:05:22,070
, почему вы классифицируете один как библиотеку, а другой как структуру?

65
00:05:22,070 --> 00:05:25,040
Где вы проводите различие между ними?

66
00:05:25,040 --> 00:05:26,687
Теперь это я должен сказать,

67
00:05:26,687 --> 00:05:31,033
есть тонкая линия, отделяющая библиотеку от фреймворка.

68
00:05:31,033 --> 00:05:34,883
В зависимости от того, как вы подходите к этому, вы можете рассматривать один или

69
00:05:34,883 --> 00:05:38,480
другой как библиотеку, или фреймворк, и

70
00:05:38,480 --> 00:05:43,000
в зависимости от того, кого вы спрашиваете, некоторые люди могут классифицировать определенный

71
00:05:43,000 --> 00:05:47,796
как библиотечный подход в отличие от рамочного подхода.

72
00:05:47,796 --> 00:05:52,258
Опять же, давайте не будем делить наши волосы о попытке точно

73
00:05:52,258 --> 00:05:56,300
классифицировать вещи в библиотеку или фреймворк.

74
00:05:56,300 --> 00:06:00,330
С нашей точки зрения, если что-то помогает нам выполнить нашу задачу,

75
00:06:00,330 --> 00:06:03,670
, то мы довольны этим подходом.

76
00:06:03,670 --> 00:06:08,570
Опять же, сказав это, давайте немного более подробно различать библиотеку и

77
00:06:08,570 --> 00:06:10,400
фреймворк.

78
00:06:10,400 --> 00:06:13,510
Для того, чтобы понять, как вы приближаетесь

79
00:06:13,510 --> 00:06:17,680
, что весь способ написания вашего приложения.

80
00:06:17,680 --> 00:06:22,300
Когда вы используете библиотеку в отличие от использования фреймворка.

81
00:06:23,820 --> 00:06:28,250
Поэтому в этом контексте следующее определение, которое я заимствовал

82
00:06:28,250 --> 00:06:33,520
из документации AngularJS, я чувствую

83
00:06:33,520 --> 00:06:38,800
дает немного более четкое различие между библиотекой и структурой.

84
00:06:38,800 --> 00:06:44,720
Таким образом, это определение говорит, что библиотека представляет собой набор функций

85
00:06:44,720 --> 00:06:50,740
, которые полезны для написания веб-приложений, примером чего является jQuery.

86
00:06:50,740 --> 00:06:54,270
Так что это набор функций, которые доступны вам.

87
00:06:54,270 --> 00:06:59,380
Вы пользуетесь этими функциями при реализации своего программного обеспечения

88
00:06:59,380 --> 00:07:01,710
решения вашей проблемы.

89
00:07:03,150 --> 00:07:08,370
Когда вы используете этот подход, именно вы программист, который всегда контролирует

90
00:07:08,370 --> 00:07:13,340
того, как вы используете функции, предоставляемые

91
00:07:13,340 --> 00:07:17,290
библиотекой, чтобы выполнить все, что вы пытаетесь сделать.

92
00:07:18,630 --> 00:07:23,540
Рамки с другой стороны - это конкретная реализация или

93
00:07:23,540 --> 00:07:27,047
конкретная реализация веб-приложения,

94
00:07:27,047 --> 00:07:31,650
, где сама структура дает широкую общую структуру для

95
00:07:31,650 --> 00:07:35,470
вашего приложения, а затем вас просят заполнить детали.

96
00:07:36,570 --> 00:07:41,680
Сведения, необходимые для настройки этого приложения

97
00:07:41,680 --> 00:07:46,030
для решения конкретной проблемы, которую вы пытаетесь решить.

98
00:07:46,030 --> 00:07:52,040
Таким образом, здесь структура берет полный контроль над тем, как работают эти приложения, и

99
00:07:52,040 --> 00:08:00,870
, затем он вызовет ваш код, предоставленный пользователем, который помогает ему выполнить работу.

100
00:08:00,870 --> 00:08:04,620
Код конкретного приложения - это то, что вы напишете и

101
00:08:04,620 --> 00:08:09,830
поставите его, и это станет частью всего приложения,

102
00:08:09,830 --> 00:08:14,510
вместе с фреймворком, и это помогает выполнить вашу задачу.

103
00:08:14,510 --> 00:08:21,722
Опять же, это может не полностью, ясно позволить вам понять различие между фреймворком и библиотекой.

104
00:08:21,722 --> 00:08:23,155
Давайте снова, как я уже сказал,

105
00:08:23,155 --> 00:08:26,878
давайте не будем раскладывать наши волосы, пытаясь выяснить все эти детали.

106
00:08:26,878 --> 00:08:31,815
То, что нам нужно понять, это Angular - это пример фреймворка и

107
00:08:31,815 --> 00:08:37,187
, когда вы пишете приложения в Angular, структура берет под контроль и

108
00:08:37,187 --> 00:08:42,212
вы в основном предоставляете недостающие части кода, которые необходимы

109
00:08:42,212 --> 00:08:47,610
для настройки фреймворка для реализации вашего конкретного веб-приложения.

110
00:08:49,070 --> 00:08:52,440
Изучаем рамки слов немного более подробно.

111
00:08:52,440 --> 00:08:58,000
Когда мы говорим о фреймворке, один из важных аспектов о том, как работает фреймворк

112
00:08:58,000 --> 00:09:04,040
, суммируется этим термином называется голливудским принципом.

113
00:09:04,040 --> 00:09:06,600
Что именно я имею в виду под Голливудским принципом?

114
00:09:06,600 --> 00:09:11,870
Теперь, если вы знаете, как работает голливудский агент, когда актер или

115
00:09:11,870 --> 00:09:17,100
актриса хочет найти работу в Голливуде,

116
00:09:17,100 --> 00:09:21,550
они подойдут к агенту, и агент обычно скажет вам,

117
00:09:21,550 --> 00:09:25,150
мы перезвоним вам, когда у нас будет какая-то работа для вас.

118
00:09:25,150 --> 00:09:27,400
Не звони нам, мы вам перезвоним.

119
00:09:27,400 --> 00:09:30,860
Таким образом, по сути рамки отражают тот же принцип.

120
00:09:30,860 --> 00:09:35,440
Структура говорит, что вы поставляете все, что можете сделать, и

121
00:09:35,440 --> 00:09:41,000
фреймворк будет вызывать ваш предоставленный код всякий раз, когда ему нужно что-то сделать.

122
00:09:42,470 --> 00:09:48,442
Именно поэтому мы используем этот термин Голливудский принцип в мире программного обеспечения.

123
00:09:49,540 --> 00:09:54,575
Это также можно суммировать с помощью этого другого выражения

124
00:09:54,575 --> 00:09:57,685
, называемого Inversion of Control.

125
00:09:57,685 --> 00:10:01,715
Когда вы используете библиотеку, вы, программист, контролируете, а

126
00:10:01,715 --> 00:10:07,435
вы диктуете, как работает код и как выполняется код.

127
00:10:08,752 --> 00:10:10,092
Когда вы используете фреймворк,

128
00:10:10,092 --> 00:10:14,712
вы фактически отдаете свои привилегии фреймворку, а

129
00:10:14,712 --> 00:10:21,360
позволяет этой структуре взять на себя ответственность, а затем диктовать, как выполняется приложение.

130
00:10:21,360 --> 00:10:28,000
Теперь, хотя вы можете показаться, что это похоже на сдавание вашей независимости,

131
00:10:28,000 --> 00:10:32,920
, конечно, это не так, если фреймворк имеет определенную причину для того, чтобы взять

132
00:10:32,920 --> 00:10:40,040
на себя ответственность за выполнение того, что он должен сделать от вашего имени.

133
00:10:40,040 --> 00:10:45,050
Так что это место, где мы будем проводить различие между

134
00:10:45,050 --> 00:10:47,750
двумя подходами к написанию программ.

135
00:10:47,750 --> 00:10:51,320
Один назывался императивным способом написания программ, а

136
00:10:51,320 --> 00:10:54,910
второй назывался декларативным способом написания программ.

137
00:10:54,910 --> 00:10:57,550
Если вы сделали любой курс языков программирования,

138
00:10:57,550 --> 00:11:01,780
вы увидите, что языки программирования обычно используют один или

139
00:11:01,780 --> 00:11:08,380
другой подход, который эта поддержка в написании программ.

140
00:11:08,380 --> 00:11:10,120
В императивном программировании

141
00:11:10,120 --> 00:11:15,480
вы будете указывать функции программы шаг за шагом.

142
00:11:15,480 --> 00:11:18,020
Так вы полностью и контролируете и

143
00:11:18,020 --> 00:11:22,830
то вы, по сути, говорите, что это то, как вы должны выполнить задачу и

144
00:11:22,830 --> 00:11:27,190
, то вы будете записывать шаг за шагом способ выполнения задачи.

145
00:11:27,190 --> 00:11:32,520
Таким образом, вы, как программист, полностью контролируете в указании точных шагов

146
00:11:32,520 --> 00:11:33,720
для решения проблемы.

147
00:11:34,750 --> 00:11:37,550
В декларативном программировании, с другой стороны,

148
00:11:37,550 --> 00:11:42,210
, который эффективно используется фреймворками, такими как Angular.

149
00:11:42,210 --> 00:11:47,560
Вы по существу говорите, что это то, что я хочу достичь, и

150
00:11:47,560 --> 00:11:52,130
это то, как я настраивал то, что конкретно я хочу достичь.

151
00:11:52,130 --> 00:11:55,420
Как это делается, меня не волнует.

152
00:11:55,420 --> 00:11:59,580
Но я передам эту ответственность рамкам.

153
00:11:59,580 --> 00:12:04,239
Итак, по сути, вы предоставляете свой пользовательский код для фреймворка и

154
00:12:04,239 --> 00:12:09,470
говоря, что теперь это то, что я хочу, чтобы вы сделали, вы берете на себя ответственность и делаете это.

155
00:12:09,470 --> 00:12:13,920
Таким образом, в декларативном программировании вы только объявляете, что является вашим намерением

156
00:12:13,920 --> 00:12:18,379
, и позволяете фреймворку решать, как это будет достигнуто.

157
00:12:18,379 --> 00:12:24,675
Два разных способа мышления о том, как вы подходите к решению своей проблемы.

158
00:12:24,675 --> 00:12:29,268
Это то, что вы должны получить голову вокруг, когда вы узнаете

159
00:12:29,268 --> 00:12:34,346
Angular, потому что если вы пришли из императивного мира программирования,

160
00:12:34,346 --> 00:12:38,214
ваша общая тенденция будет контролировать все и

161
00:12:38,214 --> 00:12:42,188
диктовать шаг за шагом, как вы хотите достичь.

162
00:12:42,188 --> 00:12:47,370
Таким образом, требуется некоторое время, чтобы обернуть голову вокруг этой концепции, что вы

163
00:12:47,370 --> 00:12:49,570
не обязательно контролируете каждый шаг.

164
00:12:49,570 --> 00:12:54,550
Вместо этого вы говорите фреймворку, кем вы хотите стать, чтобы быть реализовано.

165
00:12:54,550 --> 00:12:59,120
И возложите ответственность на фреймворк, чтобы выполнить

166
00:12:59,120 --> 00:13:01,640
задачу от вашего имени.

167
00:13:01,640 --> 00:13:07,880
Опять же, не беспокойтесь об этом и не читайте слишком много в этих определениях.

168
00:13:07,880 --> 00:13:13,640
Это из академического интереса, они являются основой для определения различных моделей поведения

169
00:13:13,640 --> 00:13:19,080
с точки зрения разработчика веб-приложений.

170
00:13:19,080 --> 00:13:21,890
Все, о чем вы заботитесь, это как вы выполняете свою работу

171
00:13:21,890 --> 00:13:27,398
с использованием Angular в качестве структуры веб-приложений.

172
00:13:27,398 --> 00:13:30,370
Приходя к миру фреймворков JavaScript,

173
00:13:30,370 --> 00:13:35,140
вы услышите много терминов, используемых с фреймворками JavaScript.

174
00:13:35,140 --> 00:13:39,134
Вы часто слышите, как люди говорят о чем-то, называемом одним приложением pPage

175
00:13:39,134 --> 00:13:45,110
или союзным термином, называемым богатым интернет-приложением.

176
00:13:45,110 --> 00:13:48,980
Опять же, мы рассмотрим, что это значит в одном из последующих уроков

177
00:13:50,030 --> 00:13:54,570
в этом курсе в контексте Angular.

178
00:13:54,570 --> 00:13:58,685
Аналогичным образом, вы также услышите людей, которые говорят о Model-View-Controller,

179
00:13:58,685 --> 00:14:01,920
Model-View-ViewModel, Model-View-Whated и так далее.

180
00:14:02,930 --> 00:14:07,550
Опять же, это, как я уже сказал, парадигма архитектуры программного обеспечения

181
00:14:07,550 --> 00:14:11,950
, которую мы используем для разработки программных приложений.

182
00:14:11,950 --> 00:14:16,190
Мы поговорим немного более подробно об этом в контексте Angular,

183
00:14:16,190 --> 00:14:18,540
в одном из последующих уроков.

184
00:14:18,540 --> 00:14:23,945
И в этом контексте вы услышите в Angular такие вещи, как привязка данных, маршрутизация

185
00:14:23,945 --> 00:14:28,605
, одностороннее и двустороннее связывание данных и так далее.

186
00:14:28,605 --> 00:14:34,170
Опять же, не сбивайся со всех этих условий.

187
00:14:34,170 --> 00:14:39,000
Мы поймем их по мере прохождения этого курса.

188
00:14:39,000 --> 00:14:43,370
Точно так же вы часто слышите о масштабируемом,

189
00:14:43,370 --> 00:14:47,120
многоразовом, поддерживаемом коде JavaScript и так далее.

190
00:14:47,120 --> 00:14:50,180
Это замечательные концепции или

191
00:14:50,180 --> 00:14:55,960
замечательные атрибуты, которые мы хотим достичь с помощью нашего приложения.

192
00:14:55,960 --> 00:15:02,650
Мы увидим, как Angular помогает нам сделать это в этом конкретном курсе.

193
00:15:02,650 --> 00:15:06,760
И еще один термин, о котором вы часто будете слышать, это

194
00:15:06,760 --> 00:15:08,040
тестовое развитие.

195
00:15:09,310 --> 00:15:13,880
Angular действительно поддерживает тестовую разработку, поэтому даже перед разработкой

196
00:15:13,880 --> 00:15:19,740
вашего приложения вы напишите тест, чтобы убедиться, что код

197
00:15:19,740 --> 00:15:24,040
, который вы реализуете, фактически выполняет то, что вы пытаетесь выполнить.

198
00:15:24,040 --> 00:15:28,480
Мы рассмотрим немного тестового развития к более поздней части

199
00:15:28,480 --> 00:15:30,250
этого курса.

200
00:15:30,250 --> 00:15:35,080
Хотя, если вы хотите принять этот тестовый подход разработки для

201
00:15:35,080 --> 00:15:38,050
, реализующих приложения, это замечательный подход.

202
00:15:38,050 --> 00:15:45,890
Но прежде чем мы перейдем к этому моменту, нам лучше понять, что само фреймворк помогает нам достичь.

203
00:15:45,890 --> 00:15:50,680
Итак, в этом курсе я кратко остановлюсь на тестируемом развитии.

204
00:15:50,680 --> 00:15:55,725
Но если бы вы внедряли реальное угловое приложение, вы бы приняли

205
00:15:55,725 --> 00:16:01,335
подход разработки, основанный на тестировании, для разработки угловых приложений.

206
00:16:02,565 --> 00:16:09,245
Есть много, много JavaScript фреймворков, которые доступны в реальном мире.

207
00:16:09,245 --> 00:16:11,645
Угловое является началом.

208
00:16:11,645 --> 00:16:14,115
Угловой в своем более раннем воплощении

209
00:16:14,115 --> 00:16:19,170
как AngularJS был одним из самых популярных фреймворков JavaScript.

210
00:16:19,170 --> 00:16:22,510
Мы рассмотрим Angular более подробно, как мы идем дальше.

211
00:16:22,510 --> 00:16:27,060
Аналогично, если вы посмотрите на мир фреймворков JavaScript,

212
00:16:27,060 --> 00:16:32,160
вы услышите, как люди говорят о Ember, Backbone, React.

213
00:16:32,160 --> 00:16:37,870
Хотя некоторые люди классифицируют React как библиотеку, а не структуру.

214
00:16:37,870 --> 00:16:40,130
Опять же, в зависимости от того, кого вы спрашиваете,

215
00:16:40,130 --> 00:16:45,770
некоторые люди могут сказать, что это фреймворк, а некоторые могут сказать, что это просто библиотека.

216
00:16:45,770 --> 00:16:50,960
Опять же, давайте не будем слишком беспокоиться о том, что это такое, но это доступно для

217
00:16:50,960 --> 00:16:55,898
нас как подход к реализации сложных веб-приложений.

218
00:16:55,898 --> 00:17:02,880
Аналогичным образом, другие небольшие фреймворки, такие как Aurelia, Meteor, Polymer,

219
00:17:02,880 --> 00:17:09,818
Google Polymer, который является предстоящим фреймворком, Knockout, Vue и многие другие.

220
00:17:09,818 --> 00:17:13,650
И все больше добавляется к этому каждый день.

221
00:17:13,650 --> 00:17:17,320
Что такое колорит фреймворка JavaScript сегодня?

222
00:17:17,320 --> 00:17:17,820
Угловой.

223
00:17:18,880 --> 00:17:25,710
Он только что вышел из фазы развития и вышел в реальный мир.

224
00:17:25,710 --> 00:17:31,760
И люди борются за разработку приложений с использованием Angular.

225
00:17:31,760 --> 00:17:35,910
Так вот почему мы заинтересованы в Angular в этом конкретном курсе.

226
00:17:35,910 --> 00:17:38,450
Теперь, как только вы узнаете один из них,

227
00:17:38,450 --> 00:17:42,860
вы начнете понимать нежный подход, который используют эти фреймворки.

228
00:17:42,860 --> 00:17:47,172
Возможно, вы сможете подобрать другие фреймворки аналогичным образом, используя

229
00:17:47,172 --> 00:17:51,930
общие концепции, которые вы изучаете в этом конкретном курсе.

230
00:17:51,930 --> 00:17:55,249
[МУЗЫКА]