[Введение в Urule] Механизм визуальных правил с открытым исходным кодом

Java задняя часть Архитектура открытый источник Java EE продукт Операция
[Введение в Urule] Механизм визуальных правил с открытым исходным кодом

Введение в уруле

В связи с потребностями моей работы я обращаюсь ко многим фреймворкам правил с открытым исходным кодом, реализованным превосходным JAVA, таким как Drools и т. д., но я нашелВизуальная конфигурацияМеханизм правил, основанный на алгоритме RETE, его имя Urule, ниже приведена выдержка из официальной Urule Wiki:

URule是一款基于RETE算法纯Java的规则引擎产品。在URule当中提供了向导式规则集、脚本式规则集、决策表、
交叉决策表(PRO版)、决策树、评分卡及决策流共七种类型的规则定义方式,配合基于WEB的设计器,可快速实现
规则的定义、维护与发布。

Адрес проекта на гитхабе
Официальный вики-адрес

сцены, которые будут использоваться

Однажды одноклассник Xiaoye играл с кодом, и продукт MM нашел одноклассника Xiaoye, чтобы просмотреть потребности ежедневного входа в систему.Потребности, вероятно, такие:

 -5级以下用户登陆送5元红包
 -5级以上用户登陆送10元红包

Сяо Е взглянула, так просто! После набора двух строк кода запускается тест:

//登陆事件触发代码
if (user.getLevel() <= 5) {
    //发放5元红包
    rewardGenerator.send("5元红包");
} else {
   //发放10元红包
    rewardGenerator.send("10元红包");
}

Через сутки операционная ГГ попросила продукт ММ сообщить, что активность слишком популярна, а стеганая шерсть слишком серьезна, поэтому пришлось пересмотреть правила:

-用户必须实名认证
-5级以下用户登陆送3元红包
-5级以上用户登陆送7元红包

Одноклассник Сяойе спокойно изменил свою логику:

//没有实名认证不给奖励!!!
if (!user.isRealNameAuth()) {
    return;
}
if (user.getLevel() <= 5) {
    //发放3元红包
    rewardGenerator.send("3元红包");
} else {
   //发放7元红包
    rewardGenerator.send("7元红包");
}

Еще через неделю операция ГГ нашла товар ММ и сказала, что геймплей слишком простой и не достигает эффекта события.Для повышения играбельности события требование было изменено на такое:

 -用户必须实名认证
-5级以下用户
       -登陆送3元红包;
       -每日分享文章到朋友圈送1次抽奖机会;
       -论坛回帖15字以上超过10次赠送50元满减券;
-5级以上用户
       -登录送7元红包;
       -每日分享文章到朋友圈送2次抽奖机会;
       -论坛签到送1次抽奖机会;
       -论坛回帖1字以上赠送100元满减券;

Выражение лица Сяоя, который только что получил PRD, примерно такое (в то время я думал, как вложить так много if else):

Поэтому Сяойе начал спрашивать, есть ли у Baidu какие-то фреймворки, которые управляют GG и могут сами настраивать и генерировать соответствующие правила, и они действительно есть! Это выглядит так:

(Форма набора решений)

Это также может выглядеть так:

(Форма дерева решений)

Вы даже можете играть так (это не слишком круто для подсчета очков):

(форма оценочной карты)

Вышеуказанные три формы — это только вершина айсберга Уруле, главное, что нет визуальной конфигурации! Гораздо удобнее, чем писать мертвый код! Оружие, освобождающее программистам руки (конечно, зависит от случая и спроса)

Поэтому Сяойе интегрировал Уруле в свой проект, не говоря ни слова, и настроил дерево правил одно за другим в соответствии с требованиями:

Что Urule заражает Xiaoye, так это то, что все действия в нем могут быть настроены.Например, на приведенном выше рисунке бизнес-сценарий заключается в том, что MQ запускает проверку правил для таких событий, как вход пользователя в систему и совместное использование.Однако некоторые данные могут не передаваться из MQ: Под некоторые специальные данные пользователя мы можем настроить HTTP-интерфейс! ! Например, некоторые из его собственных действий полны трюков, и большинство из них удовлетворяют тому, что вы хотите сделать.

После того, как мероприятие было завершено, Сяойе быстро подключил Уруле к сети, после чего будущие правила будут настроены самим оператором GG.