Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

EventsModel

Построение бизнес-логики. Модель событий.

Любой бизнес-процесс можно представить как цепочку событий. Например для интернет-магазина типичная цепочка событий может быть такой:

добавление товара в корзину, рассчет стоимости корзины, рассчет стоимости доставки, рассчет суммы скидки, оплата и формирование заказа, подтверждение заказа, корректировка данных заказа, изменение статуса заказа.

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

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

Альтернатива
Механизм наследования вкладок Nova вместе с иерархией страниц предоставляет богатые возможности для гибкой и эффективной организации кода. Дело остается за малым - как загрузить и выполнить этот код в нужном месте в нужное время? Здесь может пригодиться модуль loader.php - с его помощю можно загружать и встраивать в текущую структуру Nova вкладки из других ветвей. Тогда структуру приложения можно свести примерно к следующей:

/веб-сайт/... - представление для веб-браузеров
/мобильная версия/... - представление оптимизированное для мобильных устройств
/админчасть/... - закрытая часть доступная лишь клекрам
/обработчики событий/ - база обработчиков не доступна напрямую, а загружается по необходимости
           /событие A
                /событие А1
           /событие B
           /событие C
Edit - History - Print - Recent Changes - Search
Page last modified on January 16, 2011, at 05:52 PM EST