Je suis un grand fan de Règles de gestion des Moteurs, car il peut vous aider à rendre votre vie beaucoup plus facile en tant que programmeur. L'une des premières expériences que j'ai eu en travaillant sur un projet d'Entrepôt de Données a été de trouver des Procédures Stockées contenant de CAS complexe des structures qui s'étend sur des pages entières. Il a été un cauchemar pour le débogage, car il était très difficile de comprendre la logique appliquée dans de tels CAS des structures, et de déterminer si vous avez un chevauchement entre une règle à la page 1 du code et de l'autre à partir de la page 5. Dans l'ensemble, nous avons eu plus de 300 de ces règles intégrées dans le code.
Lorsque nous avons reçu les nouvelles exigences de développement, de quelque chose qui s'appelle la Comptabilité de Destination, qui était impliquant le traitement de plus de 3000 règles, je savais que quelque chose devait changer. A l'époque, j'ai travaillé sur un prototype qui plus tard pour devenir le parent de ce qui est maintenant une Coutume moteur de règles d'Entreprise, capable de traiter tous de la norme SQL opérateurs. Au départ, nous avons été à l'aide d'Excel comme un outil de création et , plus tard, nous avons créé une ASP.net application qui permettra aux Utilisateurs de définir leurs propres règles métier, sans avoir besoin d'écrire de code. Maintenant, le système fonctionne très bien, avec très peu de bugs, et contient plus de 7000 règles pour le calcul de cette Comptabilité de Destination. Je ne pense pas qu'un tel scénario aurait été juste de coder en dur. Et les utilisateurs sont assez heureux qu'ils peuvent définir leurs propres règles sans que CELA devienne leur goulot d'étranglement.
Encore, il y a des limites à une telle approche:
- Vous avez besoin d'avoir capable d'entreprise les utilisateurs qui ont une excellente compréhension de l'activité de la société.
- Il y a une charge de travail importante à la recherche de l'ensemble du système (en
notre cas d'un Entrepôt de Données), afin de déterminer tous codés en dur
des conditions qui font sens pour traduire dans les règles pour être manipulé par
un Moteur de règles. Nous avons aussi eu à prendre soin de ces
initiale des modèles pour être parfaitement compréhensibles par les Utilisateurs.
- Vous avez besoin d'une application utilisée pour les règles de création, dans lequel
algorithmes pour la détection de chevauchement des règles de gestion mises en œuvre. Sinon vous vous retrouverez avec un gros gâchis, où personne ne comprend plus les résultats qu'ils obtiennent.
Lorsque vous avez un bug dans un composant générique comme une Coutume Moteur de règles, il peut être très difficile à déboguer et d'impliquer des tests approfondis pour s'assurer que les choses qui a travaillé également à travailler maintenant.
Plus de détails à ce sujet peuvent être trouvées sur un post que j'ai écrit: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
Dans l'ensemble, le plus grand avantage de l'utilisation d'une Règle d'Entreprise Moteurs est qu'il permet aux utilisateurs de reprendre le contrôle sur les Affaires de définitions de règles et de création, sans avoir besoin d'aller pour le département chaque fois qu'ils ont besoin de modifier quelque chose. C'est aussi le réduit la charge de travail de plus de équipes de développement informatique, qui peut maintenant se concentrer sur le renforcement des trucs avec plus de valeur ajoutée.
Cheers,
Nicolae