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