MVW có nghĩa là gì?


351

Đây là mô tả nội dung cho trang AngularJS:

AngularJS là những gì HTML sẽ có, nếu nó được thiết kế để xây dựng các ứng dụng web. Các mẫu khai báo với liên kết dữ liệu, MVW, MVVM, MVC, nội dung phụ thuộc và câu chuyện kiểm tra tuyệt vời đều được thực hiện với JavaScript phía máy khách thuần túy!

Vậy MVW có nghĩa là gì? (Xem xét cuộc đấu tranh của MVC, MVVW, MVP, v.v., tôi sẽ đoán "bất cứ điều gì", Model-View-Any = P)


Tôi nghĩ rằng bạn đúng với Model-View-Any! code.google.com/p/dark-matter-data/wiki/MVWOverview
John

Câu trả lời:


447

Nó thực sự là viết tắt của bất cứ điều gì, như trong bất cứ điều gì làm việc cho bạn

MVC vs MVVM vs MVP. Thật là một chủ đề gây tranh cãi mà nhiều nhà phát triển có thể dành hàng giờ để tranh luận và tranh luận.

Trong vài năm + AngularJS đã gần gũi hơn với MVC (hay đúng hơn là một trong các biến thể phía máy khách của nó), nhưng theo thời gian và nhờ nhiều cải tiến và cải tiến api, giờ đây nó gần với MVVM hơn - đối tượng phạm vi $ có thể được coi là ViewModel. được trang trí bởi một chức năng mà chúng ta gọi là Bộ điều khiển.

Có thể phân loại một khung và đặt nó vào một trong các thùng MV * có một số lợi thế. Nó có thể giúp các nhà phát triển thoải mái hơn với apis của nó bằng cách giúp dễ dàng tạo ra một mô hình tinh thần đại diện cho ứng dụng đang được xây dựng với khung. Nó cũng có thể giúp thiết lập thuật ngữ được sử dụng bởi các nhà phát triển.

Như đã nói, tôi muốn thấy các nhà phát triển xây dựng các ứng dụng kick-ass được thiết kế tốt và tuân theo sự phân tách các mối quan tâm, hơn là thấy họ lãng phí thời gian để tranh luận về MV * vô nghĩa. Và vì lý do này, tôi xin tuyên bố AngularJS là khuôn khổ MVW - Model-View-Any. Trường hợp bất cứ điều gì là viết tắt của "bất cứ điều gì làm việc cho bạn" .

Angular cung cấp cho bạn rất nhiều tính linh hoạt để tách biệt logic trình bày khỏi logic kinh doanh và trạng thái trình bày. Vui lòng sử dụng nó để tăng năng suất và khả năng duy trì ứng dụng của bạn thay vì thảo luận sôi nổi về những điều mà vào cuối ngày không quan trọng lắm.


8
@ FrançoisWahl: Tôi đã nói điều tương tự với bản thân mình không năm giây trước khi đọc bình luận của bạn. MV * có lẽ đã rõ ràng hơn ngay lập tức đối với đại đa số các nhà phát triển phần mềm, những người có khả năng đã quen thuộc với quy ước '*' ký tự đại diện phổ biến.
David Frye

2
Bạn không thể Google MV *. Ngoài ra, "Dù gì" cũng truyền tải sự thất vọng mà nhiều người cảm thấy khi thảo luận về ngữ nghĩa của MVx
Clintm


22

Như đã nói, tôi muốn thấy các nhà phát triển xây dựng các ứng dụng kick-ass được thiết kế tốt và tuân theo sự phân tách các mối quan tâm, hơn là thấy họ lãng phí thời gian để tranh luận về MV * vô nghĩa. Và vì lý do này, tôi xin tuyên bố AngularJS là khuôn khổ MVW - Model-View-Any. Trường hợp bất cứ điều gì là viết tắt của "bất cứ điều gì làm việc cho bạn".

Tín dụng: AngularJS Post - Igor Minar



1

Tôi cảm thấy rằng MWV (Model View Any) hoặc MV * là một thuật ngữ linh hoạt hơn để mô tả một số tính độc đáo của Angularjs theo ý kiến ​​của tôi. Nó giúp tôi hiểu rằng nó không chỉ là một khung công tác JavaScript MVC (Model View Controller), nhưng nó vẫn sử dụng MVC vì nó có Model View và Trình điều khiển.

Nó cũng có thể được coi là một mẫu MVP (Model View Presenter). Tôi nghĩ về Người thuyết trình là logic kinh doanh giao diện người dùng trong Angularjs cho Chế độ xem. Ví dụ: bằng cách sử dụng các bộ lọc có thể định dạng dữ liệu để hiển thị. Đó không phải là logic kinh doanh, mà là logic hiển thị và nó làm tôi nhớ đến mẫu MVP mà tôi đã sử dụng trong GWT.

Ngoài ra, nó cũng có thể là MVVM (Model View View Model), phần View Model là ràng buộc hai chiều giữa hai. Cuối cùng, đó là MVW vì nó có các mẫu khác mà bạn có thể sử dụng cũng như được đề cập bởi @Steve Chambers.

Tôi đồng ý với các câu trả lời khác rằng việc hiểu về thuật ngữ này có thể gây bất lợi, vì vấn đề là hiểu các khái niệm từ các điều khoản, nhưng bằng cách đó, việc hiểu đầy đủ các thuật ngữ giúp một người khi họ thiết kế mã ứng dụng của họ, biết những gì đi đâu và tại sao.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.