Меня попросили пустить слюни, тренируясь для моих товарищей по команде. Просто чтобы показать им, как это можно использовать и насколько это может быть полезно. Чтобы пройти этот тренинг, мне сначала нужно выучить Drools, и я решил, что лучший способ научиться этому - это небольшой проект, сосредоточенный на слюнях.
Есть интересные идеи?
Моя идея для этого проекта заключалась в том, чтобы выполнить некоторую проверку файлов потока webMethods (всего лишь несколько примеров проверки). Я бы сделал только валидацию - у нас есть собственный парсер этого формата файла.
Но то, что действительно работает, было бы неплохо.




Почему вы обучаете их инструменту, которым даже не пользуетесь? Как вы планируете его применять? Надуманный пример - это просто надуманный пример. Если у вас есть реальная потребность в технологии, примените ее к этой области. Как минимум, это может служить очень грубым доказательством концепции, чтобы увидеть, применима ли технология к вашей системе.
Надуманные примеры могут быть хорошими для демонстрации конкретного аспекта технологии, не углубляясь в несвязанный материал, который часто требуется на примере реального мира.
На самом деле, у нас есть проект, основанный на слюнях, вы можете попытаться имитировать это. :-)
Предположим, у вас есть входящие SMS-сообщения, поступающие по протоколу HTTP. HTTP-запрос содержит Anumber (номер телефона отправителя), Bnumber (номер телефона получателя) и текст сообщения.
Ваша цель - использовать слюни для маршрутизации сообщений в зависимости от их содержания в соответствующие службы. У вас должен быть набор правил, каждое из которых гласит что-то вроде: если Bnumber равен 1792, а текст сообщения содержит ключевое слово «VIDEO», то сообщение должно быть направлено в службу предоставления видео.
Фактически, мы используем именно эту настройку, маршрутизатор на основе слюни, который принимает сообщения из потоков HTTP-сервлетов и помещает их в очереди JMS в зависимости от их содержимого.
Вам было бы интересно поработать над этой программой? :-)
Один пример из предыдущего проекта:
Вы пытаетесь доставить посылку и хотите доставить ее через несколько транспортных компаний. Каждая компания заберет посылку на складе и доставит ее на другую базу, пока она, наконец, не достигнет места назначения. У каждой компании есть расписание, которое может представлять собой странное сочетание дней и времени. Например, каждый вторник и четверг, кроме 5-го вторника и первого четверга месяца, кроме государственных праздников. Каждая поездка между станциями займет определенное время. Учитывая фиксированный маршрут между станциями, сколько времени мне потребуется, чтобы доставить этот пакет с учетом времени начала?
Я приведу вам два реальных примера, которые моя компания использует прямо сейчас. Компания является одной из крупнейших в Бразилии в сфере электронной коммерции.
Drools используется для применения ценовых предложений и скидок на продукты, в то время как пользователи просто перемещаются по каталогу продуктов. Итак, перед тем, как предоставить ответ для пользовательского браузера, мы должны применить рекламные акции, связанные с ценой, рассрочкой и доставкой.
И при проверке продуктов могут быть применены рекламные акции в зависимости от региона адреса клиента, штата, возраста, пола, количества продукта, количества продукта в категории, комбинированных рекламных акций, праздников и т. д. Применение каждой акции влияет на весь список товаров, что требует применения новых правил до тех пор, пока касса не станет стабильной.
Это было действительно сложно, но работало очень хорошо. Drools также используется в других контекстах внутри этой компании.
Если вы пытаетесь изучить Drools, есть также довольно хорошая книга, которая недавно была опубликована. Его можно найти по адресу http://www.packtpub.com/drools-jboss-rules-5-0-developers-guide/book. Я уже некоторое время использовал Drools, когда он вышел, но бегло просмотрел его, чтобы изучить некоторые новые концепции. Некоторые из моих товарищей по команде также прочитали книгу и согласились, что она помогла им понять инструмент / приложение.
Есть несколько неудач. Информация организована не очень хорошо. Вы должны прочитать его от корки до корки, иначе вы обязательно пропустите некоторые основополагающие концепции, которые помешают вам учиться в дальнейшем. Также код примера может быть немного сложным для работы. В целом, я бы сказал, что это поможет сгладить вашу кривую обучения.
Проще всего было бы сыграть в игру, скажем, в карты. Покер может быть немного сложным, но пики, старая дева и т. д. Могут быть проще.
Мы не знаем, в каком жизненном положении находится этот человек - возможно, ему недоплачивают технический писатель, которому все еще был поручен этот проект. Думаю, это бесполезный ответ.