Вопрос

Я прочитал здесь пару вопросов и различные статьи о MVC и вижу, как его можно применить даже к приложениям с интенсивным использованием событий графического интерфейса, таким как приложение для рисования.

Может ли кто-нибудь привести ситуацию, когда MVC может быть плохой вещью, а его использование опрометчивым?

РЕДАКТИРОВАТЬ:Здесь я говорю конкретно о приложениях с графическим интерфейсом!

Это было полезно?

Решение

Я попробовал MVC в своем драйвере сетевого ядра.Патч был отклонен.

Другие советы

Я думаю, вы смотрите на это как бы наоборот.Суть не в том, чтобы увидеть, где можно применить такой шаблон, как MVC, а в том, чтобы изучить шаблоны и понять, когда проблема, которую вы пытаетесь решить, может быть естественным образом решена путем применения шаблона.Итак, если ваше проблемное пространство можно естественным образом разделить на модель, представление и контроллер, то оно является хорошим кандидатом на MVC.Если вы не можете легко увидеть, какие части вашего дизайна попадают в эти три категории, возможно, это неподходящий шаблон.

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

Например, для создания CMS MVC бесполезен.У вас нет ни моделей, ни контроллеров, только страницы текста с декорациями и меню.Проблема больше не в обработке данных — теперь проблема в правильной подаче этого текстового контента.

Да, CMS Админ вполне можно построить на основе MVC, но это просто пользовательская часть, которая этого не сделает.

Для веб-сервисов лучше использовать REST, который, я считаю, представляет собой отдельную парадигму.

Приложение WebDAV также не получит особой пользы от MVC.

Предостережение относительно Ruby для веб-программирования заключается в том, что Rails лучше подходит для создания веб-приложений.Я видел, как многие проекты пытались создать сервер WebDAV или систему управления контентом CMS с помощью Rails и терпели неудачу.Хотя вы можете создать CMS на Rails, для этой задачи существуют гораздо более эффективные технологии, такие как Drupal и Django.На самом деле, я бы сказал, что если вы рассматриваете разработку Java-портала, вам следует вместо этого оценить Drupal и Django для этой задачи.

Все, куда вы хотите добавить сторонние компоненты, затруднит работу с шаблоном MVC.Хорошим примером этого является CMS.

Каждый компонент, который вы получаете, будет иметь свои «собственные» объекты контроллера, и вы не сможете совместно использовать «контроль» над передачей модели -> пользовательского интерфейса.

Я не уверен, что MVC когда-либо действительно был плохой идея для приложения с графическим интерфейсом.Но есть альтернативы, которые, возможно, лучше (а также, возможно, хуже, в зависимости от того, чье мнение вы спрашиваете).Наиболее распространенным является MVP.См. здесь объяснение: Все, что вы хотели знать о MVC и MVP, но боялись спросить.

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

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

MVC не следует использовать в приложениях, где производительность имеет решающее значение.Я не знаю, применимо ли это по-прежнему с увеличением вычислительной мощности, но одним из примеров является приложение колл-центра.Если вы можете сэкономить 0,5 секунды на вводе и обновлении информации при каждом вызове, эта экономия со временем суммируется.Чтобы получить максимальную производительность от вашего приложения, вам следует использовать настольное приложение вместо веб-приложения и заставить его напрямую обращаться к базе данных.

Когда это плохо?Везде, где есть другая структура кода, которая лучше подойдет вашему проекту.

Существует бесчисленное множество проектов, в которые MVC не «подходит», но я не понимаю, какую пользу принесет их список.

Если MVC подходит, используйте его, если нет, используйте что-нибудь другое.

MVC и ORM - это шутка... они подходят только в том случае, если ваше приложение не является приложением базы данных или когда вы хотите сохранить независимость базы данных приложения.Если вы используете СУБД, поддерживающую хранимые процедуры, это единственный путь.Сохраненные процедуры являются предпочтительным подходом для опытных разработчиков приложений.MVC и ORM продвигаются только компаниями, пытающимися продавать продукты или услуги, связанные с этими технологиями (например,Microsoft пытается продать VS).Перестаньте тратить время на изучение Java и C#, вместо этого сосредоточьтесь на том, что действительно важно: Javascript и SQL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top