Настраиваемые веб-приложения - PullRequest
3 голосов
/ 05 августа 2009

В моей компании мы разрабатываем готовые веб-приложения. Хотя во многих случаях наши приложения работают как есть, часто мы получаем сложные запросы на настройку. У нас возникла проблема при попытке сделать это структурированным способом. Общие функциональные возможности не должны зависеть от настроек. В данный момент мы рассматриваем Spring Web Flow, и похоже, что он может справиться с частью того, что нам нужно.

Например, у нас есть онлайн-шоппинг, и у нас есть запрос от клиента, чтобы в момент проверки заказа на покупку корзины он был записан в частную систему регистрации. С помощью SWF можно наследовать наш общий поток проверки с помощью ClientX Checkout Flow и расширять его состояниями, необходимыми для выполнения пользовательской записи журнала. Этот сценарий, кажется, обрабатывается хорошо. Это означает, что мы можем сохранить наш общий процесс оформления заказа как есть и расширить его с помощью пользовательских функций в соответствии с принципом «открыто / закрыто». Наша команда вовремя может добавить функциональность в общий процесс оформления заказа, который может быть передан клиенту без изменения расширения. Однако иногда клиенты просят, чтобы наши страницы были настроены. Например, в нашем приложении для онлайн-покупок клиент запрашивает функцию нескольких валют. В этом случае вам нужно изменить представление, а также поток (контроллер). Есть ли технология, которая позволила бы мне расширить общий вид, а не изменять его? Пока что только два решения с большинством представлений на основе шаблонов (JSP, Struts, Velocity и т. Д.) Кажутся

  • чтобы иметь конкретную версию представления для каждого клиента. Это явно приводит к реализации взрыва
  • , чтобы сделать приложение настраиваемым в зависимости от параметра (если затем несколько валют), который приводит к взрыву кода - число условий конфигурации, которые необходимо проверить на каждой странице

Что было бы лучшим решением в этом случае? Вероятно, есть некоторые другие случаи настройки, которые я не могу вспомнить. Может быть, есть технология представления на основе компонентов, которая позволила бы мне расширить определенное базовое представление и имеет ли это смысл. Каковы типичные решения проблемы настраиваемых веб-приложений?

1 Ответ

1 голос
/ 05 августа 2009

каждая точка настройки подразумевает определенный уровень обусловленности.

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

Еще одна мысль для этого примера валюты: 1 является ограничивающим случаем многих. Таким образом, модель предоставляет список валют. В представлении отображается селектор, если их много, и фиксированное поле, если оно только одно. Довольно четко определенное поведение - его легко протестировать для повторного использования в других сценариях.

...