1. MVC là gì?

MVC là từ viết tắt bởi 3 từ Model – View – Controller (như hình ảnh bên dưới). Đây là mô hình thiết kế sử dụng trong kỹ thuật phần mềm. Mô hình source code thành 3 phần, tương ứng mỗi từ. Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình.

Cụ thể:

Model:

Thành phần Model tương ứng với tất cả logic liên quan đến dữ liệu mà người dùng làm việc. Điều này có thể đại diện cho dữ liệu đang được chuyển giữa các thành phần View và Controllers hoặc bất kỳ dữ liệu nào khác liên quan đến logic nghiệp vụ. Ví dụ, một đối tượng Khách hàng sẽ lấy thông tin khách hàng từ cơ sở dữ liệu, thao tác và cập nhật dữ liệu đó trở lại cơ sở dữ liệu hoặc sử dụng nó để kết xuất dữ liệu.

View:

Thành phần View được sử dụng cho tất cả logic UI của ứng dụng. Ví dụ: chế độ xem Khách hàng sẽ bao gồm tất cả các thành phần giao diện người dùng như hộp văn bản, danh sách thả xuống, v.v. mà người dùng cuối cùng tương tác.

Controllers:

Bộ điều khiển hoạt động như một giao diện giữa các thành phần Mô hình và Chế độ xem để xử lý tất cả logic nghiệp vụ và các yêu cầu đến, thao tác dữ liệu bằng thành phần Mô hình và tương tác với Chế độ xem để hiển thị kết quả cuối cùng. Ví dụ: bộ điều khiển Khách hàng sẽ xử lý tất cả các tương tác và đầu vào từ Chế độ xem khách hàng và cập nhật cơ sở dữ liệu bằng Mô hình khách hàng. Bộ điều khiển tương tự sẽ được sử dụng để xem dữ liệu Khách hàng.

2. Lịch sử sự ra đời của MVC?

MVC được tiến sĩ Trygve Reenskaug đưa vào ngôn ngữ lập trình Smalltalk-76 khi ông đến trung tâm Nghiên cứu Xerox Palo Alto (PARC) vào giữa năm 1970. Sau đó, việc triển khai trở nên phổ biến trong các phiên bản khác của Small- Talk. Năm 1988, các bài báo “The Journal of Object Technology” – JOT mang lại bước tranh toàn cảnh về MVC mang liệu sự hiệu quả tốt nhất.

3. Ưu nhược điểm của MVC?

Ưu điểm:

- Tải nhanh, tối ưu lượng băng thông: MVC không sử dụng viewstate nên sẽ giúp tiết kiệm băng thông cho website. Người dùng có thể sử dụng ứng dụng trên web cần tương tác để gửi và nhận dữ liệu một cách liên tục. Điều này cũng giúp giảm băng thông cho website hoạt động tốt cũng như ổn định hơn.

- Kiểm tra dễ dàng hơn: Với MVCC, bạn có thể dễ dàng thực hiện các công việc như kiểm tra, rà soát lỗi phần mềm trước khi đưa tới tay người tiêu dùng. Việc này đảm bảo chất lượng và độ uy tín sản phẩm cao hơn.
Có bộ control ưu việt: Trên các nền tảng website thì ngôn ngữ lập trình như CSS, HTML, JavaScript có vai trò vô cùng quan trọng. Việc sử dụng mô hình MVC sẽ giúp bạn có bộ control ưu việt trên nền tảng ngôn ngữ hiện đại với nhiều hình thức khác nhau.

- View và size: View là nơi dùng để lưu trữ dữ liệu. Khi có yêu cầu được thực hiện càng lớn thì càng kích thích tệp lớn hơn. Khi đó, tốc độ đường truyền mạnh cũng bị giảm. Việc sử dụng mô hình MVC sẽ giúp bạn tiết kiệm được diện tích băng thông một cách tối ưu.

- Chức năng SOC (Separation of Concern): Chức năng này cho phép bạn có thể phân tách rõ ràng các thành phần như model, data, giao diện, nghiệp vụ.

- Kết hợp: Mô hình MVC cho phép bạn code thoải mái trên nền tảng web. Điều này giúp máy chủ giảm tải được khá nhiều.

- Đơn giản: Đây là mô hình có kết cấu tương tối đơn giản. Bạn không cần có chuyên môn cao vẫn có thể sử dụng được.

Nhược điểm của mô hình MVC

Ngoài các ưu điểm nổi bật bên trên, mô hình MVC cũng có những hạn chế nhất định, cụ thể như:

- Cần nhiều thời gian để tìm hiểu nếu muốn áp dụng đúng đắn.

- Tốn kém thời gian và công sức để quản lý tổ chức file.

- Xây dựng quy trình tương đối phức tạp, bởi vậy không cần thiết áp dụng mô hình này cho các dự án nhỏ.