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