Là mô hình MVC được sử dụng trong công nghiệp rất nhiều? Tất cả những gì cường điệu? [đóng cửa]


16

Tôi là một sinh viên nhưng tôi hy vọng sẽ sớm chuyển sang ngành công nghiệp phần mềm. Dường như có rất nhiều sự cường điệu về mẫu phần mềm MVC. Tôi nhận thấy rằng các khung công tác PHP thường là MVC, còn các ngôn ngữ không phải web .. nó có giống với chúng không? Đối với luận văn thạc sĩ của tôi (C ++), tôi đã chọn mẫu MVC vì nó tách biệt logic và giao diện người dùng.

Trong công nghiệp nó có được sử dụng nhiều không? Nếu vậy, những lý do chính và các thiết kế cạnh tranh, phổ biến khác là gì?


13
MVC đơn giản là một triển khai phổ biến của sự tách biệt các mối quan tâm. SoC là những gì quan trọng, không phải là chính MVC.
Raynos

1
Bạn có thể muốn kiểm tra 'Danh mục kiến ​​trúc ứng dụng doanh nghiệp' của Martin Fowler để biết một số lựa chọn / biến thể trên MVC có thể phù hợp với các ứng dụng cụ thể tốt hơn: martinfowler.com/eaaCatalog/index.html
Mchl

3
Cũng lưu ý rằng rất nhiều thứ được gắn nhãn 'MVC' trên thực tế không phải là MVC, mà là theo mô hình ứng dụng đa tầng (mới hơn): lưu trữ dữ liệu - logic - trình bày (mà IMHO, dù sao cũng có ý nghĩa hơn).
tdammers

MVC có trước lập trình web, nếu điều đó cho bạn biết bất cứ điều gì.
Jeremy

Câu trả lời:


6

MVC nhận được rất nhiều sự cường điệu và sử dụng bởi vì nó là một mẫu rất hữu ích cho miền của nó.

MVC khuyến khích tách các mối quan tâm. Điều này có thể đơn giản hóa sự phát triển nếu nó được thực hiện đúng. Bất kỳ ứng dụng nào hiển thị và / hoặc sửa đổi dữ liệu chứa trong kho dữ liệu sẽ có chức năng MVC, nhưng nó có thể không được tách rời. Không tách các thành phần có khả năng giới thiệu khớp nối không mong muốn giữa các mối quan tâm.

Với MVC, việc thay đổi giao diện mặt trước (Chế độ xem) của ứng dụng tương đối dễ dàng mà không cần sửa đổi bộ điều khiển hoặc mô hình. Điều này có thể được mong muốn nếu bạn cần cho phép truy cập từ điện thoại thông minh, Web và một hoặc nhiều ứng dụng.

Đối với các nhóm lớn, MVC có thể cho phép sử dụng tài nguyên tốt hơn vì các nhà phát triển có thể được giao nhiệm vụ làm việc ở một trong các lớp và có thể không cần nhiều kỹ năng trong các lớp khác. Tùy thuộc vào chi phí chung của các tài nguyên phối hợp, điều này có thể hiệu quả hơn.


12

Vâng, nó được sử dụng rất nhiều. Các ứng dụng iPhone / iPad đều được thiết lập dưới dạng MVC. Gần đây tôi đã thấy rất nhiều ứng dụng MVC của asp.net.

MVC cho phép linh hoạt hơn và thực sự khuyến khích các nhà phát triển viết mã riêng cho từng chức năng. Làm cho nó dễ dàng hơn để duy trì.


Khung công tác ca cao của Apple (được sử dụng trên MacOS X) là sự phát triển của NextStep, xuất hiện từ cuối những năm 1980. NextStep, Ca cao và Ca cao cảm ứng (được sử dụng trong iOS) đều chia sẻ việc sử dụng MVC rất nhiều.
Caleb

4

Nó đang thịnh hành tại thời điểm này.

Đừng bao giờ đánh giá thấp sức mạnh của sự cường điệu. Chẳng mấy chốc, ai đó sẽ nghĩ ra thứ gì đó mới hơn, sáng sủa và dễ hiểu hơn, và mọi người sẽ chê bai MVC là gốc rễ của mọi tội lỗi (xảy ra với các hình thức web), hoặc sẽ có rất nhiều người sử dụng nó mà các cựu chiến binh nghiền nát hơn giải mã nó như là một thứ "quản lý bull * * " (đã xảy ra với XML). Hoặc sẽ có một sự thay đổi sang một số mẫu khác vì MVC "không đủ linh hoạt cho vấn đề siêu khó mà tôi cần giải quyết" (ngôn ngữ gõ tĩnh so với ngôn ngữ động).

Vào cuối ngày, MVC là một cách tiếp cận khung phù hợp với một số vấn đề mà lập trình web đưa ra. Nó sẽ xuất hiện trong một thời gian nhưng tôi tưởng tượng lý do hầu hết mọi người đang sử dụng nó là để tuân thủ từ thông dụng.

BIÊN TẬP

Xin lưu ý: Tôi biết rõ rằng mô hình MVC đã xuất hiện trong nhiều năm và đã được sử dụng trên các khung trước khi asp.net MVC. Tôi chỉ nói rằng nó khá phổ biến tại thời điểm này vì vậy nó nhận được nhiều báo chí hơn các phương pháp khác. Tôi sử dụng MVC cho tất cả các dự án cá nhân của mình và cũng đã sử dụng nó cho các dự án thương mại (Tôi là nhà phát triển .net).

Đây không phải là một lời ca ngợi.


7
-1 cho: 'Tại thời điểm', trừ khi bạn xem xét ví dụ bắt đầu Smalltalk hoặc Java / Swing là công nghệ của Khoảnh khắc, MVC hơi quá cũ đối với điều đó.
keppla

4
Ngoại trừ "trong thời điểm" là khá chính xác; MVC hầu như không được sử dụng cho đến gần đây mà tôi biết, ngoại trừ trong thế giới Java. Ở mọi nơi khác, nó không được sử dụng cho đến khi Rails trở nên phổ biến.
Wayne Molina

4
Hầu hết các GUI-Framework (không phải html) mà tôi gặp phải đã sử dụng MVC, có vẻ như 'hầu như không được sử dụng' để thực hiện trong 10 năm qua.
keppla

1
Trên thực tế, MVC đã bị MVP thổi phồng trong một số phần của vũ trụ.
Tom Anderson

3
Cá nhân, tôi ghét Webforms từ lâu trước khi ASP.NET MVC thậm chí là một khái niệm. Đôi khi mọi thứ trở nên phổ biến vì thực sự chúng là lựa chọn tốt nhất trong hầu hết các trường hợp - và vâng, chúng có thể được thay thế bằng thứ gì đó mới hơn và mạnh hơn, nhưng vậy thì sao? Đó là sự tiến bộ, không cường điệu.
Aaronaught

3

Theo kinh nghiệm của tôi, nó không được sử dụng nhiều như nó nên. Đó là một mô hình tốt hơn nhiều so với một số lựa chọn thay thế, nhưng nó chỉ nhận được rất nhiều sự cường điệu trong vài năm qua; do đó, có rất nhiều hành trình di sản mà mọi người ngại chuyển đổi sang MVC hoặc ngại sử dụng MVC cho công việc trong tương lai vì nó nằm ngoài vùng thoải mái của họ.


1

Tôi nghĩ bạn sẽ thấy rằng gia đình Stack Exchange đều chạy trên MVC


Tuyệt vời, không biết rằng +1
ale

1

ASP.NET MVC đã đạt được rất nhiều sự nổi bật cho các Ứng dụng Web, vì .NET được sử dụng rất nhiều trong ngành.

Các ứng dụng web của Microsoft đã phát triển từ Classic ASP sang ASP.NET, dựa trên Web Forms (để cho phép các kỹ năng mà các nhà phát triển VB6 Win Forms đã có thể dễ dàng dịch sang biên giới mới của web).

Thật không may, Web Forms là dựa trên trạng thái và HTTP (mà web dựa trên) là không trạng thái, do đó, rất nhiều cách giải quyết khó chịu do những thứ như viewstate là cần thiết.

ASP.NET MVC cho phép các kỹ năng mà các nhà phát triển WebForms phải được dịch sang một khung web có SoC tốt và phải nỗ lực rất nhiều để có thể kiểm tra được (vì WebForms không thể kiểm chứng được, nhóm MVC đã đặt rất nhiều nỗ lực vào khuôn khổ).

Điều đó nói rằng, nó không phải là thuốc chữa bách bệnh / bạc, và giống như bất kỳ khuôn khổ nào, có những lúc để sử dụng nó và nhiều lần không sử dụng nó. Hy vọng mọi người sẽ không sử dụng nó để cố gắng giải quyết mọi thứ, sau tất cả: khi công cụ duy nhất của bạn là một cái búa, mọi vấn đề trông giống như một cái đinh.


1

Đây chỉ là một khoảnh khắc trong lịch sử vì MVC là một vài khái niệm rất đơn giản đã nhận được sự cường điệu từ một vài khung cụ thể có tính năng nổi bật trong tài liệu tiếp thị của họ. Nó cũng xảy ra với jive với nhiều thực tiễn tốt đã xuất hiện trong phát triển phần mềm. Điều này áp dụng gấp đôi cho phát triển trạng thái giả như HTTP; đến nỗi tôi chỉ biết một "mẫu" thực sự khác biệt được sử dụng trong thế giới web - mô hình dựa trên sự kiện ASP.Net WebForms sai lầm.

Tôi thực sự hơi ngạc nhiên khi có đủ cho cả một luận án.

Nhưng để trả lời câu hỏi của bạn. WebForms là một lát hẹp của web-pie chủ yếu là nhà của nó trong các ứng dụng kinh doanh mạng nội bộ. Các trang được mã hóa bằng spaghetti không có mẫu thực sự có thể chiếm một lượng khá lớn của sơ đồ Venn nhưng hầu như bất cứ thứ gì là khung đều bị ảnh hưởng nặng nề bởi MVC nên câu trả lời ngắn gọn của bạn sẽ là .


@geroge: Cảm ơn câu trả lời. Ha .. đừng lo lắng, phần mềm đi kèm với luận văn của tôi sử dụng MVC .. nó không thực sự trên MVC!
ale
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.