Вступление
У Drools Guvnor есть собственная система управления версиями, которая в производственном процессе позволяет пользователям приложения изменять правила и таблицы решений, чтобы адаптироваться к изменениям в своем бизнесе. Тем не менее, те же активы продолжают жить в системе управления версиями разработки, где разрабатываются новые функции приложения.
Этот пост предназначен для поиска идей / идей / опыта по разработке и развертыванию правил при работе с правилами Drools и Guvnor.
Ниже приведены некоторые ключевые концепции, которые вызывают у меня недоумение.
Развертывание на Гувноре
Прежде всего, как лучше всего развернуть файлы drl и таблицы решений в производственной среде? Просто поместите их в zip-архив, а затем разархивируйте в папку Web-Dav? В том, что я использовал в Drools, я не нашел способа импортировать более одного файла за раз. Однако модель фактов может быть добавлена в виде jar-архива. Кажется, у Guvnor есть какой-то REST API, но для его использования потребуются специальные сценарии развертывания.
Управление изменениями
Во-вторых, как только приложение будет запущено в производство, пользователи, скорее всего, захотят изменить значения в таблицах решений, чтобы установить более высокие проценты скидок для премиум-клиентов и т. Д. Все это нормально, пока не придет время начинать разработку версия 2.0 приложения.
На данный момент у нас есть
- drl-файлы и таблицы решений в системе контроля версий
- drl-файлы и таблицы решений в производственной среде с изменениями, внесенными пользователем, версиями, созданными Guvnor
Теперь мы находимся на стадии получения правил и таблиц решений от Руководителя. И снова папка Web-Dav для этого лучше всего, какие еще есть варианты?
Сегодняшние инструменты слияния могут даже обрабатывать различия файлов Excel, но для меня это звучит как ад слияния в крупномасштабных проектах.
Поддержание обратной совместимости модели фактов
Еще одна тема - целостность модели фактов. Для предполагаемой версии 2.0 разработчики всегда хотят провести рефакторинг и перевернуть всю модель фактов с ног на голову. Тем не менее, он должен оставаться обратно совместимым с предыдущими версиями, поскольку от этого могут существовать правила, измененные пользователем. Есть какие-нибудь советы по этому поводу? Просто держите модель фактов простой и понятной? Планировать заранее / предлагать, что пользователи могут захотеть изменить?
Резюме
Я уверен, что я не первый и, конечно же, не последний, кто рассматривает варианты развертывания и управления изменениями с помощью Drools и Guvnor. Итак, то, что я хотел бы услышать, - это комментарии, обсуждения, советы и т. Д. По некоторым лучшим (а также худшим, чтобы их избежать) методам решения этих ситуаций.
Спасибо.