Чи є модель дизайну, крім MVC для Інтернету?


15

Хочеться знати, чи існують шаблони дизайну для Інтернету, крім MVC?

Я знаю, що існують такі схеми дизайну як: Реєстр, Оглядач, Фабрика, ActiveRecord, ... і MVC - це набір інших шаблонів дизайну та структури папок.

Чи є модель дизайну, як MVC, це набір інших моделей дизайну?

Редагувати: моя мова програмування - PHP.


Завжди є модель BBOM .
zzzzBov

1
@ Mr-Moqadam, будь ласка, подивіться - meta.stackexchange.com/questions/5234/…
Юсубов

Я вважаю, що наведені нижче відповіді відповідають на всі аспекти вашого питання. Ви можете прийняти найкращий і допомогти громаді.
Арпіт

А як щодо схеми Flux FB.
Мухаммед Умер

Дивіться також Перегляд Перший .
nawfal

Відповіді:


25

Існують різні закономірності в розробці програмного забезпечення; MVP, MVVM, MVC тощо - деякі відомі. Однак вам потрібно визначити конкретну проблему чи технологію, яку ви збираєтесь вирішити чи використовувати.

введіть тут опис зображення

Кожна з цих закономірностей хороша для вирішення деяких конкретних наборів проблем. Наприклад, модель MVP (Model View Presenter) допомагає ввести розділення проблем у розробці ASP.NET WebForms. Він полягає у розподілі обов'язків за збір, показ та зберігання даних із веб-сторінки на окремі об’єкти: об’єкт Model, об'єкт View та об’єкт Presenter.

Найвідоміша загальна кулінарна книга шаблонів дизайну - це шаблони дизайну Gang of Four (GoF) .

введіть тут опис зображення

Редагувати: я вважаю, що вас більше цікавить реалізація моделей дизайну на платформі .NET


1
+1 чи будемо ми жити з MVC, визначеним як візерунок, або технікою, яка незабаром чи поблизу побачить, що це наступник?
Незалежна

6
+1, але MVP, MVVM та MVC - це всі варіанти однієї теми: відокремлення (g) ui від логіки моделі та надання посередництву третьої сторони (контролер, ведучий) посередництва.
Мар'ян Венема

2
@ Містер-Мокадам: MVC спочатку виглядає як надмірний і складний. Він виконує те, що вам слід зробити, розділяючи інтерфейс користувача, логіку та дані. Єдине, що впевнене в розробці програмного забезпечення - це зміни. І як правило; 20% - це розвиток, 80% - підтримка. З цього погляду MVC, безумовно, варто докласти зусиль. Думаю, це також найосновніший зразок досягнення цього.
Бруно Шепер

3
@ Містер-Мокадам: Ні, це вам дуже допомагає, навіть якщо ви самотні. І особливо у великих проектах.
Бруно Шепер

1
@ Mr-Moqadam Хто коли-небудь говорив, що MVC - це схема розвитку команди? Я тривалий час займаюся розробкою наодинці з використанням PHP, і MVC є обов'язковим для мене, щоб тримати речі бездоганними. Ви намагалися використовувати будь-які рамки PHP?
Songo

7

Гарний зразок, до якого я потрапив кілька тижнів тому, - ПЕРЕМОГА . Це виглядає дещо складніше, ніж MVC, але базується на тому ж принципі. Одним із недоліків MVC є те, що ваші контролери можуть стати дуже-дуже великими. Використовуючи шаблон MOVE, ви трохи впораєтеся з цим питанням.

Інші зразки, названі іншими, також є хорошими альтернативами.


Я думав, що MVC рекламується за допомогою тонких контролерів ?! Ви знаєте приказку "Тонкі контролери та жирові моделі"
Songo

Так і є, але насправді контролери, як правило, дуже жирні.
Jan_V

2
Це тому, що ви ввели доменну логіку в контролери, що не було наміром оригінального MVC типу Krassner & Pope. Оригінальні контролери стосуються введення даних, наприклад. підключення клацання миші на (X, Y) координату в операції моделі (наприклад, підвищення температури в додатку термостата). Однак, більша частина шару контролера в сенсі MVC повністю автоматизована, а отже, невідома для розробника програми в рамках.
Аадаам

MOVE like flux
Мухаммед Умер

4

Перше, що потрібно встановити - це, що саме вам потрібно зробити, щоб вирішити, чи буде рамка та / або MVC (або інша модель дизайну) корисною чи ні.

Рамки існують для того, щоб забезпечити послідовну платформу для розробки, в той час як зазвичай пропонують рішення для загальних програмних вимог (таких як взаємодія бази даних, створення та перевірка форм, автентифікація користувача тощо).

Для PHP принаймні модель дизайну MVC / HMVC , як правило, домінує в основних доступних структурах (наприклад, Zend , CakePHP , CodeIgniter тощо), але існує багато різних моделей дизайну, які можна використовувати.

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

Важливо зауважити (і як це висловив @Marjan Venema у коментарі до відповіді @ ElYusubov), що MVC, MVP, MVVM та інші схеми MV x є (в основному принаймні) все тією ж «схемою дизайну».

Як правило, різні схеми дизайну служать (часто тонко) різним цілям, і в декількох випадках були розроблені з урахуванням конкретної мови. Однак справжня «схема дизайну» не є важким і швидким правилом програмування, і насправді є більш філософським / ідеологічним розумінням вимог щодо впровадження та проектування та логічних функцій.

Дослідження - це найкращий спосіб дізнатися про різні принципи програмування та передовий досвід. Ось декілька посилань у Вікіпедії, щоб розпочати:

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

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

Якщо у вас немає конкретного набору проблем для вирішення, то найкраща ставка для вивчення однієї з загальних рамок.


3

Одним з найвідоміших прикладів є Knockout.js, який є рамкою javascript, яка використовує шаблон дизайну MVVM . Тут є чудова стаття про переповнення стека, порівнюючи рамки MVC Backbone.js з Knockout.js .

Однозначним є те, що модель дизайну MVVM виникла від Microsoft як спеціалізація схеми дизайну ПМ Мартіна Фаулера. MVVM широко використовується програмами WPF.


Сторінку не знайдено!
Мухаммед Умер

1
@MuhammadUmer Спасибі, я оновив посилання. На жаль, StackOverflow видалив запитання на 1000+ балів. На щастя, автомат зворотного зв'язку не має суворої системи модерації.
dodgy_coder

Не здивований взагалі ... Я очікую, що всі сайти також будуть такими.
Мухаммед Умер

0

Як вказував Ельюсубов, рамки ASP.Net вже давно мають схеми MVP та MVVM, якщо шукати порівняно основні приклади. Однією з головних відмінностей між MVC та MVVM є те, як оновлюються ваші сутності; MVC краще підходить до традиційного підходу до веб-додатків без громадянства або напівдержавності. Рамка ASP.Net намагалася подолати це, підтримуючи свій стан вбудованим у форму (щоб його можна було відновити під кожен запит), завдяки чому шаблони MVP та MVVM мають більше сенсу.

За допомогою HTML5 програми стають все більш важкими для JavaScript, причому значна частина їх стану знаходиться на клієнті. Це може призвести до відновлення кадрів MVVM, і Knockout JS є одним із прикладів.


0

Більшість моделей у дикій природі - це MVC, або деякий аромат MVC. Адже має сенс розділити свої дані (Model), представлення (View) та взаємодію з ними (Controller). Якщо ви подивитесь на MVC, як він був заснований у 80-х, ви дізнаєтесь, що він ніколи не мав бути веб-рамкою. Таким чином, я виявив, що це дуже перевантажено в Інтернеті.

Іншою відомою схемою може бути сервісно-орієнтована архітектура (SOA). Побудований на цьому, сучасним підходом було б мати MVC (або аромат) на вашому сервері, лише щоб викрити послугу, з якою ви можете працювати. На стороні клієнта буде інший додаток у стилі MVC, наприклад, веб-додаток, що працює на HTML5 та JavaScript (наприклад, Twitter або Linked In). Клієнтська програма використовувала б вашу серверну службу ("Вид" сервера) як модель. IMHO, це було б найсучаснішим і, ймовірно, відсуне сервер лише MVC убік.


0

Я особисто розглядаю як реалізувати щось, що використовує ідею методів ресурсів , хоча на цьому етапі це здебільшого просто експеримент більше, ніж будь-що інше. Він має певні вагомі моменти в тому, що він моделює HTTP-запит / відповідь краще, ніж MVC (який призначений для довготривалих додатків, що працюють на одному комп’ютері, на відміну від короткочасних сеансів запиту / відповіді). Однак у нього є недолік, що якщо ви вкладаєте у свої ресурси методи для обробки GET, POST, PUT, DELETE тощо, то ваші ресурси з’єднуються на передній частині. Я думаю, що збираюся розділити це на інший шар.


0

Існує більше 1000 способів, окрім MVC, деякі з них схожі на MVC, а деякі зовсім інші

наприклад :

  1. Перегляд моделей-шаблонів - MTV
  2. Модель – перегляд – презентатор - MVP
  3. Ієрархічна модель - перегляд - контролер HMVC
  4. Перегляд моделі ViewModel- MVVM

тощо


1
це , здається, не пропонує нічого істотного по точкам зроблених і роз'яснено в попередніх 7 відповідей
комар

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