Чи багато моделей MVC, використовуваних у промисловості? У чому вся галас? [зачинено]


16

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

У промисловості його багато використовують? Якщо так, то які основні причини та які інші конкуруючі, популярні дизайни?


13
MVC - це просто популярна реалізація розділення проблем. SoC - це важливо, а не сам MVC.
Raynos

1
Ви можете перевірити "Каталог архітектури прикладних програм підприємства" Мартіна Фаулера на наявність альтернатив / варіантів MVC, які можуть відповідати кращим конкретним програмам: martinfowler.com/eaaCatalog/index.html
Mchl

3
Також зауважте, що багато речей, що позначаються як "MVC", насправді насправді не є MVC, а скоріше слідують (новішій) багаторівневій моделі програми: зберігання даних - логіка - презентація (що, IMHO, має сенс все одно).
tdammers

MVC передує веб-програмуванню, якщо це вам щось говорить.
Джеремі

Відповіді:


6

MVC отримує велику кількість шуму та використання, оскільки це дуже корисна модель для домену.

MVC заохочує відокремлення проблем. Це може спростити розвиток, якщо це зробити правильно. Будь-яка програма, яка відображає та / або модифікує дані, що містяться в сховищі даних, матиме функціональність MVC, але вона не може бути розділена. Нерозщеплення компонентів, ймовірно, призведе до небажаного зв'язку між проблемами.

З MVC слід змінити інтерфейс інтерфейсу програми (Вид) додатка порівняно легко, не змінюючи ні контролер, ні модель. Це може бути бажано, якщо вам потрібно дозволити доступ зі смартфона, Інтернету та одного або декількох додатків.

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


12

Так, він використовується дуже багато. Програми iPhone / iPad налаштовані як MVC. Останнім часом я бачив багато програм MVC для asp.net.

MVC забезпечує більшу гнучкість в дорозі і дійсно заохочує розробників писати окремий код для кожної функції. Полегшує обслуговування.


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

4

Наразі це в моді.

Ніколи не варто недооцінювати силу ажіотажу. Незабаром хтось придумає щось інше, що новітнє, блискучіше і простіше зрозуміти, і всі будуть декларувати MVC як корінь усього зла (траплялося з веб-формами), або буде так багато людей, що використовують його, що більш грізних ветеранів дешифруйте це як річ "bull bull * * " (трапилося з XML). Або відбудеться перехід на якусь іншу схему, оскільки MVC "недостатньо гнучка для надскладної проблеми, яку мені потрібно вирішити" (мови статичного типу та динамічні мови).

Зрештою, MVC - це рамковий підхід, який підходить для ряду проблем, які викликає веб-програмування. Це буде деякий час, але я гадаю, що більшість людей використовує це в тому, щоб відповідати моторошкам.

EDIT

Зверніть увагу: я добре знаю, що модель MVC існує вже багато років, і вона використовується в рамках до MVC asp.net. Я просто кажу, що на сьогоднішній день це досить популярно, тому вона отримує більше преси, ніж інші підходи. Я використовую MVC для всіх своїх особистих проектів і використовую його і в комерційних проектах (я розробник .net).

Це не було розпукою.


7
-1 для: "На даний момент", якщо ви не вважаєте, наприклад, початок Smalltalk або Java / Swing як технологію Моменту, MVC трохи занадто стара для цього.
keppla

4
За винятком того, що "в даний момент" є досить точним; MVC майже не використовувався до недавнього часу, про що мені відомо, за винятком світу Java. Повсюди він не використовувався до тих пір, коли Rails став популярним.
Уейн Моліна

4
Більшість GUI-фреймворків (не html), з якими я стикався, використовував MVC, він не здавався «навряд чи використаним» для зустрічі протягом останніх 10 років.
keppla

1
Насправді, MVC вже вийшов із-за роздуття MVP в деяких частинах Всесвіту.
Том Андерсон

3
Особисто я ненавидів веб-форми задовго до того, як ASP.NET MVC був навіть концепцією. Іноді речі популярні, тому що насправді це найкращий варіант у більшості випадків - і так, їх може замінити щось нове і потужніше, але що ж? Це прогрес, а не ажіотаж.
Aaronaught

3

З мого досвіду, він використовується не так сильно, як слід. Це набагато краща модель, ніж деякі з альтернативних варіантів, але вона лише отримує багато галасу за останні кілька років; через це є багато спадщини, яку люди бояться перетворити на MVC або бояться використовувати MVC для подальшої роботи, оскільки це знаходиться поза їх зоною комфорту.


1

Я думаю, ви побачите, що сім'я Stack Exchange працює на MVC


Дивовижно, не знав, що +1
але

1

ASP.NET MVC здобув велику популярність для веб-додатків, оскільки .NET дуже часто використовується у цій галузі.

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

На жаль, веб-форми засновані на державі, а HTTP (на якому базується веб) є без громадянства, тому було потрібно багато неприємних обхідних ситуацій через такі речі, як перегляди.

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

Однак це не куля панацеї / срібла, і як і будь-яка рамка, є випадки, коли її можна використовувати, а часом не використовувати. Сподіваємось, люди не використовуватимуть це, щоб спробувати вирішити все, адже: коли ваш єдиний інструмент - молоток, кожна проблема виглядає як цвях.


1

Це лише момент в історії, оскільки MVC - це пара дуже дуже простих концепцій, які, мабуть, отримали ажіотаж від декількох конкретних рамок, які відображають його помітно у своєму маркетинговому матеріалі. Також трапляється спіткати більшу частину передового досвіду, що з'явився в розробці програмного забезпечення. Це застосовується вдвічі для псевдодержавних розробок, таких як HTTP; настільки, що я знаю лише про ще один по-справжньому інший "візерунок", який використовується у веб-світі, - згубну модель подій ASP.Net WebForms на основі подій.

Я, чесно кажучи, трохи здивований, що там достатньо для цілої дисертації.

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


@geroge: Дякую за відповідь. Ха .. не хвилюйся, програмне забезпечення, яке входить до моєї дисертації, використовує MVC .. це насправді не на MVC!
але
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.