Введение в уруле
В связи с потребностями моей работы я обращаюсь ко многим фреймворкам правил с открытым исходным кодом, реализованным превосходным 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.