Зачем мне использовать Drools?

Я не эксперт по Drools. Тем не менее, я немного с ним познакомился, экспериментируя с ним. Я не могу понять, зачем мне это нужно.

Мои типичные приложения - это бизнес-веб-приложения. Да, у них есть некоторое количество Правил. Но они реализованы с использованием таблиц базы данных, SQL-запросов и приятного пользовательского интерфейса, позволяющего бизнес-пользователям изменять правила. Правила не произвольны, они тщательно продумываются перед тем, как ввести в производство.

Мои бизнес-пользователи никогда не будут использовать язык сценариев (Drools) для изменения чего-либо. Позвольте в одиночку изменять правила. Они совершенно счастливы, используя экраны пользовательского интерфейса для изменения правил. Кроме того, они могут сделать миллионы синтаксических ошибок в файлах Drools, если я позволю им хоть немного приблизиться к нему.

Снова
- Почему я должен использовать Drools в этом сценарии?
- Я встречал фанатиков Drools, которые настаивают, чтобы я изменил весь свой код, чтобы использовать Drools.

Итак, полезен ли Drools? Я не уверена.


person Jasper    schedule 03.10.2012    source источник
comment
Поймите, это действительно старый вопрос, но я просто хочу указать, что у Drools действительно есть некоторые пользовательские интерфейсы для приятного изменения правил, не беспокоясь о синтаксисе скрипта.   -  person Captain Man    schedule 14.02.2018


Ответы (3)


Следует допросить фанатиков всех мастей, какую бы тему они ни обсуждали.

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

Я бы не хотел менять технологию в рабочем производственном коде, если бы у меня не было веской причины. Это потребовало бы гораздо большего, чем лоббирование фанатов.

Если вам действительно интересно, сделайте PoC и получите реальные данные. Если нет, научитесь вежливо улыбаться и игнорировать их.

Я уже отвечал об этом раньше:

Механизм правил - плюсы и минусы

ОБНОВЛЕНИЕ: если это ваш босс, и вы не можете уволить его, сделайте его интерфейсным и попробуйте реализацию Drools в PoC. Если вы используете Spring, введите одно, а затем другое, измеряя производительность при значимой номинальной производственной нагрузке. Получите реальные данные - может быть, вы оба чему-нибудь научитесь.

person duffymo    schedule 03.10.2012
comment
Как улыбнуться своему боссу? :) - person Jasper; 03.10.2012
comment
Duffymo Мне интересно начать работу с Drools, не могли бы вы указать мне на какой-нибудь учебник, пожалуйста. - person Oh Chin Boon; 03.10.2012
comment
Разве страница проекта Drools не станет первым местом, где вы должны искать учебные пособия? jboss.org/drools - person duffymo; 03.10.2012

Преимущества движков правил:

  • Декларативное программирование. Правила позволяют легко формулировать решения сложных проблем, а также проверять решения. В отличие от кодов, правила написаны на менее сложном языке; Бизнес-аналитики могут легко прочитать и проверить набор правил.
  • Логика и разделение данных: данные находятся в объектах домена, а бизнес-логика - в правилах. В зависимости от типа проекта такое разделение может быть очень выгодным.
  • Скорость и масштабируемость. Алгоритм Rete OO, на котором написан Drools, уже является проверенным алгоритмом. С помощью Drools ваше приложение становится очень масштабируемым. Если есть частые запросы на изменение, можно добавить новые правила, не изменяя существующие правила.
  • Централизация знаний. Используя правила, вы создаете хранилище знаний (базу знаний), которое является исполняемым. Это единственная истина для деловой политики. В идеале правила должны быть настолько удобочитаемы, что могут также служить документацией. Интеграция инструментов: такие инструменты, как Eclipse, позволяют редактировать правила и управлять ими, а также получать немедленную обратную связь, проверку и помощь по содержанию. Также доступны инструменты аудита и отладки.
  • Возможность объяснения: системы правил эффективно обеспечивают «средство объяснения», имея возможность регистрировать решения, принятые механизмом правил, вместе с тем, почему они были приняты.
  • Понятные правила. Создавая объектные модели и, при желании, специфичные для предметной области языки, которые моделируют вашу проблемную область, вы можете настроить себя для написания правил, очень близких к естественному языку. Они поддаются логике, понятной, возможно, нетехническим экспертам в предметной области, поскольку они выражены на их языке, со всей программной системой, техническими ноу-хау, скрытыми в обычном коде.
person Dr. X    schedule 13.02.2019

  • Drools имеет открытый исходный код.
  • Обеспечивает прямую и обратную цепочку выполнения правил
  • Он предоставляет определения базовых правил шаблона
  • Реализовано с использованием JSR-94.
  • Имеет возможность таблицы решений
  • Его правила удобочитаемы
  • Он интегрирован с Spring
person Rehan Rana    schedule 24.05.2014