Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác. Lập trình viên không biết phải đặt các đoạn code ở vị trí nào khi sử dụng MVC, vì thế nhồi nhét rất nhiều code vào controller.

Để cải thiện tình hình, 1 mô hình mới đã ra đời với tên gọi MOVE – Models – Operations – Views – Events

move

Sơ đồ trên thể hiện cấu trúc cơ bản của ứng dụng MOVE với:

  • Models bao gồm các ứng dụng đã có trước đó
  • Operations bao gồm các quy trình của ứng dụng mà chúng ta đang sử dụng
  • Views là trung gian giữa ứng dụng và người dùng
  • Events được dùng để kết nối tất cả các component lại với nhau

Để tránh trường hợp nhiễm các đoạn code rối rắm, khó kiểm soát, chúng ta cần lưu ý đến từng chức năng của mỗi loại theo chiều mũi tên hiển thị trên mô hình. Ví dụ: Views tiếp nhận Events từ Models và Operations có thể biến đổi models nhưng models không nên trỏ về Views hoặc Operations

1. Models

Models thực chất là 1 đối tượng “người dùng” sở hữu ít nhất 1 địa chỉ email, 1 tên gọi và 1 số điện thoại.
Trong mô hình MOVE, Models thiên về mảng kiến thức, ngoài việc thiết lập và theo dõi thì chúng có thể có chức năng cho phép chúng ta kiểm tra mật khẩu của người dùng nhưng lại không cho phép lưu mật khẩu người dùng vào database hoặc upload lên API khác vì đó là chức năng của Operations.

2. Operations

Operation là hoạt động thông thường của ứng dụng cho phép người dùng đăng nhập, đây thực chất là 2 hoạt động kết hợp với nhau: 1 là email và password của người dùng, 2 là load thông tin người dùng từ database và kiểm tra sự trùng khớp/độ chính xác của password.

Operation góp phần trong việc hình thành mô hình MOVE với việc làm thay đổi models đúng thời điểm và xử lý các events phát sinh trong quá trình tương tác với người dùng.  Trong 1 ứng dụng, mỗi hoạt động riêng lẻ (sub-operation) có thể vận hành độc lập với operation gốc của nó, điều này được thể hiện rõ trong biểu đồ: mũi tên events hướng lên, changes hướng xuống.

Khi sử dụng Operations, toàn bộ ứng dụng có thể được xem là 1 hoạt động khởi động. Chúng sinh ra nhiều sub-operation cần thiết, các sub-operation cùng tồn tại song song và thoát khỏi chương trình sau khi hoàn tất.

3. Views

Views chính là màn hình đăng nhập hiển thị các text box cho người dùng, khi người dùng click vào nút “login” thì sẽ thấy 1 khung “loginAttempt” chứa username và password để người dùng nhập vào.

Tất cả những gì người dùng có thể nhìn thấy và tương tác đều được View hỗ trợ, View không chỉ hiển thị trạng thái của ứng dụng theo cách dễ hiểu mà còn đơn giản hóa các tương tác của người dùng  đến các events có nghĩa. Điều quan trọng là View không trực tiếp làm thay đổi Model mà đơn giản chỉ chuyển Event đến Operation và chờ thay đổi từ các Events được phát từ Model.

4. Events

Events “loginAttempt” xuất phát từ View mỗi khi người dùng click vào “login”, khi hoàn tất việc đăng nhập thì Model “currentUser” sẽ hình thành 1 Event nhằm thông báo rằng ứng dụng đã được chuyển đổi .

Những biến chuyển từ Event là những gì cung cấp cho MOVE (và MVC) mà Model phải cập nhật View. Đây là 1 kỹ thuật khá trừu tượng cho phép các component có thể kết nối với nhau mà không gây ảnh hưởng cho nhau.

Kết luận

MVC vẫn tốt vì nó đã được sử dụng khá thành công trong nhiều thập kỷ qua, tuy nhiên, kỹ thuật lập trình mới đã ngày càng trở nên phổ biến và cần bổ sung những cái mới hơn, tối ưu hơn. Và MOVE đã ra đời nhằm cập nhật và bổ trợ cho các ứng dụng cũ trở nên hoàn chình và ứng dụng hiệu quả hơn trong tương lai.

Nguồn: cirw.in