Xpoint
   [напомнить пароль]

Событийно-ориентированная веб архитектура -- Зло? Предлагаю подискутировать

Метки: [без меток]
2008-02-18 23:48:13 [обр] Pil(0/22)[досье]
Здравствуйте!
Давно мучает такой вопрос: действительно ли абсолютным злом является событийная архитектура (ASP .NET, JSF и тд) в веб проектах и лучшее решение — использования априори классических MVC фреймворков (RoR, WebWorks aka Struts2 и тд)?
спустя 16 минут [обр] Дмитрий Попов(58/509)[досье]

Хороший вопрос. На пятерочку.

  1. А других решений кроме MVC и "событийной архитектуры" не существует, как я понимаю?
  2. Почему эти вещи противопоставляются? Особенно забавно видеть JSF как противопоставление MVC, хотя насколько я помню - он является всего-лишь одним из представителей семейства MVC-фреймворков...
  1. А те, кто работают на .Net или JSF - вообще получается заблуждаются, если ответ на вопрос положительный?

И резюмирующий ответ: Нет, не действительно. Все технологии имеют свои области применения, и все они хороши в определенном контексте использования.
ИМХО другой объективно-правильный ответ тут вряд-ли возможен.

спустя 10 часов [обр] Pil(0/22)[досье]

Ну, погнали по пунктам:

  1. Если и существует, то можно константировать — они не получили широкого распространения
  2. Я имен ввиду "настоящие" MVC фреймворки: Spring MVC, Struts, WebWork и Tapestry.
  3. А вот тут уже судите сами, могу только натолкнуть на размышеления. Microsoft, долго развивавшая идеологию ASP .NET, свернула недавно с этого пути и делает классический MVC движок - ASP .NET MVC.

Вооот...

спустя 35 минут [обр] Thirteensmay(9/157)[досье]
Pil[досье] Любой абсолют (правильный ответ) возможен лишь в ограниченном контексте, следовательно система оперирующая понятием абсолют - ограничена. Не стоит уподобляться такой системе ;)
  1. Это у Вас они не получили.
  2. Microsoft много чего делает.
спустя 2 минуты [обр] Pil(0/22)[досье]
Уважаемый Thirteensmay[досье], спасибо за столь аргументированный ответ.
спустя 12 минут [обр] Дмитрий Попов(58/509)[досье]
Pil[досье]
Ответ был аргументированный, только Вы этого не поняли.
  1. Получили и ими пользуются. Начиная от классических подходов с ведущим контроллером, при помощи которого делается 99% небольших и больших интернет-сайтов и заканчивая сверх-сложными и неработающими аспектно-ориентированными подходами. Изучите матчасть.
  1. Что есть "настоящий", и почему Стратс более настоящий чем JSF?
  1. Miscrosoft много чего делает, Вам правильно ответили. Они вот с Zend вроде недавно сотрудничать начали. Означает ли это что PHP лучше чем C#?
спустя 11 минут [обр] Pil(0/22)[досье]

Дмитрий Попов[досье]

Начиная от классических подходов с ведущим контроллером, при помощи которого делается 99% небольших и больших интернет-сайтов

Вы считаете, что тут архитектурно все ок?

  1. А делает его то, что в JSF в принципе построить без частичной интеграции C в V и C в M (обратите внимание, обсуждаю именно Struts2). Про ASP .NET вообще не говорю.
  2. Столь противоречащие своей ранее основной концепции шаги MS имхо делает редко, на это как минимум стоит обратить внимание.
спустя 2 часа [обр] Thirteensmay(9/157)[досье]
Начиная от классических подходов с ведущим контроллером, при помощи которого делается 99% небольших и больших интернет-сайтов
Вы считаете, что тут архитектурно все ок ?

Архитектура это не священная корова, а реальная штука зависящая от множества факторов, она не может быть "все ок" в общем смысле, как впрочем и любая др. вещь.

В конкретном случае, ну например мне необходимо организовать сервис просмотра статуса проходной, кто ходил, сколько, когда, без претензий к дизайну, функционалу, и гибкости, быстро, с минимальным потребление ресурсов и стоимостью, чисто утилитарная вешь для конторы не обладающей разветвленной ИС. Так вот, в этом случае я сделаю пару тройку CGI скриптов в лоб, без каких либо фреймворков, шаблонизаторов и т.п, и думаю буду прав, не хотите же Вы сказать что тут жизненно необходим Smarty или .Net, А вот скажем если встанет задача разработать интегрированную систему планирования и учета мероприятий для конторы с развитой ИС, то тут уже стоит подумать о том как наиболее оптимально использовать навороты с целью обеспечения гибкости, но по возможности не использовать их вообще. Или скажем вот еще пример: Устраивается на работу человек кроме скажем Delphi и Button1Click() ничего не щупавший, зато книжку ASP.NET купил, пробует, глаза горят, да бог с ним, пусть делает туже проходную, IIS у заказчика всеравно есть, а времени у меня нет.

Pil[досье] Создается впечатление что у Вас мягко говоря гипертрофированное представление о понятии архитектура, и относитесь вы к так называемому клану "теоретиков конфу". Не злитесь, я Вам не коза с ПМС, говорю как есть, возможно ошибаюсь. Считаю что решать задачи путем оперирования высокоуровневыми абстрактными сущностями, матюкаться когда они не обеспечивают уникальных возможностей, пытаться их доколбасить, ссылаясь на кривую архитектуру, опять таки мягко говоря нерационально. Реальные задачи гораздо проще решаются на более низком уровне. Повторю - Архитектура это не священная корова.

По поводу MS: Ну вопервых, не так уж и редко, а вообще стоит конечно обращать, но это не значит что из этого тутже надо делать однозначные выводы типа "MS бросила DOS значит DOS - полное г." Очевидно что DOS не полное г, и досихпор поддерживается и много где успешно используется, просто изменились условия, завтра они опять изменятся и Вы будете ломать себе голову что лучше MVC или NewParadigm. Просто поймите, без привязки к конкретному контексту ответить на этот вопрос невозможно.

спустя 15 минут [обр] Pil(0/22)[досье]

Thirteensmay[досье], Дмитрий Попов[досье] Ок, давайте тогда для определенности примим мой вопрос отностиельно больших проектов с участием более 10 человек, с архитекторами, аналитиками и всеми делами. Вот тут уж, извините, без продуманной и четкой архитектуры никуда. Прошу прощения, если ввел вас всех в заблуждение, изначально такие проекты имелись ввиду.

Thirteensmay[досье]Ну Вы, прям, из крайности в крайность). Тоже не обижайтесь на меня, если что.

спустя 13 минут [обр] Дмитрий Попов(58/509)[досье]
сообщение промодерировано

Исчерпывающий ответ. Я его заношу в избранное.

Pil[досье]
А большие проекты с архитекторами и аналитиками - это вообще отдельная, совершенно отдельная суть. Вы путаете, радикально путаете причину и следствие. Даже крупный проект, может иметь классическую ООП-архетиктуру с простейшим линейным шаблонизатором, без применения "стандартных" MVC, MVF и т.п.

А если брать проекты, допустим, уровня гугла, я уверен, что как таковая архитектура вообще очень слабо пересекается с классическими парадигмами и архитектурами - там совсем иные задачи. Мы опять вернулись к тому, с чего начинали.

Я вот лично наоборот, считаю что классический MVC применим в заточенных языках для небольших проектов, на которыми работает 1-5 человек, и которые в дальнейшем могут быть подвержены сильным изменениям совсем иными людбми.
При этом, опять же, лично на мой взгляд применение классического MVC-подхода, например, в PHP не только не очень полезно, но, зачастую и вредно, ввиду специфики языка. И это нормально.
А не-web проекты это вообще интересная стезя - и мне сложно понять как большинство из них могут работать не по событийной модели... В общем не все так просто

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

спустя 7 минут [обр] GRAy(3/259)[досье]
Я одного не понимаю - почему все как один приравняли "событийную модель" и MVC?
спустя 6 минут [обр] Pil(0/22)[досье]
GRAy[досье], Выскажите свое мнение! Именно для этого тему и создал...
спустя 1 час 33 минуты [обр] Дмитрий Попов(58/509)[досье]
GRAy[досье]
Почему приравняли? Кто приравнял?
Просто в рамках ответа на вопрос: "Действительно ли все кроме MVC ерунда" разницы между технологиями никакой.
спустя 30 минут [обр] GRAy(3/259)[досье]
Высказываю (хотя мне кажется это должно быть понятно и так ;)).
Событийная модель или событийно-ориентированая архитектура означает что между некими программными агентами (модулями, объектами, серверами и т.п.) взаимодействие происходит при помощи механизма подписки на события(уведомления). Т.е. существуют источники событий и обработчики событий, в самом общем виде связь между которыми может быть многие-ко-многим. Механизм этот служит в первую очередь целям loose coupling - т.е. обеспечивает относительно простые (и, что может быть даже важнее, контролируемые-понятные) пути для расширения/изменения функционала приложения Это особенно важно для приложений подразумевающими интеграцию в сильно разных окружениях или сложную внутреннюю модель взаимодействий.
MVC - модель-представление-контроллер, сиречь паттерн, предлагающий организовывать функциональные модули приложения по принципу взаимодействия с данными (модель - хранение, представление - отображение, контроллер - изменение).
Итого - происходит сравнение волосатого с синим. Ничего не мешает сделать mvc приложение используя событийно-ориентированную архитектуру - впрочем можно обойтись и без неё. Прекрасным примером объединения того и другого подходов может служить, например, Swing.
В силу оверхеда который в общем случае может накладывать событийно-ориентированная архитектура - в веб фреймворках типа того-же Struts её используют реже и предпочитают прятать от конечного пользователя подальше (а может и вообще от неё отказаться, но вы этого заметить не должны).
Наблюдаемый вами переход от событийной модели к mvc это, скорее всего, просто построение ещё одного уровеня "удобств" вокруг уже существующей платформы а не какой-то фундаментальный сдвиг парадигмы.
Дмитрий Попов[досье] Ну раз все сравнивают значит подразумевается что их вообще имеет смысл сравнивать. На мой взгляд его нет.
спустя 29 минут [обр] Дмитрий Попов(58/509)[досье]
GRAy[досье]
Собственно, если посмотреть тему с начала, то в первом же ответе я это же самое, только сверхкратко и описал:
Почему эти вещи противопоставляются?
=)))
спустя 33 минуты [обр] GRAy(3/259)[досье]
Дмитрий Попов[досье] Сорри если что не так понял. Просто в вашем ответе это выглядит как будто речь идёт о противопоставлении конкретных фреймворков, а не архитектур.
спустя 1 час 13 минут [обр] Дмитрий Попов(58/509)[досье]
Не... Речь о противопоставлении архитектур, и фреймвроков лишь как их части =)
спустя 3 минуты [обр] Pil(0/22)[досье]
Да, изначально ставился вопрос об архитектуре именно веб (J2EE/ASP.NET) приложений.
Powered by POEM™ Engine Copyright © 2002-2005