Много ли используется шаблон MVC в промышленности? Что за шумиха? [закрыто]

16

Я студент, но надеюсь, что скоро перейду в индустрию программного обеспечения. Кажется, много шумихи по поводу паттерна программного обеспечения MVC. Я заметил, что PHP-фреймворки часто MVC, а как насчет не-веб-языков ... то же самое с ними? Для моей магистерской диссертации (C ++) я выбрал шаблон MVC, потому что он хорошо разделяет логику и пользовательский интерфейс.

В промышленности это часто используется? Если да, то каковы основные причины и каковы другие конкурирующие, популярные дизайны?

пиво
источник
13
MVC - это просто популярная реализация разделения интересов. Важно именно SoC, а не сам MVC.
Райнос
1
Возможно, вы захотите проверить «Каталог архитектуры корпоративных приложений» Мартина Фаулера, чтобы узнать о некоторых альтернативах / вариациях MVC, которые могли бы лучше подходить для конкретных приложений: martinfowler.com/eaaCatalog/index.html
Mchl
3
Также обратите внимание, что многие вещи, которые помечены как «MVC», на самом деле на самом деле не являются MVC, а скорее следуют (более новой) многоуровневой модели приложения: хранение данных - логика - представление (что, в любом случае, имеет больше смысла).
tdammers
MVC предшествует веб-программированию, если это вам что-то говорит.
Джереми

Ответы:

6

MVC получает много шумихи и использования, потому что это очень полезный шаблон для своей области.

MVC поощряет разделение интересов. Это может упростить разработку, если все сделано правильно. Любое приложение, которое отображает и / или изменяет данные, содержащиеся в хранилище данных, будет иметь функциональность MVC, но оно не может быть разделено. Нераспределение компонентов может привести к нежелательной взаимосвязи между проблемами.

С MVC должно быть относительно легко изменить интерфейс интерфейса (представление) приложения без изменения контроллера или модели. Это может быть желательно, если вам нужно разрешить доступ со смартфона, Интернета и одного или нескольких приложений.

Для больших команд MVC может позволить лучше использовать ресурсы, так как разработчикам может быть поручена работа на одном из уровней, и может не потребоваться много навыков на других уровнях. В зависимости от затрат на координацию ресурсов это может быть более эффективным.

BillThor
источник
12

Да, это используется много. Приложения для iPhone / iPad настроены как MVC. Я видел много приложений asp.net MVC в последнее время.

MVC обеспечивает большую гибкость в будущем и действительно поощряет разработчиков писать отдельный код для каждой функции. Облегчает обслуживание.

Тревор
источник
Каркас Apple Cocoa (используемый в MacOS X) - это эволюция NextStep, которая датируется концом 1980-х годов. NextStep, Cocoa и Cocoa Touch (используемые в iOS) широко используют MVC.
Калеб
4

Это сейчас в моде.

Никогда не стоит недооценивать силу обмана. Вскоре кто-то придумает что-то еще, более новое, блестящее и более простое для понимания, и все будут осуждать MVC как корень всего зла (случившегося с веб-формами), или будет так много людей, использующих его, что более седые ветераны осудить это как «управленческий бык * * » (произошло с XML). Или произойдет переход к другому шаблону, потому что MVC «недостаточно гибок для решения сверхсложной проблемы, которую мне нужно решить» (языки со статической типизацией и динамические языки).

В конце концов, MVC - это каркасный подход, который подходит для ряда проблем, которые бросает веб-программирование. Это будет какое-то время, но я представляю причину, по которой большинство людей используют его, чтобы быть в моде.

РЕДАКТИРОВАТЬ

Пожалуйста, обратите внимание: я хорошо знаю, что шаблон MVC существует уже много лет и использовался в фреймворках до asp.net MVC. Я просто говорю, что в настоящее время он довольно популярен, поэтому он получает больше прессы, чем другие подходы. Я использую MVC для всех своих личных проектов, а также использую его в коммерческих проектах (я - разработчик .net).

Это была не напыщенная речь.

Эд Джеймс
источник
7
-1 для: «В данный момент», если, например, вы не рассматриваете начало Smalltalk или Java / Swing в качестве технологии Момента, MVC слишком стар для этого.
Кепла
4
За исключением «в данный момент» довольно точно; До недавнего времени я практически не пользовался MVC, за исключением мира Java. Везде где-либо еще он не использовался до тех пор, пока Rails не стал популярным.
Уэйн Молина
4
Большинство GUI-фреймворков (не-html), с которыми я сталкивался, использовали MVC, и, похоже, они не использовались почти за последние 10 лет.
Кепла
1
На самом деле, MVC уже был раскручен MVP в некоторых частях вселенной.
Том Андерсон
3
Лично я ненавидел Webforms задолго до того, как ASP.NET MVC была даже концепцией. Иногда вещи популярны, потому что они на самом деле лучший вариант в большинстве случаев - и да, они могут быть заменены чем-то более новым и более мощным, но что с того? Это прогресс, а не реклама.
Ааронаут
3

По моему опыту, он используется не так часто, как следовало бы. Это гораздо лучшая модель, чем некоторые альтернативы, но в последние несколько лет она получила много ажиотажа; из-за этого существует много устаревших вещей, которые люди боятся конвертировать в MVC или боятся использовать MVC для будущей работы, потому что это за пределами их зоны комфорта.

Уэйн Молина
источник
1

Я думаю, вы обнаружите, что все семейство Stack Exchange работают на MVC

Garry
источник
Круто, не знал, что +1
эль
1

ASP.NET MVC приобрел большое значение для веб-приложений, поскольку .NET широко используется в промышленности.

Веб-приложения Microsoft эволюционировали от классического ASP до ASP.NET, основанного на веб-формах (чтобы дать возможность разработчикам VB6 Win Forms уже легко переводить их на новую границу Интернета).

К сожалению, веб-формы основаны на состоянии, а HTTP (на котором основана сеть) не имеет состояния, поэтому потребовалось немало неприятных обходных путей из-за таких вещей, как состояния просмотра.

ASP.NET MVC дает навыки, которые разработчики WebForms должны перевести на веб-среду с хорошим SoC и приложил немало усилий для того, чтобы быть тестируемым (поскольку WebForms не очень тестируемы, команда MVC приложила много усилий. усилия в рамки).

Тем не менее, это не панацея / серебряная пуля, и, как и любой каркас, есть времена, чтобы использовать его и времена, чтобы не использовать его. Надеюсь, люди не будут использовать его, чтобы попытаться решить все, в конце концов: когда ваш единственный инструмент - молоток, каждая проблема выглядит как гвоздь.

StuperUser
источник
1

Это просто исторический момент, поскольку MVC - это пара очень очень простых концепций, получивших ажиотаж от пары конкретных фреймворков, в которых это заметно в их маркетинговых материалах. Это также случается со многими из хороших методов, которые появились в разработке программного обеспечения. Это применяется дважды для псевдосостояния разработки, такой как HTTP; настолько, что я знаю только один действительно другой «шаблон», который используется в веб-мире, - модель, основанную на событиях ASP.Net WebForms с большим количеством клеветы.

Я, честно говоря, немного удивлен, что там достаточно для всей диссертации.

Но чтобы ответить на ваш вопрос. WebForms - это узкий кусок веб-пирога, в основном находящийся в бизнес-приложениях для интрасетей. Страницы с кодировкой спагетти без реального шаблона, вероятно, составляют приличную часть диаграммы Венна, но почти все, что является структурой, по крайней мере в значительной степени подвержено влиянию MVC, поэтому ваш краткий ответ будет оглушительным ДА .

Джордж Мауэр
источник
@geroge: Спасибо за ответ. Ха ... не волнуйся, программное обеспечение, включенное в мою диссертацию, использует MVC ... на самом деле оно не на MVC!
Але