FullStack Academy

Giới thiệu về MVC

Trước tiên, chúng ta cần phải hiểu MVC là gì, để hiểu được khái niệm trên, chúng ta cùng đọc qua bài học lý thuyết bên dưới này và cùng nghiên cứu xem MVC là gì.

Mô hình MVC là gì?


MVC là từ viết tắt của ‘Model View Controller’. Đây là một kiến trúc phát triển phần mềm cho phép các developer chia ứng dụng ra thành 3 phần khác biệt nhưng lại có thể tương tác được với nhau. Với kiến ​​trúc MVC, chúng ta chia cấu trúc phần mềm ra 3 phần rõ ràng  nhằm mục đích phân rõ nhiệm vụ, làm việc nhóm và hỗ trợ quá trình phát triển phần mềm tốt hơn.

– Mô hình MVC là mô hình gồm 3 lớp: Model, View, Controller. Cụ thể như sau:

  • Model: Lớp này chịu trách nhiệm quản lí dữ liệu: giao tiếp với cơ sở dữ liệu, chịu trách nhiệm lưu trữ hoặc truy vấn dữ liệu. Lớp này sẽ làm việc trực tiếp với cơ sở dữ liệu và xử lý tất cả các logic biến đổi dữ liệu.
  • View: Lớp này chính là giao diện của ứng dụng, chịu trách nhiệm biểu diễn dữ liệu của ứng dụng thành các dạng nhìn thấy được.
  • Controller: Lớp này đóng vai trò quản lí và điều hướng hoạt động của ứng dụng. Tầng này sẽ nhận request từ client, điều phối các Model và View để có thể cho ra output thích hợp và trả kết quả về cho người dùng.

Luồng đi của MVC ra sao?

– Ta có thể mô tả lại hoạt động của mô hình MVC thông qua sơ đồ sau:

MVC

Nhìn vào ảnh trên ta có thể thấy rõ ràng, người dùng sẽ gửi HTTP request đến Controller, sau đó Controller sẽ điều hướng lấy dữ liệu từ cơ sở dữ liệu thông qua các Model, Model sẽ trả dữ liệu về cho Controller. Sau khi có được dữ liệu từ Model, Controller sẽ gửi đến View để render ra giao diện, cuối cùng Controller sẽ gửi response tới người dùng qua giao thức HTTP để hiển thị CSS/HTML/JS lên trình duyệt của người dùng.

Tại sao lại dùng MVC?

– Ưu điểm của MVC:

  + Kiểm tra dễ dàng: Với MVC, bạn có thể dễ dàng kiểm tra, rà soát lỗi phần mềm trước khi tới tay người tiêu dùng, đảm bảo chất lượng và độ uy tín cao hơn.
  + Chức năng control: Trên các nền website thì ngôn ngữ lập trình như CSS, HTML, Javascript có một vai trò vô cùng quan trọng. Việc sử dụng mô hình MVC sẽ giúp bạn có một bộ control ưu việt trên nền tảng các ngôn ngữ hiện đại với nhiều hình thức khác nhau.
  + View và size: View sẽ là nơi lưu trữ các dữ liệu. Càng nhiều yêu cầu được thực hiện thì kích thước càng tệp càng lớn. Khi  đó, đường truyền mạng cũng giảm tốc độ load. 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 phân tách rõ ràng các phần như Model, giao diện, data, nghiệp vụ.
  + Tính kết hợp: Việc tích hợp ở mô hình MVC cho phép bạn thoải mái viết code trên nền tảng website. Khi đó, server của bạn sẽ được giảm tải khá nhiều.
  + Đơn giản: Đây là một mô hình với kết cấu tương đối đơn giản. Dù bạn không có quá nhiều chuyên môn cũng có thể sử dụng được.

– Nhược điểm của MVC:

  + Sử dụng phức tạp hơn so với code thuần.
  + Cần người có hiểu biết tốt để kiến trúc được dự án MVC phù hợp với yêu cầu sản phẩm phần mềm

Tuy nhiên hiện nay MVC rất phổ biến và có rất nhiều các framework tích hợp sẵn mô hình MVC, nên bạn có thể thoải mái sử dụng trong bất kì dự án kích thước như thế nào cũng được.

Ok vậy là các bạn đã hiểu được về kiến trúc MVC trong phát triển phần mềm rồi nhé. Hẹn các bạn ở bài tiếp theo trong đó sẽ có phần code mẫu một dự án sử dụng MVC với PHP