Trước đây khi chưa học Framework CodeIgniter thì mình chẳng biết mô hình MVC là gì, mãi sau một thời gian làm việc với CodeIgniter mới dần hiểu thêm một chút. Nếu bạn đang thắc mắc mô hình MVC vai trò và cách thức hoạt động thế nào thì bài viết sau sẽ giúp làm sáng tỏ vấn đề đó.
Mô hình MVC là gì?
MVC là viết tắc của Model – View – Controller chúng sẽ chia ra 3 phần khác nhau nhưng để hoạt động trơ tru trong lập trình thì cần có sự kết hợp của M – V – C với nhau.
Nhìn qua bức hình trên anh em có hiểu được cách thức hoạt động của MCV không?
Mình chắc là chưa, từ từ tìm hiểu nào!
Model: Nó sẽ có vai trò quản lý và xử lý cơ sở dữ liệu (database), logic và đặt ra các quy tắc (rule) cho ứng dụng
View: Em này có vai trò hiển thị dữ liện lên trình duyệt để người dùng hiểu được
Controller: Nó giống như trung tâm điều khiển vậy hay là trung gian giữa Model – View. Các yêu cầu ghi nhận từ View phải qua Controller sau đó mới chuyển qua Model.
Hiện nay trong lập trình web có nhiều Framework hỗ trợ lập trình viên làm việc nhanh hơn và đều hoạt động dự theo mô hình MVC.
Để hiểu rõ hơn hãy tìm hiểu qua ví dụ sau:
Giả sử một người dùng nào đó muốn đăng ký thành viên trên diễn đàn. Lúc này từ máy tính (Client) họ sẽ gửi các thông tin Controller sẽ ghi nhận thông tin đó.
Từ Controller sẽ tiếp tục gửi thông tin tới Model. Từ Model lại tiếp tục gửi thông tin tới Database để lưu thông tin.
User tương tác với View thông qua Form đăng ký => Controller => Model => Database
Khi trên trình duyệt người dùng yêu thông tin, MVC lại sẽ hoạt động như sau:
Database => Model => Controller => View => User
Với mô hình MVC nó sẽ hoạt động 2 chiều.
Ưu và nhược điểm của mô hình MVC
Ưu điểm:
– Phân chia các phần khác nhau nên sẽ dễ dàng phát triển
– Team làm việc hiệu quả hơn, mỗi người sẽ đảm nhận một phần
– Nâng cấp và bảo trì cũng nhanh chóng hơn
– Thay đổi, chỉnh sửa không ảnh hưởng tới toàn bộ hệ thống
Nhược điểm:
– Vì nó chia ra nhiều phần nên sẽ mất nhiều thời gian để xây dựng thư viện
– Mô hình này phù hợp với dự án lớn, còn dự án nhỏ sẽ gây nên sự cồng kênh phức tạp trong việc gửi và nhận dữ liệu
Hiện nay có nhiều Framework hoạt động dựa trên mô hình MVC. Trong lập trình web bằng ngôn ngữ PHP phải kể đến như CodeIgniter, Kohana, CakePHP, Zend…
Kết luận: Mô hình MVC có ứng dụng rất lớn trong lập trình. Với nhiều ưu điểm vượt trội khi làm việc với MVC bạn sẽ dễ dàng xây dựng ứng dụng web nhanh chóng không mất quá nhiều thời gian. Để hiểu sâu hơn bạn cũng có thể tham khảo thêm CodeIgniter là gì qua bài viết sau đây.