Estoy auditando un proyecto que usa lo que se llama Rules Engine. En resumen, es una forma de externalizar la lógica empresarial desde el código de la aplicación.Motor de reglas: pros y contras
Este concepto es completamente nuevo para mí y soy bastante escéptico al respecto. Después de escuchar a la gente hablar sobre Anemic Domain Models durante los últimos años, estoy cuestionando el enfoque del motor de reglas. Para mí, parecen una excelente manera de DEBILITAR un modelo de dominio. Por ejemplo, decir que estoy haciendo una aplicación web Java interactuando con un motor de reglas. Luego decido que quiero tener una aplicación de Android basada en el mismo dominio. A menos que quiera que la aplicación de Android también interactúe con el motor de reglas, tendré que perderme la lógica de negocios que ya estaba escrita.
Como aún no tengo ninguna experiencia con ellos, solo curiosidad, me interesaron los pros y los contras de utilizar un motor de reglas. El único profesional que se me ocurre es que no necesitas reconstruir toda tu aplicación solo para cambiar algunas reglas de negocios (pero, en realidad, ¿cuántas aplicaciones realmente tienen tantos cambios?). Pero usar un motor de reglas para resolver ese tipo de problema me suena como poner una tirita sobre una herida de escopeta.
ACTUALIZACIÓN - desde que se escribió esto, el dios mismo, Martin Fowler, tiene blogged about using a Rules engine.
¿Está buscando productos de terceros o va a hacer los suyos propios? –
Ese es un gran artículo de Martin Fowler, ¡gracias! –
tienes razón, son muy anti-OO. Vienen de un tiempo en el que OO no era común (eso lo explica en parte) pero sí, quieren trabajar con registros/objetos de valor que son "anémicos" como dices. Esto no es necesariamente algo malo, pero es lo que es. Si no te gusta, no te gustarán los motores de reglas. –