Показать сообщение отдельно
  #40 (permalink)  
Старый 22.07.2010, 18:07
Аспирант
Отправить личное сообщение для Panzermaus Посмотреть профиль Найти все сообщения от Panzermaus
 
Регистрация: 14.07.2010
Сообщений: 43

Сообщение от subzey
данные (модель) всегда в бэкенде
Сообщение от subzey
Зато в моём видении брать посчитанные значения css для элемента не просто некрасиво, а неправильно.
Не понял Сейчас расшифрую, что я имел в виду, а потом расшифруйте вы

Сообщение от x-yuri
не зависит, ну и что? Но вид/контроллер может отображать какую-нибудь сводную таблицу на основе нескольких источников
Да, ты прав, это тоже причина отделять модель от остального. Со словом "сводную" стало понятно. А то я подумал, что один и тот же вид/контроллер отображают, например, сперва товар, а в следующий момент юзера

Сообщение от x-yuri
и давайте если продолжать, то как-то конретнее, на каких-то примерах... ну я выше говорил.
Поддерживаю, лучше говорить о конкретных примерах, а то каждый явно думает о своем.

Начну Мой текущий проект (моя часть проекта) это что-то навроде автокада (Увы, не могу показывать недоделанный, не решаю таких вопросов Так что могу только рассказывать словами.) Короче редактор. Объектная модель типичного документа - связанные древовидно и как попало 100-300 объектов 15-ти разновидностей. У документа несколько представлений:
  • интерактивный 2D чертеж;
  • интерактивный псевдо-3D чертеж;
  • труЪ 3D представление (пока еще конь не валялся );
  • небольшой read-only эскиз вроде Navigator-а в фотошопе;
  • окно свойств выделенного объекта как боковая панель в 3dsmax;
  • текстовое таблично-древовидное представление.
Пользователь может их скрывать/показывать как ему заблагорассудится.

Делаю в духе MVC. Так как между объектами M (их свойствами) и элементами HTM/SVG/VML DOM (их атрибутами) нет прямого соответствия, то M - это просто набор JS-объектов, никакой связи с DOM не имеющих. M извещает C об изменениях. C знает, какие Vs видимы (управляет этим), и извещает их. C мог бы извещать Vs и без напоминаний от M, так как он знает, когда M изменилась. Однако из за низкой производительности полные перерисовки Vs недопустимы, и нужно точно знать список изменившихся объектов, и поэтому требуется извещение от M. В этом смысле M активна, но она пассивна в том смысле, что Vs сами берут из нее укзанные данные (тоже из-за производительности). Vs привязывают к событиям DOM (click, change) обработчики, которые преобразуют их в события приложения ("команды": Select, PropertyChange), попадающие в C. C, если того требует команда, вызывает методы M. Не все команды исполняются на клиенте, некоторые требуют запросов к серверу. Всем обменом ведает C, кроме этого он поддерживает undo/redo-стэк, и еще кое какой сервис для Vs вроде панелей инструментов и справки.

Да, и еще! Справочная система - отдельный независимый модуль. В том смысле независимый, что пишется другим человеком, имеет собственный серверный бэкенд и используется также в других частях проекта (которые делают другие люди). Возможно будут еще какие-то модули (реклама однозначно).

Такой вот пример. Короче, приложение смахивает не десктопное и делается как десктопное. Не увидел специфических для веба приемов и явлений (разве что низкая производительность), которые бы заставили отказаться от MVC или существенно его видоизменить. Но может, уважаемый All что-то посоветует?
Ответить с цитированием