web-dev-qa-db-fra.com

Pourquoi devrais-je utiliser Drools?

Je ne suis pas un expert Drools. Cependant, je le connais un peu, en le testant ... Je ne peux pas comprendre pourquoi je devrais en avoir besoin.

Mes applications typiques sont des applications Web professionnelles. Oui, ils ont un certain nombre de règles. Celles-ci sont toutefois implémentées à l'aide de tables de base de données, de requêtes SQL et d'une interface utilisateur conviviale afin que les utilisateurs professionnels puissent modifier les règles. Les règles ne sont pas arbitraires, elles sont soigneusement pensées avant d'être mises en production.

Les utilisateurs de My Business n’utilisent jamais un langage de script (Drools) pour modifier Anything. Laissez seul modifier les règles. Ils sont parfaitement satisfaits d'utiliser les écrans d'interface utilisateur pour modifier les règles. De plus, ils peuvent faire des erreurs de syntaxe zillion dans un fichier Drools, si je les laisse n'importe où près de lui.

Encore 
- Pourquoi devrais-je utiliser Drools dans ce scénario?
- J'ai rencontré des fanatiques de Drools qui insistent sur le fait que je devrais changer tout mon code pour utiliser Drools.

Alors, Drools est-il utile? Je ne suis pas sûr.

28
Jasper

Les fanatiques de toutes tendances devraient être interrogés, peu importe le sujet sur lequel ils raffolent.

Les tables de décision basées sur les données constituent un excellent moyen d'implémenter un comportement complexe. Le jour où il ne s'adapte pas à vos besoins, vous voudrez peut-être envisager autre chose.

Je ne voudrais pas échanger de technologie dans un code de production fonctionnel à moins d'avoir une raison impérieuse. Cela prendrait beaucoup plus que le lobbying du fan boy.

Si vous êtes vraiment intéressé, faites une PoC et obtenez de vraies données. Sinon, apprenez à sourire poliment et à les ignorer.

J'ai déjà répondu à cela: 

Moteur de règles - avantages et inconvénients

MISE À JOUR: Si c'est votre patron, et que vous ne pouvez pas écarter votre candidature, réglez-la sur l'interface et essayez une implémentation de Drools dans une PoC. Si vous utilisez Spring, injectez-en un, puis l'autre, en mesurant les performances sous une charge de production significative. Obtenez des données réelles - peut-être que vous apprendrez tous les deux quelque chose.

17
duffymo
  • Drools est open source.
  • Il fournit un enchaînement en avant et en arrière de l'exécution des règles
  • Il fournit des définitions de règles de base de modèles
  • Il est implémenté avec JSR-94
  • Il a la facilité de table de décision
  • Ses règles sont lisibles par l'homme
  • Il est intégré au printemps
4
Rehan Rana

Prenons un exemple simple de bijouterie qui doit maintenir une logique de calcul du rabais en fonction du type de bijouterie. Cela peut être fait dans notre code Java. Mais ces règles peuvent changer tous les jours et doivent être mises à jour régulièrement dans notre code, ce qui n'est pas bon. De plus, nous aurons toujours besoin d'un développeur pour effectuer de tels changements. Il est donc recommandé de définir cette logique en tant que règles dans un système de gestion des règles de gestion. Si la remise doit être modifiée demain, cela peut être fait même par une personne non technique.

Tutoriel JBoss Drools

1
Rameez

Les avantages des moteurs de règles sont les suivants: 

  • Programmation déclarative : Les règles facilitent l’expression de solutions à des problèmes difficiles et la vérification de ces solutions. Contrairement aux codes, les règles sont écrites dans un langage moins complexe. Les analystes métier peuvent facilement lire et vérifier un ensemble de règles.
  • Séparation logique et données : les données résident dans les objets du domaine et la logique applicative dans les règles. Selon le type de projet, ce type de séparation peut être très avantageux.
  • Vitesse et évolutivité : L'algorithme Rete OO sur lequel Drools est écrit est déjà un algorithme éprouvé. Avec l'aide de Drools, votre application devient très évolutive. S'il y a des demandes de changement fréquentes, on peut ajouter de nouvelles règles sans avoir à modifier les règles existantes.
  • Centralisation des connaissances : En utilisant des règles, vous créez un référentiel de connaissances (une base de connaissances) exécutable. C'est un point de vérité unique pour la politique d'entreprise. Idéalement, les règles sont tellement lisibles qu'elles peuvent également servir de documentation ..__ Intégration d'outils: Des outils tels qu'Eclipse permettent de modifier et de gérer les règles et d'obtenir un retour immédiat, une validation et une aide au contenu. Des outils d'audit et de débogage sont également disponibles.
  • Fonction explication : Les systèmes de règles fournissent efficacement une «fonction explication» en permettant de consigner les décisions prises par le moteur de règles, ainsi que les raisons pour lesquelles les décisions ont été prises.
  • Règles compréhensibles : En créant des modèles d'objet et, éventuellement, des langages spécifiques à un domaine qui modélisent votre domaine problématique, vous pouvez vous configurer pour écrire des règles très proches du langage naturel. Ils se prêtent à une logique compréhensible pour les experts du domaine, éventuellement non technique, telle qu'elle est exprimée dans leur langue, avec toute la plomberie du programme, le savoir-faire technique étant dissimulé dans le code habituel.
0
Dr. Geek