Какие хорошие шаблоны для веб-фреймворка существуют? - PullRequest
4 голосов
/ 30 сентября 2010

Какие шаблоны проектирования были бы полезны для веб-фреймворка помимо MVC , безумия, вызванного Rails? Не говоря уже о том, что это плохо, но сейчас это практически повсеместно в веб-фреймворках.

В идеале шаблон должен быть проще:

  • Разделение интересов
  • Модульность / возможность многократного использования кода
  • Модульное тестирование

Какие шаблоны отвечают всем требованиям? Есть ли примеры фреймворков, которые следуют этому?

Ответы [ 6 ]

4 голосов
/ 30 сентября 2010

MVC не Безумие, вызванное Rails.Это восходит к Smalltalk.Вы также можете ознакомиться с историей в книге GoF, которая предшествует Rails.

Я не знаю о шаблонах, выходящих за рамки книги GoF, но я бы сказал, что общие идеи по созданию слоев (например,отдельные уровни сети, службы и постоянства) и декомпозиция применяются независимо.

3 голосов
/ 30 сентября 2010

Веб-фреймворк Lift следует тому, что его создатели называют View First .

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

Я рассматриваю это как инверсию дизайна RESTful, где URL-адреса сопоставляются с ресурсами, а представления являются способом отображения этих ресурсов. В View First URL-адреса отображаются на представления, которые могут извлекать и отображать любую произвольную коллекцию ресурсов.

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

(* Сложно вовлекать Django в подобные дискуссии, потому что по сути это MVC, хотя по незаметным причинам его создатели используют термины Model-View-Template. Здесь я, однако, назову view Django контроллер .)

1 голос
/ 30 сентября 2010

Голые объекты

http://www.nakedobjects.net/home/index.shtml

Я должен уточнить, что это использует MVC, но совсем по-другому

1 голос
/ 30 сентября 2010

Вы смотрели на MVP ?

Это хорошо известная альтернатива MVC, о которой говорится во многих «известных» книгах по шаблонам.

Вы можете прочитать здесь , что Мартин Фаулер фактически разделил MVP на две модели.

Вот одна платформа MVP для PHP .

А вот один для .NET .

Стоит отметить, что на парней .NET, ответственных за MVC, также влиял django, а не только рельсы.

0 голосов
/ 30 сентября 2010

Хотя MVVM (или DM-V-VM) уже упоминался, в сети MSDN есть хорошая серия об этом (хотя в основном это касается WPF). Если вы ищете другой пример DM-V-VM, я случайно написал PHP framework , в основном следуя шаблону.

Кроме того, я считаю, что существует довольно много разных интерпретаций MVC в разработке веб-приложений. Просто сравните идеи (в отношении MVC), например, Apache Struts и CakePHP . Я не использовал RoR, но я бы посмотрел дальше, чем просто RoR, чтобы получить хорошее представление о MVC (опять же, в dev для веб-приложения;).

0 голосов
/ 30 сентября 2010

Шаблон субъектного наблюдателя

Заводская модель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...