Где JQuery / клиентское программирование вписывается в MVP и DDD - PullRequest
0 голосов
/ 10 января 2011

Я сейчас работаю над довольно большим проектом и пытаюсь реализовать архитектуру MVP. Я начинаю сталкиваться со случаями, когда я думаю, что JQuery или Javascript могут лучше подходить, чем серверный код Я ищу отзывы о том, как другие реализуют программирование на стороне клиента в своих корпоративных приложениях. Как вы структурируете код на стороне клиента и как определяете, когда его использовать?

Ответы [ 3 ]

0 голосов
/ 11 января 2011

Относительно того, как это вписывается в DDD: я только недавно начал свое путешествие в DDD, но много слышно о разделении команд / запросов в этом круге. Конечно, если вы делаете что-то, что попадает в ваш домен (например, выборка для автозаполнения или, конечно, если вы разрешаете частичную отправку страницы для выполнения команды домена), вы должны решить, как это происходит и как домен структурирован для обработки.

Я думаю, что два решения наиболее актуальны.

Во-первых, биты, полностью находящиеся в браузере, и даже те, которые находятся конкретно на уровне вашего приложения, находятся за пределами вашего домена и, таким образом, хотя они и рассматриваются в многоуровневой архитектуре в разделе обсуждения DDD, они не попадают в сущность / значение / событие / службу, и т.д. обсуждение. Однако, если вы используете AJAX для взаимодействия со своим прикладным уровнем и, в свою очередь, хотите получить доступ к своему домену, вам необходимо еще раз подумать о двух вещах.

(a) Вы разделяете команды и запросы, просто используя разные методы в своем домене? Хорошо, если у вас относительно небольшая потребность в запросах или командах, и это не будет выглядеть как «шум» в вашем доменном API. В противном случае у вас есть отдельный ограниченный контекст ... другой домен, смоделированный только для запросов, которые необходимы вашему пользовательскому интерфейсу, чтобы избежать беспорядка в вашем домене. В любом случае, вы делаете что-то вроде обработчика JS-> AJAX на уровне приложения-> домен (включая службу домена).

(б) Это команда или запрос? Как только вы выяснили (а), это даст вам знать, где будет доступ ... затем используйте сценарий использования уровня презентации, чтобы разработать концепцию домена и перевести ее на ваш вездесущий язык.

Во-вторых, у вас есть DTO против прямого решения для домена. Это может быть тема сбора религиозной войны, но обычно ответ «зависит». Я думаю, что есть случаи для использования DTO и случаи для не (в пределах той же архитектуры) ... просто ищите все обсуждения по теме и применяйте шаблон только там, где это добавляет ценность; Я не буду пытаться освещать детали здесь.

Надеюсь, это обеспечит некоторую проницательность или, по крайней мере, магнит для разговора, к которому добавят другие.

0 голосов
/ 18 января 2011

Я думаю, этот вопрос слишком субъективен. Похоже, я просто собираюсь посмотреть книги по продвинутому javascript и изучить библиотеку JQuery.

0 голосов
/ 10 января 2011
  1. Вещи, которые могут заставить пользователя сказать «вау».Например - заполнение результатов поиска, когда пользователь только что набрал 3-4 символа поискового запроса.Просто вернитесь в прошлое и подумайте о Yahoo или Hotmail, которые использовались для обратной отправки на сервер, когда вы нажимали «Создать сообщение».Но когда Google пришел, они просто сделали на стороне клиента, не заходя на сервер.Могу поспорить, вы бы сказали "вау" на это.По крайней мере, я сделал.
  2. Вещи, которые могут снизить нагрузку на сервер.Например: добавление дополнительной строки для ввода данных в таблицу HTML, вместо того, чтобы делать это в обоих направлениях, увеличение / уменьшение количества и т. Д.

Это всего лишь некоторые примеры для обзора.Даже для того, чтобы сделать все это правильно, вам нужно перейти на сервер, но это будет за сценой, используя ajax.Помимо этого вам нужно выбрать еще несколько плагинов jquery, которые вы будете использовать в своем проекте.Некоторые из них называются jQuery UI, jQuery Validation, jQuery AnythingSlider и т. Д. Их слишком много.

Http://ClearTrip.com - это один сайт, которому я завидую за их UX.Посетите их сайт с мобильного устройства, и вы получите дополнительные сведения об их работе с UX.Помимо простого кодирования, в вашей команде должен быть человек, который может работать над этими аспектами UX.

...