Должен ли обычный и мобильный сайт быть отдельно весной? - PullRequest
2 голосов
/ 20 ноября 2011

Я собираюсь начать разработку сайта, который будет иметь обычную и мобильную версию с использованием Spring. На данный момент мне нужно принять решение о том, как подойти к этому. Я предвижу два варианта:

  1. Независимые сайты на одном сервере. Разработайте независимый набор контроллеров и представлений для каждого из сайтов. Попытка максимально использовать контроллеры.

  2. Смешанные сайты. Разрабатывайте контент-ориентированные контроллеры, которые будут отправлять разные представления в зависимости от типа устройства. Контроллеры отправляют в разные представления в зависимости от устройства.

Вариант 1 кажется более практичным, но я боюсь, что в конечном итоге я получу много повторений контроллера. Также мне нужно разделить сайт на http://something.com/ и http://something.com/m в качестве базы для мобильной версии.

Вариант 2, похоже, очень скоро станет неуправляемым, поскольку изменения в обычной версии будут влиять на мобильную. Тем не менее, он будет иметь гораздо больше повторного использования кода.

Как бы вы подошли к этому?

Ответы [ 2 ]

3 голосов
/ 20 ноября 2011

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

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

Определите общую логику в виде bean-компонентов в файле /WEB-INF/applicationContext.xml bean-файла уровня webapp. Затем определите отдельный DispatcherServlet для каждого сайта, содержащий определенные контроллеры, совместно использующие общие компоненты.

0 голосов
/ 20 ноября 2011

Если отличается только представление, то есть разные представления, но одна и та же модель и одна и та же бизнес-логика, я бы предложил попытаться идентифицировать клиента в аспекте для каждого контроллера.

Если бы они использовали разные базовые вызовы, я бы выбрал дополнительные контроллеры с разными URL-адресами, но все еще в одном и том же сервлете.

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