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.
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.
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.
Les avantages des moteurs de règles sont les suivants: