Приветствую всех коллег. Сейчас стоит задача разделения бизнес-логики верхнего уровня (декларативный подход, скажем, для бизнес-аналитика) от логики низкого уровня (императивный подход для разработчика) для SPA на, скажем, Backbone.js. Чтобы помочь понять, приведу простой пример.
На высоком (декларативном) уровне должны приниматься решения условий и последовательности для пользователя. Приведу условные примеры.
- Что будет при успешной регистрации пользователя?
- Что будет при ошибке регистрации?
- Последовательность действий после регистрации, скажем, из таких узлов: SMS-верификация, соглашение T&C?
форма оплаты, получение бонусов.
По моему мнению для реализации этого уровня подходят, к примеру, деревья принятия решений (в т. ч. и бинарные), таблицы принятия решений, НКА.
Низкий же уровень (императивный), в свою очередь, предоставляет высокому (декларативному) гарантированно работающие независимые, но совместимые и взаимозаменяемые логические узлы. Например: регистрация пользователя, отображение ошибки, форма оплаты, форма SMS-верификации, форма соглашения T&C и т. д. Почему совместимые и взаимозаменяемые? Во-первых, это повысит уровень дуракоустойчивости высокого (декларативного) уровня. Во-вторых, это удобно: SMS-верификацию и принятие T&C можно поменять местами только поменяв местами два ключевых слова.
Вопрос в следующем.
Как наиболее оптимально задать декларативное представление логики, к примеру, на тех же бинарных деревьях? Есть ли готовые решения под JS или JS-based системы? Как вы понимаете, логика должна описываться максимально просто и быть визуально понятной. Это одно из условий разделения, иначе частично теряется в этом смысл.
Делитесь мыслями, опытом. Может, кто сталкивался с таким? Может, есть идеи? Я уверен, что я уже не один задавался подобными вопросами. Спасибо заранее.