MVC có 3 thành phần gồm: Model – View – Controller
Mô hình này bao gồm 3 thành phần chính là: Model – View – Controller. MVC là một mô hình kiến trúc phần mềm khá thường nhật hiện nay. Mỗi thành phần sẽ đảm nhận một nhiệm vụ riêng biệt và vận hành độc lập với các thành phần khác.
Model
Đây là thành phần quản lý toàn bộ các cơ sở dữ liệu (database) của ứng dụng. cùng lúc ấy Model cũng chứa các lớp mô tả business logic và định nghĩa business rules cho dữ liệu (cách mà dữ liệu sẽ được thay đổi ngay và dùng).
View
View là giao diện hiển thị dành cho người dùng. Đây là nơi mà người dùng sẽ thực hiện các thao tác truy vấn, tìm kiếm,.. dữ liệu. Bộ phận này đại diện cho các thành phần UI (ví dụ như: XML, HTML,…). View tương tác với Model thông qua Observer pattern.
Controller
Controller là bộ phận có chức năng ghi nhận và điều hướng các bắt buộc (request) mà người dùng đưa ra tại View. Sau khi tiếp nhận, Controller sẽ xử lý các dữ liệu thông qua Model và cuối cùng trả kết quả, phản hồi tại View.
Các phần mềm được phát triển dựa vào mô hình MVC:
Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC. Hiện nay, Laravel đang là PHP framework thường nhật nhất và tốt nhất.
Symfony là framework Open Source được xây dựng dựa trên ngôn ngữ lập trình PHP, giúp phát triển thiết kế website cá nhân. Điểm mạnh của Symfony là gì? Hiện nay, Symfony rất được ưa chuộng nhờ hai ưu điểm lớn, đó là: cộng đồng người dùng, lập trình viên đông đảo và cấu trúc đáng tin cậy, tự do triển khai.
Cách thức hoạt động của mô hình MVC
- Như vậy, qua mô hình vận hành trên, ta khả năng thấy phương thức (method) xử lý user request được quyết định bởi Controller. Phương thức xử lý dữ liệu (UI logic) để hiển thị trên View thì được Model quyết định. Còn View thì chỉ có chức năng tiếp nhận bắt buộc người dùng và hiển thị dữ liệu cuối cùng mà thôi.
Ưu điểm của mô hình MVC
Mô hình MVC phù hợp với các dự án với các đội ngũ làm việc độc lập với nhau, như vậy các công việc đều có thể được thực hiện một cách linh hoạt.
Như vậy, mô hình này nổi bật nhờ các ưu điểm sau:
- Hỗ trợ quá trình phát triển nhanh chóng: Với đặc điểm hoạt động độc lập của từng thành phần, các lập trình viên có thể làm việc đồng thời trên từng bộ phận khác nhau của mô hình này. MVC giúp bạn tiết kiệm rất nhiều thời gian.
- Khả năng cung cấp đồng thời nhiều khung View: Với mô hình MVC, bạn có thể tạo ra đồng thời nhiều khung View cho Model.
- Hỗ trợ các kỹ thuật không đồng bộ: MVC có thể hoạt động trên nền tảng JavaScript. Điều này có nghĩa là các ứng dụng MVC có thể hoạt động với các file PDF, các trình duyệt web cụ thể, và cả các widget máy tính.
- Dễ dàng thao tác chỉnh sửa: Bộ phận Model hoạt động tách biệt với View đồng nghĩa với việc bạn có thể đưa ra các thay đổi, chỉnh sửa hoặc cập nhật dễ dàng ở từng bộ phận.
- Giữ nguyên trạng thái data: Mô hình MVC truyền lại dữ liệu nhưng không định dạng lại dữ liệu. Do đó, các dữ liệu này có thể được dùng lại cho các thay đổi sau này.
- Hỗ trợ các nền tảng phát triển SEO: Với mô hình MVC, bạn có thể dễ dàng tạo ra các mã SEO URL để thu hút lượng truy cập đối với ứng dụng bất kỳ.
Nhược điểm của mô hình MVCNhư vậy, MVC khuyến khích việc thực hành mã hóa và hỗ trợ khả năng mở rộng nhanh chóng. Nếu mối quan tâm lớn nhất của bạn là bạn có thể xây dựng ứng dụng một cách nhanh chóng, dễ cập nhật, thì mô hình MVC chính là lựa chọn tốt nhất của bạn. Nếu bạn quan tâm nhiều hơn đến hiệu suất và giữ những cấu trúc tệp ít phức tạp hơn, thì MVC có thể không phải là lựa chọn phù hợp.
HMVC (Hierarchical Model – View – Controller) là một biến thể được đản sinh từ mô hình MVC (Model – View – Controller) truyền thống, bằng cách chia nhỏ mã nguồn thành các cụm MVC nhỏ hơn (tên tiếng Anh của cụm này là MVC triads) đảm nhận các tác vụ riêng biệt, từ đó giải quyết các vấn đề về khả năng mở rộng để có thể đáp ứng được tốc độ phát triển mà không phải thay đổi kiến trúc chính của hệ thống.
Có một lợi ích to lớn của HMVC đó chính là widget hóa các cấu trúc nội dung khi mà điều này chưa được giải quyết triệt để ở mô hình MVC truyền thống. Thực ra bạn hoàn toàn có thể tạo nên các widgets của riêng mình với sự hỗ trợ từ Laravel thông qua View Composer, nhưng nó khá là khó quản lí khi dự án phát triển ngày một lớn dần.
Việc mô đun hóa làm giảm tối đa sự phụ thuộc lẫn nhau giữa các thành phần của ứng dụng, code trở nên sạch sẽ và rõ ràng, từ đó đem lại khả năng tái sử dụng tuyệt vời và việc bảo trì trở nên dễ dàng hơn so với MVC truyền thống.
Kết
Kết thúc bài viết, bạn chắc hẳn đã có những nhận định riêng cho mình về hai kiến trúc MVC và HMVC. Chúc các bạn thành công !!!
Nhận xét
Đăng nhận xét