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

2
00:00:04,322 --> 00:00:09,700
Trước khi chúng ta bắt đầu kiểm tra Angular một cách chi tiết hơn, chúng ta hãy tự hỏi mình

3
00:00:09,700 --> 00:00:14,681
câu hỏi cơ bản, tại sao chúng ta cần các framework JavaScript này?

4
00:00:14,681 --> 00:00:18,348
Chính xác họ là gì, và những gì họ giúp chúng tôi

5
00:00:18,348 --> 00:00:23,160
thực hiện mà chúng tôi không thể làm bằng cách sử dụng JavaScript chuẩn?

6
00:00:24,330 --> 00:00:28,610
Chúng ta hãy xem xét một số câu hỏi trong một chút chi tiết trong bài giảng này.

7
00:00:30,690 --> 00:00:33,950
Đầu tiên, tại sao các framework JavaScript?

8
00:00:33,950 --> 00:00:38,470
Rõ ràng, từ kinh nghiệm trước đây của bạn với JavaScript và

9
00:00:38,470 --> 00:00:44,440
cũng có thể trải nghiệm với các framework dựa trên giao diện người dùng web như Bootstrap và việc

10
00:00:44,440 --> 00:00:48,780
sử dụng jQuery, bạn nhiều hơn hoặc ít nhận ra rằng bạn có thể

11
00:00:48,780 --> 00:00:53,800
nhận được hầu hết những điều mà bạn muốn thực hiện trên một trang web hoàn thành,

12
00:00:53,800 --> 00:00:57,560
sử dụng tất cả các công cụ này và kỹ thuật mà bạn đã có trong tay.

13
00:00:58,700 --> 00:01:03,940
Thật vậy, nhiều trang web thành công có thể được thực hiện bằng cách sử dụng

14
00:01:03,940 --> 00:01:07,980
các kỹ thuật và công cụ đơn giản này.

15
00:01:07,980 --> 00:01:12,840
Nhưng khi sự phức tạp của ứng dụng của bạn phát triển,

16
00:01:12,840 --> 00:01:19,010
số lượng thao tác DOM cần phải được thực hiện và số lượng

17
00:01:19,010 --> 00:01:23,950
cập nhật dữ liệu cần phải xử lý thủ công trở nên phức tạp đáng kể.

18
00:01:25,770 --> 00:01:30,770
Các phương pháp tiếp cận đơn giản như sử dụng thư viện jQuery có thể

19
00:01:30,770 --> 00:01:36,200
không đủ giải quyết các nhu cầu mà bạn có trong tay.

20
00:01:36,200 --> 00:01:41,160
Đây là nơi mà sự sẵn có của các framework cấu trúc tốt

21
00:01:41,160 --> 00:01:45,380
như Angular dựa vào tiêu chuẩn, mô hình

22
00:01:46,610 --> 00:01:51,820
kỹ thuật phần mềm hoặc mô hình kỹ thuật phần mềm như bộ

23
00:01:51,820 --> 00:01:57,820
điều khiển xem mô hình hoặc mô hình xem mô hình hoặc xem mô hình bất cứ điều gì, giúp chúng tôi

24
00:01:57,820 --> 00:02:03,430
thực hiện các web ứng dụng một cách hiệu quả và có thể mở rộng.

25
00:02:03,430 --> 00:02:07,440
Bây giờ trong bối cảnh này, chúng ta sẽ có thể nói về điều này một chút chi tiết hơn

26
00:02:07,440 --> 00:02:09,430
khi chúng ta tiến hành trong khóa học này.

27
00:02:09,430 --> 00:02:14,870
Chúng ta cũng sẽ nói về cách chúng ta ràng buộc các mô hình với một cái nhìn và

28
00:02:14,870 --> 00:02:19,550
việc sử dụng các bộ điều khiển và các mô hình xem để thực hiện những điều này.

29
00:02:19,550 --> 00:02:24,320
Sẽ được thảo luận chi tiết hơn một chút khi chúng tôi kiểm tra góc trong khóa học này.

30
00:02:25,500 --> 00:02:30,900
Hãy để tôi nhanh chóng nhắc nhở bạn về một thư viện phần mềm là gì,

31
00:02:30,900 --> 00:02:35,240
một thư viện phần mềm là một tập hợp các triển khai

32
00:02:35,240 --> 00:02:40,070
hành vi mà bạn sử dụng nhiều lần trong các ứng dụng của bạn.

33
00:02:40,070 --> 00:02:44,775
Vì vậy, những hành vi này có thể được thực hiện bằng cách sử dụng các hàm với các

34
00:02:44,775 --> 00:02:45,643
giao diện được xác định rõ

35
00:02:45,643 --> 00:02:51,480
ràng để sử dụng chúng trong việc triển khai ứng dụng của bạn trở nên đơn giản.

36
00:02:51,480 --> 00:02:56,610
Nếu bạn đã thực hiện lập trình bằng bất kỳ ngôn ngữ nào, bạn sẽ thường

37
00:02:56,610 --> 00:03:01,780
thấy rằng nhiều chức năng tiêu chuẩn được hỗ trợ

38
00:03:01,780 --> 00:03:07,038
trong các ngôn ngữ này được thực hiện thông qua các thư viện mà bạn sử dụng.

39
00:03:07,038 --> 00:03:11,775
Ví dụ, các thư viện đầu ra đầu vào và có lẽ ngay cả

40
00:03:11,775 --> 00:03:17,875
các thư viện GUI mà nhiều ngôn ngữ lập trình chuẩn hỗ trợ.

41
00:03:17,875 --> 00:03:22,377
Đây là nơi mà khái niệm tái sử dụng hành vi rất,

42
00:03:22,377 --> 00:03:27,847
rất hiệu quả vì chúng ta có thể thực hiện nó một lần trong thư viện và

43
00:03:27,847 --> 00:03:33,847
sau đó tái sử dụng hành vi đó bất cứ nơi nào chúng ta cần trong ứng dụng phần mềm của chúng ta.

44
00:03:33,847 --> 00:03:40,477
Điều này cũng mang lại mô đun cho cách ứng dụng của chúng tôi được thực hiện.

45
00:03:40,477 --> 00:03:46,500
Một ví dụ điển hình về một thư viện phần mềm được sử dụng trong thế giới web là jQuery.

46
00:03:47,540 --> 00:03:50,150
Nếu bạn đã tham gia khóa học Bootstrap trước đó,

47
00:03:50,150 --> 00:03:55,130
bạn sẽ thấy một số yếu tố của jQuery trong khóa học đó.

48
00:03:55,130 --> 00:03:56,360
Trong bối cảnh này,

49
00:03:56,360 --> 00:04:02,720
hãy để tôi cũng phân biệt một thư viện phần mềm với một khung phần mềm.

50
00:04:02,720 --> 00:04:05,980
Một khung phần mềm là một trừu tượng

51
00:04:05,980 --> 00:04:10,770
trong đó phần mềm cung cấp chức năng chung chung như vậy và

52
00:04:10,770 --> 00:04:15,960
sau đó cung cấp cho bạn khả năng tùy chỉnh chức năng đó để

53
00:04:15,960 --> 00:04:19,550
thực hiện các giải pháp cho ứng dụng cụ thể của bạn.

54
00:04:19,550 --> 00:04:25,200
Vì vậy, bạn sẽ tăng cường khung phần mềm với mã của riêng bạn

55
00:04:25,200 --> 00:04:29,490
để thực hiện bất cứ điều gì mà bạn đang cố gắng để thực hiện.

56
00:04:29,490 --> 00:04:33,540
Vì vậy, đây là một cách khác để suy nghĩ về cách bạn

57
00:04:33,540 --> 00:04:38,180
cố gắng để giải quyết vấn đề như trái ngược với việc sử dụng một thư viện phần mềm.

58
00:04:38,180 --> 00:04:45,190
Bây giờ, khuôn khổ phần mềm này cung cấp một môi trường phổ quát, có thể tái sử dụng

59
00:04:45,190 --> 00:04:52,090
với một số chức năng nhất định là một phần của một nền tảng phần mềm lớn hơn.

60
00:04:52,090 --> 00:04:57,770
Chúng ta sẽ xem Angular như một ví dụ về cách thực hiện điều này một cách chi tiết hơn.

61
00:04:57,770 --> 00:05:02,100
Có một số khuôn khổ phần mềm khác được sử dụng trong thế giới web

62
00:05:02,100 --> 00:05:06,400
bao gồm Ember, Backbone, và nhiều khuôn khổ khác.

63
00:05:06,400 --> 00:05:10,380
Bây giờ ở đây, bạn rõ ràng có thể nghĩ đến câu hỏi.

64
00:05:10,380 --> 00:05:13,670
Làm thế nào để bạn phân biệt một thư viện với một framework?

65
00:05:13,670 --> 00:05:17,070
Các đặc điểm nổi bật của mỗi loại là gì và

66
00:05:17,070 --> 00:05:22,070
tại sao bạn lại phân loại một như một thư viện và một trong những khác là một khuôn khổ?

67
00:05:22,070 --> 00:05:25,040
Bạn rút ra sự phân biệt giữa hai người ở đâu?

68
00:05:25,040 --> 00:05:26,687
Bây giờ điều này tôi nên nói,

69
00:05:26,687 --> 00:05:31,033
có một dòng nhỏ tách một thư viện từ một khuôn khổ.

70
00:05:31,033 --> 00:05:34,883
Tùy thuộc vào cách bạn tiếp cận này, bạn có thể xem một hoặc

71
00:05:34,883 --> 00:05:38,480
khác như một thư viện, hoặc một khuôn khổ, và

72
00:05:38,480 --> 00:05:43,000
tùy thuộc vào người bạn yêu cầu, một số người có thể phân loại một

73
00:05:43,000 --> 00:05:47,796
cách tiếp cận cụ thể như một cách tiếp cận thư viện như trái ngược với một cách tiếp cận khung.

74
00:05:47,796 --> 00:05:52,258
Một lần nữa, chúng ta không chia tóc của chúng ta về việc cố gắng

75
00:05:52,258 --> 00:05:56,300
phân loại chính xác mọi thứ vào một thư viện hoặc một khuôn khổ.

76
00:05:56,300 --> 00:06:00,330
Theo quan điểm của chúng tôi, nếu điều gì đó giúp chúng tôi hoàn thành nhiệm vụ của mình,

77
00:06:00,330 --> 00:06:03,670
thì chúng tôi hài lòng với cách tiếp cận đó.

78
00:06:03,670 --> 00:06:08,570
Một lần nữa, khi nói rằng, chúng ta hãy phân biệt giữa một thư viện và

79
00:06:08,570 --> 00:06:10,400
một khuôn khổ chi tiết hơn một chút.

80
00:06:10,400 --> 00:06:13,510
Để hiểu cách bạn tiếp cận

81
00:06:13,510 --> 00:06:17,680
toàn bộ cách viết đơn của bạn.

82
00:06:17,680 --> 00:06:22,300
Khi bạn sử dụng một thư viện như trái ngược với việc sử dụng một framework.

83
00:06:23,820 --> 00:06:28,250
Vì vậy, trong bối cảnh này định nghĩa sau đây mà tôi đã mượn

84
00:06:28,250 --> 00:06:33,520
từ tài liệu AngularJS loại, Tôi cảm thấy

85
00:06:33,520 --> 00:06:38,800
cho một chút khác biệt rõ ràng hơn giữa một thư viện và một khuôn khổ.

86
00:06:38,800 --> 00:06:44,720
Vì vậy, định nghĩa này nói rằng một thư viện là một tập hợp các chức

87
00:06:44,720 --> 00:06:50,740
năng hữu ích cho việc viết các ứng dụng web, jQuery là một ví dụ.

88
00:06:50,740 --> 00:06:54,270
Vì vậy, đây là một tập hợp các chức năng có sẵn cho bạn.

89
00:06:54,270 --> 00:06:59,380
Bạn sử dụng các chức năng này khi bạn thực hiện

90
00:06:59,380 --> 00:07:01,710
giải pháp phần mềm của bạn cho vấn đề của bạn.

91
00:07:03,150 --> 00:07:08,370
Khi bạn sử dụng phương pháp này, nó là bạn lập trình viên luôn kiểm soát

92
00:07:08,370 --> 00:07:13,340
cách bạn tận dụng các chức năng được cung cấp

93
00:07:13,340 --> 00:07:17,290
bởi thư viện để thực hiện bất cứ điều gì bạn đang cố gắng để làm.

94
00:07:18,630 --> 00:07:23,540
Mặt khác, một framework là một thực hiện cụ thể hoặc thực hiện cụ thể

95
00:07:23,540 --> 00:07:27,047
của một ứng dụng web, trong

96
00:07:27,047 --> 00:07:31,650
đó bản thân framework cung cấp một cấu trúc chung rộng cho

97
00:07:31,650 --> 00:07:35,470
ứng dụng của bạn và sau đó bạn được yêu cầu điền vào các chi tiết.

98
00:07:36,570 --> 00:07:41,680
Các chi tiết cần thiết để tùy chỉnh ứng dụng đó

99
00:07:41,680 --> 00:07:46,030
để giải quyết vấn đề cụ thể mà bạn đang cố gắng giải quyết.

100
00:07:46,030 --> 00:07:52,040
Vì vậy, ở đây, khuôn khổ có quyền kiểm soát hoàn toàn như thế nào các ứng dụng này chạy và

101
00:07:52,040 --> 00:08:00,870
sau đó nó sẽ gọi vào người dùng cung cấp mã giúp nó để có được công việc hoàn thành.

102
00:08:00,870 --> 00:08:04,620
Các ứng dụng cụ thể mã là một cái gì đó mà bạn sẽ viết và

103
00:08:04,620 --> 00:08:09,830
cung cấp nó và đó sẽ trở thành một phần của toàn bộ ứng dụng,

104
00:08:09,830 --> 00:08:14,510
cùng với khuôn khổ, và nó giúp để hoàn thành nhiệm vụ của bạn.

105
00:08:14,510 --> 00:08:17,861
Một lần nữa, điều này có thể không hoàn toàn, rõ ràng cho phép bạn

106
00:08:17,861 --> 00:08:21,722
hiểu được sự khác biệt giữa một khuôn khổ và một thư viện.

107
00:08:21,722 --> 00:08:23,155
Hãy một lần nữa, như tôi đã nói, chúng

108
00:08:23,155 --> 00:08:26,878
ta không lây lan lông của chúng tôi cố gắng tìm ra tất cả những chi tiết này.

109
00:08:26,878 --> 00:08:31,815
Những gì chúng ta cần hiểu là Angular là một ví dụ về một framework và

110
00:08:31,815 --> 00:08:37,187
khi bạn viết các ứng dụng trong Angular, framework sẽ kiểm soát và

111
00:08:37,187 --> 00:08:42,212
về cơ bản bạn cung cấp các phần còn thiếu của mã được yêu cầu

112
00:08:42,212 --> 00:08:47,610
để tùy chỉnh framework để thực hiện ứng dụng web cụ thể của bạn.

113
00:08:49,070 --> 00:08:52,440
Kiểm tra khung từ một chút chi tiết hơn.

114
00:08:52,440 --> 00:08:58,000
Khi chúng ta nói về một khuôn khổ, một trong những khía cạnh quan trọng về cách một khuôn khổ

115
00:08:58,000 --> 00:09:04,040
hoạt động được tóm tắt bởi thuật ngữ này được gọi là Nguyên tắc Hollywood.

116
00:09:04,040 --> 00:09:06,600
Ý tôi chính xác là gì theo nguyên tắc Hollywood?

117
00:09:06,600 --> 00:09:11,870
Bây giờ, nếu bạn biết cách một đặc vụ Hollywood hoạt động, khi một diễn viên hay

118
00:09:11,870 --> 00:09:17,100
một nữ diễn viên muốn tìm việc ở Hollywood,

119
00:09:17,100 --> 00:09:21,550
họ sẽ tiếp cận một đặc vụ và đặc vụ thường nói với bạn,

120
00:09:21,550 --> 00:09:25,150
chúng tôi sẽ gọi lại cho bạn khi chúng tôi có việc cho bạn.

121
00:09:25,150 --> 00:09:27,400
Đừng gọi cho chúng tôi, chúng tôi sẽ gọi lại.

122
00:09:27,400 --> 00:09:30,860
Vì vậy, về cơ bản một khuôn khổ là phản ánh cùng một loại nguyên tắc.

123
00:09:30,860 --> 00:09:35,440
Framework nói, bạn cung cấp bất cứ điều gì bạn có thể làm và

124
00:09:35,440 --> 00:09:41,000
framework sẽ gọi mã cung cấp của bạn bất cứ khi nào nó cần phải làm điều gì đó.

125
00:09:42,470 --> 00:09:48,442
Đó là lý do tại sao chúng tôi sử dụng thuật ngữ này Nguyên lý Hollywood trong thế giới phần mềm.

126
00:09:49,540 --> 00:09:54,575
Điều này cũng có thể được tóm tắt bằng cách sử dụng

127
00:09:54,575 --> 00:09:57,685
biểu thức khác này gọi là Inversion of Control.

128
00:09:57,685 --> 00:10:01,715
Khi bạn sử dụng một thư viện, bạn, các lập trình viên là trong kiểm soát, và

129
00:10:01,715 --> 00:10:07,435
bạn dictate làm thế nào các mã hoạt động và làm thế nào các mã thực thi.

130
00:10:08,752 --> 00:10:10,092
Khi bạn sử dụng một framework,

131
00:10:10,092 --> 00:10:14,712
bạn về cơ bản là đầu hàng đặc quyền của bạn cho framework và

132
00:10:14,712 --> 00:10:21,360
cho phép framework đó chịu trách nhiệm và sau đó dictate làm thế nào các ứng dụng được chạy.

133
00:10:21,360 --> 00:10:28,000
Bây giờ trong khi bạn có vẻ như điều này giống như đầu hàng độc lập của bạn,

134
00:10:28,000 --> 00:10:32,920
chắc chắn đó không phải là trường hợp, nếu khuôn khổ có một lý do nhất định để nhận

135
00:10:32,920 --> 00:10:40,040
trách nhiệm hoàn thành bất cứ điều gì nó cần làm thay mặt bạn.

136
00:10:40,040 --> 00:10:45,050
Vì vậy, đây là một nơi mà chúng tôi sẽ phân biệt giữa

137
00:10:45,050 --> 00:10:47,750
hai cách tiếp cận để viết các chương trình.

138
00:10:47,750 --> 00:10:51,320
Một người được gọi là cách bắt buộc của việc viết các chương trình, và

139
00:10:51,320 --> 00:10:54,910
thứ hai được gọi là cách khai báo để viết các chương trình.

140
00:10:54,910 --> 00:10:57,550
Nếu bạn đã thực hiện bất kỳ khóa học ngôn ngữ lập trình nào,

141
00:10:57,550 --> 00:11:01,780
bạn sẽ thấy rằng các ngôn ngữ lập trình thường sử dụng một hoặc

142
00:11:01,780 --> 00:11:08,380
cách tiếp cận khác mà điều này hỗ trợ trong việc viết các chương trình.

143
00:11:08,380 --> 00:11:10,120
Trong lập trình bắt buộc,

144
00:11:10,120 --> 00:11:15,480
bạn sẽ chỉ định các chức năng của chương trình theo cách từng bước.

145
00:11:15,480 --> 00:11:18,020
Vì vậy, bạn hoàn toàn và kiểm soát và

146
00:11:18,020 --> 00:11:22,830
sau đó bạn đang về cơ bản nói, đây là cách bạn phải hoàn thành nhiệm vụ và

147
00:11:22,830 --> 00:11:27,190
sau đó bạn sẽ viết xuống từng bước cách để hoàn thành nhiệm vụ.

148
00:11:27,190 --> 00:11:32,520
Vì vậy, bạn là một lập trình viên là hoàn toàn kiểm soát trong việc xác định các bước chính xác

149
00:11:32,520 --> 00:11:33,720
để giải quyết vấn đề.

150
00:11:34,750 --> 00:11:37,550
Trong lập trình khai báo mặt khác,

151
00:11:37,550 --> 00:11:42,210
được sử dụng hiệu quả bởi các framework như Angular.

152
00:11:42,210 --> 00:11:47,560
Bạn đang về cơ bản nói đây là những gì tôi muốn đạt được, và

153
00:11:47,560 --> 00:11:52,130
đây là cách tôi tùy chỉnh những gì đặc biệt tôi muốn đạt được.

154
00:11:52,130 --> 00:11:55,420
Làm thế nào nó được thực hiện không phải là mối quan tâm với tôi.

155
00:11:55,420 --> 00:11:59,580
Nhưng tôi sẽ bàn giao trách nhiệm đó cho khuôn khổ.

156
00:11:59,580 --> 00:12:04,239
Vì vậy, về cơ bản, bạn đang cung cấp mã cung cấp người dùng của bạn cho khuôn khổ và

157
00:12:04,239 --> 00:12:09,470
nói, bây giờ đây là những gì tôi muốn bạn làm, bạn chịu trách nhiệm và làm cho điều này xảy ra.

158
00:12:09,470 --> 00:12:13,920
Vì vậy, theo cách đó trong lập trình khai báo, bạn chỉ tuyên bố

159
00:12:13,920 --> 00:12:18,379
ý định của bạn là gì và để cho khuôn khổ quyết định làm thế nào điều đó sẽ được thực hiện.

160
00:12:18,379 --> 00:12:24,675
Hai cách suy nghĩ khác nhau về cách bạn tiếp cận giải quyết vấn đề của mình.

161
00:12:24,675 --> 00:12:29,268
Đây là một cái gì đó mà bạn phải có được đầu của bạn xung quanh khi bạn học

162
00:12:29,268 --> 00:12:34,346
Angular bởi vì nếu bạn đang đến từ thế giới lập trình bắt buộc,

163
00:12:34,346 --> 00:12:38,214
xu hướng chung của bạn sẽ là để kiểm soát tất cả mọi thứ và

164
00:12:38,214 --> 00:12:42,188
dictate từng bước như thế nào bạn muốn thực hiện.

165
00:12:42,188 --> 00:12:47,370
Vì vậy, phải mất một thời gian để quấn đầu của bạn xung quanh khái niệm này mà bạn

166
00:12:47,370 --> 00:12:49,570
không nhất thiết phải kiểm soát từng bước.

167
00:12:49,570 --> 00:12:54,550
Thay vào đó, bạn nói với khuôn khổ những gì bạn muốn trở thành, để được hoàn thành.

168
00:12:54,550 --> 00:12:59,120
Và trao trách nhiệm cho khuôn khổ để hoàn

169
00:12:59,120 --> 00:13:01,640
thành nhiệm vụ thay mặt bạn.

170
00:13:01,640 --> 00:13:07,880
Một lần nữa, đừng lo lắng quá nhiều về nó, và đừng đọc quá nhiều vào định nghĩa này.

171
00:13:07,880 --> 00:13:13,640
Đây là từ một mối quan tâm học thuật, đây là cơ sở của việc xác định các

172
00:13:13,640 --> 00:13:19,080
mẫu hành vi khác nhau từ quan điểm của một nhà phát triển ứng dụng web.

173
00:13:19,080 --> 00:13:21,890
Tất cả những gì bạn quan tâm là làm thế nào bạn

174
00:13:21,890 --> 00:13:27,398
hoàn thành công việc của bạn bằng cách sử dụng Angular như khung ứng dụng web.

175
00:13:27,398 --> 00:13:30,370
Đến với thế giới JavaScript framework,

176
00:13:30,370 --> 00:13:35,140
bạn sẽ nghe thấy rất nhiều thuật ngữ đang được sử dụng với JavaScript framework.

177
00:13:35,140 --> 00:13:39,134
Bạn thường sẽ nghe mọi người nói về một cái gì đó được gọi là

178
00:13:39,134 --> 00:13:45,110
ứng dụng PPage đơn lẻ hoặc một thuật ngữ đồng minh được gọi là ứng dụng internet phong phú.

179
00:13:45,110 --> 00:13:48,980
Một lần nữa, chúng tôi sẽ kiểm tra ý nghĩa của điều này trong một trong những

180
00:13:50,030 --> 00:13:54,570
bài học sau này trong khóa học này trong bối cảnh của Angular.

181
00:13:54,570 --> 00:13:58,685
Tương tự như vậy, bạn cũng sẽ nghe mọi người nói về Model-View-Controller,

182
00:13:58,685 --> 00:14:01,920
Model-View-ViewModel, Model-View-Whatever, v.v.

183
00:14:02,930 --> 00:14:07,550
Một lần nữa, đây là như tôi đã nói, một mô hình kiến trúc phần mềm

184
00:14:07,550 --> 00:14:11,950
mà chúng tôi sử dụng để phát triển các ứng dụng phần mềm.

185
00:14:11,950 --> 00:14:16,190
Chúng ta sẽ nói thêm một chút chi tiết về điều này trong bối cảnh Angular,

186
00:14:16,190 --> 00:14:18,540
trong một trong những bài học sau này.

187
00:14:18,540 --> 00:14:23,945
Và trong bối cảnh này, bạn sẽ nghe thấy trong Angular, những thứ như ràng buộc dữ liệu

188
00:14:23,945 --> 00:14:28,605
, định tuyến, ràng buộc dữ liệu một chiều và hai chiều, v.v.

189
00:14:28,605 --> 00:14:34,170
Một lần nữa, đừng bị loại bỏ bởi tất cả các điều khoản này.

190
00:14:34,170 --> 00:14:39,000
Chúng tôi sẽ hiểu họ khi chúng tôi đi cùng trong khóa học này.

191
00:14:39,000 --> 00:14:43,370
Tương tự như vậy, bạn sẽ thường nghe về

192
00:14:43,370 --> 00:14:47,120
mã JavaScript có thể mở rộng, có thể tái sử dụng, có thể duy trì, v.v.

193
00:14:47,120 --> 00:14:50,180
Đây là những khái niệm tuyệt

194
00:14:50,180 --> 00:14:55,960
vời hoặc thuộc tính tuyệt vời mà chúng tôi muốn đạt được với ứng dụng của chúng tôi.

195
00:14:55,960 --> 00:15:02,650
Chúng ta sẽ thấy cách Angular giúp chúng ta làm điều này trong khóa học cụ thể này.

196
00:15:02,650 --> 00:15:06,760
Và một thuật ngữ khác mà bạn thường nghe mọi người nói đến là

197
00:15:06,760 --> 00:15:08,040
sự phát triển theo hướng thử nghiệm.

198
00:15:09,310 --> 00:15:13,880
Góc thực sự hỗ trợ kiểm tra hướng phát triển, vì vậy ngay cả trước khi

199
00:15:13,880 --> 00:15:19,740
bạn phát triển ứng dụng của bạn, bạn sẽ viết bài kiểm tra để đảm bảo rằng các mã

200
00:15:19,740 --> 00:15:24,040
mà bạn thực hiện thực sự hoàn thành những gì bạn đang cố gắng để thực hiện.

201
00:15:24,040 --> 00:15:28,480
Chúng tôi sẽ kiểm tra một chút phát triển theo hướng thử nghiệm hướng tới phần sau

202
00:15:28,480 --> 00:15:30,250
của khóa học này.

203
00:15:30,250 --> 00:15:35,080
Mặc dù, nếu bạn muốn áp dụng phương pháp phát triển điều khiển thử nghiệm này để

204
00:15:35,080 --> 00:15:38,050
thực hiện các ứng dụng, đó là một cách tiếp cận tuyệt vời.

205
00:15:38,050 --> 00:15:41,232
Nhưng trước khi chúng ta đi đến thời điểm đó, tốt hơn là

206
00:15:41,232 --> 00:15:45,890
chúng ta nên hiểu những gì bản thân khuôn khổ giúp chúng ta hoàn thành.

207
00:15:45,890 --> 00:15:50,680
Vì vậy, trong khóa học này, tôi sẽ giải quyết một thời gian ngắn với thử nghiệm hướng phát triển.

208
00:15:50,680 --> 00:15:55,725
Nhưng nếu bạn đang thực hiện một ứng dụng Angular thực sự, bạn sẽ áp dụng

209
00:15:55,725 --> 00:16:01,335
một cách tiếp cận phát triển thử nghiệm điều khiển để phát triển các ứng dụng Angular.

210
00:16:02,565 --> 00:16:09,245
Có rất nhiều, rất nhiều khuôn khổ JavaScript có sẵn trong thế giới thực.

211
00:16:09,245 --> 00:16:11,645
Góc là một khởi đầu.

212
00:16:14,115 --> 00:16:19,170
AngularJS là một trong những framework JavaScript phổ biến nhất.

213
00:16:19,170 --> 00:16:22,510
Chúng ta sẽ xem xét Angular chi tiết hơn khi chúng ta đi cùng.

214
00:16:22,510 --> 00:16:27,060
Tương tự như vậy, nếu bạn nhìn vào thế giới JavaScript framework,

215
00:16:27,060 --> 00:16:32,160
bạn sẽ nghe mọi người nói về Ember, Backbone, React.

216
00:16:32,160 --> 00:16:37,870
Mặc dù, một số người phân loại React như một thư viện chứ không phải là một khuôn khổ. Một

217
00:16:37,870 --> 00:16:40,130
lần nữa, tùy thuộc vào người bạn yêu cầu,

218
00:16:40,130 --> 00:16:45,770
một số người có thể nói đó là một khuôn khổ và một số người có thể nói nó chỉ là một thư viện.

219
00:16:45,770 --> 00:16:50,960
Một lần nữa, chúng ta đừng lo lắng quá nhiều về nó là gì nhưng nó có sẵn cho

220
00:16:50,960 --> 00:16:55,898
chúng tôi như một cách tiếp cận để thực hiện các ứng dụng web phức tạp.

221
00:16:55,898 --> 00:17:02,880
Tương tự như vậy, các khuôn khổ nhỏ hơn khác như Aurelia, Meteor,

222
00:17:02,880 --> 00:17:09,818
Polymer, Google là một khuôn khổ sắp tới, Knockout, Vue và nhiều người khác.

223
00:17:09,818 --> 00:17:13,650
Và ngày càng có nhiều người được thêm vào điều này mỗi ngày.

224
00:17:13,650 --> 00:17:17,320
Khung JavaScript của ngày hôm nay là gì?

225
00:17:17,320 --> 00:17:17,820
Góc.

226
00:17:18,880 --> 00:17:25,710
Nó chỉ bước ra khỏi giai đoạn phát triển và đi vào thế giới thực.

227
00:17:25,710 --> 00:17:31,760
Và mọi người đang tranh giành để phát triển các ứng dụng bằng cách sử dụng Angular.

228
00:17:31,760 --> 00:17:35,910
Vì vậy, đó là lý do tại sao chúng tôi quan tâm đến Angular trong khóa học đặc biệt này.

229
00:17:35,910 --> 00:17:38,450
Bây giờ một khi bạn học được một trong số họ,

230
00:17:38,450 --> 00:17:42,860
bạn sẽ bắt đầu hiểu cách tiếp cận nhẹ nhàng mà khung này sử dụng.

231
00:17:42,860 --> 00:17:47,172
Bạn có thể chọn các khuôn khổ khác tương tự bằng cách sử dụng

232
00:17:47,172 --> 00:17:51,930
các khái niệm chung mà bạn học trong khóa học cụ thể này.

233
00:17:51,930 --> 00:17:55,249
[ NHẠC]