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

2
00:00:04,480 --> 00:00:09,994
Trong phát triển web, bạn thường nghe mọi người nói về khuôn khổ MVC và

3
00:00:09,994 --> 00:00:13,020
khuôn khổ MVVM và vân vân.

4
00:00:13,020 --> 00:00:14,460
Chính xác những khuôn khổ này là gì?

5
00:00:15,560 --> 00:00:20,050
Làm thế nào để chúng hữu ích trong việc phát triển web?

6
00:00:20,050 --> 00:00:22,257
Chúng ta hãy nói về điều đó một thời gian ngắn tiếp theo.

7
00:00:24,177 --> 00:00:26,688
Trong thế giới kỹ thuật phần mềm,

8
00:00:26,688 --> 00:00:31,140
bạn thường nghe mọi người nói về các mẫu thiết kế.

9
00:00:31,140 --> 00:00:37,470
Chính xác những gì họ có nghĩa là ngừng phát minh lại bánh xe mỗi lần.

10
00:00:37,470 --> 00:00:43,880
Một mô hình thiết kế là một giải pháp được ghi nhận tốt cho một vấn đề định kỳ.

11
00:00:43,880 --> 00:00:48,540
Rất thường xuyên, bạn thấy mình nhiều lần giải quyết các vấn đề tương tự.

12
00:00:48,540 --> 00:00:53,860
Nếu chúng ta có một tài liệu được chỉ định rõ về cách giải quyết những vấn đề này,

13
00:00:53,860 --> 00:00:56,720
tại sao cứ tiếp tục phát minh lại bánh xe mỗi lần?

14
00:00:56,720 --> 00:00:59,140
Vì vậy, đó là nơi mà

15
00:00:59,140 --> 00:01:03,220
khái niệm mẫu thiết kế của kỹ thuật phần mềm bắt nguồn.

16
00:01:03,220 --> 00:01:08,420
Đôi khi bạn cũng thấy mọi người đề cập đến điều này như là một mô hình kiến trúc.

17
00:01:08,420 --> 00:01:13,094
Vì vậy, để tóm tắt, các mẫu thiết kế phần mềm nói riêng là một

18
00:01:13,094 --> 00:01:17,706
giải pháp tái sử dụng cho các vấn đề thường xảy ra được giải quyết trong phần mềm.

19
00:01:17,706 --> 00:01:22,209
Bây giờ trong bối cảnh này, bạn thường nghe người ta nói về băng đảng bốn người.

20
00:01:23,830 --> 00:01:29,217
Đây là một nhóm gồm bốn tác giả đã viết cuốn sách sâu sắc này có tên là

21
00:01:29,217 --> 00:01:35,390
Design Patterns: Elements of Reusable Object-Oriented Software.

22
00:01:35,390 --> 00:01:39,500
Trong cuốn sách này, họ đã xác định được một tập hợp lớn các

23
00:01:39,500 --> 00:01:41,770
mẫu thiết kế thường được sử dụng trong kỹ thuật phần mềm.

24
00:01:41,770 --> 00:01:48,030
Đây là một trong những cuộc thăm dò đầu tiên được ghi nhận về các mẫu thiết kế,

25
00:01:48,030 --> 00:01:53,370
và do đó, đã trở thành tiêu chuẩn vàng cho bất cứ ai làm việc trong

26
00:01:53,370 --> 00:01:58,410
kỹ thuật phần mềm, đặc biệt quan tâm đến các gói thiết kế.

27
00:01:58,410 --> 00:02:03,320
Mô hình kỹ thuật phần mềm này cho phép chúng ta cô lập

28
00:02:03,320 --> 00:02:06,706
logic miền từ giao diện người dùng.

29
00:02:06,706 --> 00:02:11,827
Vì vậy, bạn về cơ bản tách quan điểm của người dùng về thông tin

30
00:02:11,827 --> 00:02:17,146
từ logic thực tế và làm thế nào các thông tin được lưu trữ và thao tác.

31
00:02:17,146 --> 00:02:22,280
Bây giờ khái niệm phân biệt mối quan tâm mà bạn sẽ được nghe

32
00:02:22,280 --> 00:02:25,600
nhiều lần trong bối cảnh này.

33
00:02:25,600 --> 00:02:30,290
Sự tách biệt các mối quan tâm là những gì tạo điều kiện cho sự phát triển độc lập

34
00:02:30,290 --> 00:02:34,700
của mỗi trong ba phần của ứng dụng của chúng tôi và

35
00:02:34,700 --> 00:02:39,350
cũng cho phép kiểm tra và bảo trì các bộ phận khác nhau.

36
00:02:39,350 --> 00:02:42,640
Bây giờ chúng ta có thể chia toàn bộ ứng dụng của chúng tôi thành ba phần,

37
00:02:42,640 --> 00:02:46,820
quan điểm chủ yếu liên quan đến việc trình bày thông tin cho người dùng,

38
00:02:46,820 --> 00:02:51,930
mô hình lưu trữ trạng thái miền và logic miền và

39
00:02:51,930 --> 00:02:57,430
cũng cung cấp cách

40
00:02:57,430 --> 00:03:02,604
thao tác trạng thái này từ phần còn lại của ứng dụng và

41
00:03:02,604 --> 00:03:08,180
bộ điều khiển trung gian giữa chế độ xem và mô hình.

42
00:03:08,180 --> 00:03:12,550
Chúng ta sẽ nói về từng phần trong ba phần này một cách chi tiết hơn một chút tiếp theo.

43
00:03:12,550 --> 00:03:17,360
Trong khuôn khổ MVC, mô hình quản lý hành vi và

44
00:03:17,360 --> 00:03:19,760
dữ liệu của miền ứng dụng.

45
00:03:19,760 --> 00:03:25,433
Và mô hình phản ứng với các yêu cầu thông tin về trạng thái hiện tại của nó.

46
00:03:25,433 --> 00:03:30,374
Vì vậy, thông thường khi xem muốn kết xuất, hoặc xem muốn cập nhật

47
00:03:30,374 --> 00:03:35,065
chính nó, nó có thể truy vấn các mô hình để có được thông tin để

48
00:03:35,065 --> 00:03:38,703
nó có thể được kết xuất một cách thích hợp cho người dùng.

49
00:03:38,703 --> 00:03:45,632
Mô hình cũng sẽ đáp ứng các yêu cầu thay đổi trạng thái của nó.

50
00:03:45,632 --> 00:03:48,574
Điều này thường được thực hiện thông qua kiểm soát.

51
00:03:48,574 --> 00:03:51,712
Trong một hệ thống điều khiển sự kiện,

52
00:03:51,712 --> 00:03:57,810
mô hình cũng có thể được cấu hình để thông báo cho các quan sát viên.

53
00:03:57,810 --> 00:04:02,670
Vì vậy, người xem có thể đăng ký mình là người quan sát cho mô hình và vì vậy

54
00:04:02,670 --> 00:04:06,940
khi mô hình được cập nhật, các chế độ xem sẽ được tự động kích hoạt để

55
00:04:06,940 --> 00:04:10,960
cập nhật bản thân dựa trên sự thay đổi đối với trạng thái mô hình đó.

56
00:04:12,160 --> 00:04:17,290
Quan điểm chính nó là mối quan tâm với việc trình bày thông tin cho người dùng trong một

57
00:04:17,290 --> 00:04:23,690
yếu tố giao diện người dùng theo cách mà nó tạo điều kiện cho cả việc trình bày

58
00:04:23,690 --> 00:04:29,630
thông tin cho người dùng và cũng cho phép người dùng tương tác với ứng dụng.

59
00:04:29,630 --> 00:04:33,970
Vì vậy, quan điểm có thể đại diện cho một biểu diễn của trạng thái mô hình.

60
00:04:33,970 --> 00:04:38,662
Vì vậy, từ mô hình đơn lẻ, bạn có thể dễ dàng lấy được nhiều cách

61
00:04:38,662 --> 00:04:43,449
trình bày thông tin này cho người dùng, tùy thuộc vào

62
00:04:43,449 --> 00:04:47,051
ví dụ, tùy thuộc vào kích thước khung nhìn.

63
00:04:47,051 --> 00:04:51,840
Vì vậy, một khung nhìn kích thước nhỏ như trên một ứng dụng di

64
00:04:51,840 --> 00:04:57,359
động, thông tin sẽ được trình bày theo một cách khác so

65
00:04:57,359 --> 00:05:03,000
với một cổng xem lớn hơn được tạo điều kiện trên một máy tính để bàn.

66
00:05:04,248 --> 00:05:08,620
Vì vậy, trong một khuôn khổ MVC tất cả việc hiển thị thông tin có một

67
00:05:08,620 --> 00:05:13,490
thư từ một đến một với trạng thái mô hình.

68
00:05:15,850 --> 00:05:20,380
Phần thứ ba của câu đố trong khuôn khổ MCV là bộ điều khiển.

69
00:05:21,400 --> 00:05:26,750
Công việc của bộ điều khiển là nhận thông tin từ chế độ xem.

70
00:05:26,750 --> 00:05:30,500
Vì vậy, bất kỳ tương tác người dùng nào được thực hiện sẽ được chụp và

71
00:05:30,500 --> 00:05:35,720
sau đó được truyền lên bộ điều khiển để hành động trên các tương tác người dùng này.

72
00:05:35,720 --> 00:05:40,040
Và đó là công việc của bộ điều khiển sau đó để bắt đầu một sự thay đổi trạng thái của

73
00:05:40,040 --> 00:05:46,870
mô hình, nếu nó được yêu cầu trong tình huống cụ thể này.

74
00:05:46,870 --> 00:05:51,940
Vì vậy, bộ điều khiển sẽ gây ra sự thay đổi trạng thái của mô hình một cách thích hợp.

75
00:05:51,940 --> 00:05:55,940
Vì vậy, để tóm tắt, bộ điều khiển có thể chấp nhận đầu vào

76
00:05:55,940 --> 00:06:00,860
từ người dùng về các tương tác người dùng đã diễn ra, và

77
00:06:00,860 --> 00:06:06,935
sau đó nó sẽ hướng dẫn mô hình thay đổi trạng thái.

78
00:06:06,935 --> 00:06:09,500
Đồng thời, bộ điều khiển cũng có thể

79
00:06:09,500 --> 00:06:14,470
làm cho chế độ xem thay đổi cách thức thông tin được hiển thị trong chế độ xem.

80
00:06:14,470 --> 00:06:19,230
Vì vậy, đó là lý do tại sao trong bức ảnh này bạn có hai mũi tên

81
00:06:19,230 --> 00:06:24,000
đi từ bộ điều khiển, một hướng tới mô hình và một hướng tới chế độ xem.

82
00:06:25,060 --> 00:06:29,910
Đôi khi bạn nghe người ta nói về phương pháp hình chiếu mô hình hình chiếu.

83
00:06:29,910 --> 00:06:33,490
Cách tiếp cận mô hình xem mô hình là, theo một ý nghĩa nào đó,

84
00:06:33,490 --> 00:06:37,050
một dẫn xuất của cách tiếp cận điều khiển xem mô hình.

85
00:06:37,050 --> 00:06:40,620
Đôi khi bạn cũng nghe thấy mọi người đề cập đến nó như là cách

86
00:06:40,620 --> 00:06:41,768
tiếp cận chế độ xem kết dính mô hình.

87
00:06:41,768 --> 00:06:45,502
Ở đây, bạn có mô hình đại diện cho logic kinh doanh và

88
00:06:45,502 --> 00:06:47,311
dữ liệu cho ứng dụng của bạn.

89
00:06:47,311 --> 00:06:52,367
Từ mô hình, bạn lấy được một mô hình xem, gói gọn một

90
00:06:52,367 --> 00:06:58,095
phần của thông tin được yêu cầu để kết xuất một dạng xem cụ thể.

91
00:06:58,095 --> 00:07:02,635
Vì vậy, mô hình xem là sự trừu tượng của quan điểm cho thấy

92
00:07:02,635 --> 00:07:07,395
các thuộc tính công cộng và các lệnh khác nhau có sẵn.

93
00:07:07,395 --> 00:07:10,125
Vì vậy, điều này cung cấp một ràng buộc dữ liệu khai báo.

94
00:07:11,690 --> 00:07:16,300
Trong một số ý nghĩa, cách các thành phần và

95
00:07:16,300 --> 00:07:21,520
các mẫu trong góc được thực hiện, nó có thể được xem như là

96
00:07:21,520 --> 00:07:27,250
một biến thể của cách tiếp cận mô hình xem mô hình.

97
00:07:27,250 --> 00:07:32,006
Với sự hiểu biết nhanh chóng này về MVC và MVVM framework,

98
00:07:32,006 --> 00:07:36,686
bây giờ chúng ta hãy tiến hành hiểu thêm về các dịch vụ góc cạnh.

99
00:07:36,686 --> 00:07:43,099
[ NHẠC]