Я великий шанувальник двигунів бізнес-правил, оскільки це може допомогти вам зробити життя набагато простішим як програміст. Одним із перших досвіду, який я мав під час роботи над проектом «Склад даних», було пошук збережених процедур, що містять складні структури CASE, що розтягуються на цілі сторінки. Налагоджувати це було кошмаром, оскільки було дуже важко зрозуміти логіку, застосовану в таких довгих структурах CASE, та визначити, чи є у вас перекриття між правилом на сторінці 1 коду та іншим зі сторінки 5. Загалом у нас було більше 300 таких правил, вбудованих у код.
Коли ми отримали нову вимогу щодо розробки, для чогось під назвою Destination Accounting Destination, який передбачав обробку понад 3000 правил, я знав, що щось має змінитися. Тоді я працював над прототипом, який згодом став батьком того, що зараз є двигуном Custom Business Rule, здатним обробляти всі стандартні оператори SQL. Спочатку ми використовували Excel як інструмент для створення авторів, а згодом ми створили додаток ASP.net, яке дозволить діловим користувачам визначати власні бізнес-правила без необхідності введення коду. Зараз система працює чудово, з дуже мало помилок, і містить понад 7000 правил для розрахунку цього пункту призначення бухгалтерського обліку. Я не думаю, що такий сценарій був би можливий, лише жорстким кодуванням.
Тим не менш, є такі обмеження:
- Потрібно мати ділових бізнес-користувачів, які чудово розуміють бізнес компанії.
- Існує значне навантаження на пошук всієї системи (у нашому випадку - Склад даних), щоб визначити всі жорстко кодовані умови, які мають сенс перекласти на правила, якими керується система управління діловими правилами. Ми також повинні були добре подбати про те, щоб ці початкові шаблони були повністю зрозумілими для бізнес-користувачів.
- Потрібно мати додаток, що використовується для створення правил, у якому реалізовані алгоритми виявлення перекриваються бізнес-правил. Інакше ти закінчишся великим безладом, коли ніхто більше не розуміє отриманих результатів. Якщо у вас є помилка в такому родовому компоненті, як Custom Business Rule Engine, виправити налагодження та застосувати широкі тести, щоб переконатися, що речі, які працювали раніше, також працюють зараз.
Детальніше про цю тему можна знайти у публікації, яку я написав: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
Загалом, найбільша перевага використання двигунів Business Rule Engine полягає в тому, що він дозволяє користувачам знову контролювати визначення та створення авторських правил, без необхідності відвідувати ІТ-відділ щоразу, коли потрібно щось змінювати. Це також зменшує навантаження над командами з розвитку ІТ, які тепер можуть зосередитись на створенні матеріалів з більшою доданою вартістю.
Ура,
Ніколае