官术网_书友最值得收藏!

  • Mastering JBoss Drools 6
  • Mauricio Salatino Mariano De Maio Esteban Aliverti
  • 388字
  • 2021-07-09 19:58:41

When not to use a rule engine

Every project, in one way or another, can benefit from using business rules. They are highly performing, easy to change, and self-explanatory software components. However, there are a group of conditions that a project might have that would make use of business rules a bit of overkill. Some of the characteristics that make a project benefit the least from business rules are shown in the following:

  • There are very few, self-contained rules involved in the project: If the business rules identified in the requirement gathering are very simple and span about one or two objects at most, we don't need a rule engine to run them. A good rule of thumb is that if we can write the business rules that we need as the pseudo code in less than a page and with less than two nested if-then clauses, we might not need a rule engine at this particular time.
  • The business logic doesn't change often: If changing rules at runtime is not going to be needed but the logic is still complex, a rule engine might still be a good idea. However, if the complexity behind the rules is not that high and we can assume it will remain that way for a long time, we might not need a rule engine.
  • A very strict control of the execution flow is crucial for the application: As we stated before, a sequence-flow control is not provided when we execute our business rules. If the business logic behind the business rules depends a lot on a strict set of steps that need to be executed sequentially, business rules might not be the right fit. However, if it does change frequently, perhaps a business process would be worth considering.

It is still a responsibility of the project team to determine whether business rules might be a good fit even if these conditions are met. After all, our experience can lead us to think that the amount of rules has a big chance of growing in the future or there might be situations where the rules will eventually need to change more frequently. Each project has its own unique characteristics and it might be that a project with no need for business rules right now cannot be thought without them in the future.

主站蜘蛛池模板: 怀集县| 阿鲁科尔沁旗| 中阳县| 大同县| 河东区| 石林| 南部县| 铜陵市| 锡林郭勒盟| 邯郸市| 内江市| 临江市| 济源市| 民乐县| 阿拉善右旗| 会理县| 寿宁县| 西华县| 平谷区| 永胜县| 灵台县| 连云港市| 蓬安县| 宜春市| 汝州市| 上蔡县| 安丘市| 广水市| 秭归县| 闻喜县| 兴和县| 济阳县| 仙游县| 乌审旗| 弥渡县| 临泉县| 肇东市| 成武县| 广元市| 苗栗县| 巴马|