Pregunta

Tengo una aplicación que requerirá un motor de "reglas de negocio dinámicas". Algunas de las reglas de negocio cambia con mucha frecuencia. Algunos de entonces se aplica a un conjunto limitado de cuentas de negocios. Por ejemplo: mi cliente tiene un proceso que gocen tiendas, en función de su tamaño, número de la persona de ventas, número de productos, ubicación, etc, pero se las arregla cuenta diferente, y cada cuenta dan diferentes "pesos" a cada atributo.

¿Cómo se implementa este motor usando Ruby? Sé que Java tiene babea, pero me resulta molesto babea y complejo. Y prefiero no tener que usar JRuby ...

Saludos,

Rubem

¿Fue útil?

Solución

Si está seguro de un motor de reglas es lo que necesita, tendrá que encontrar uno que puede utilizar en Ruby. Una rápida búsqueda en Google criados Rools (http://rools.rubyforge.org/) y las Reglas de Ruby (http://xircles.codehaus.org/projects/ruby-rules). No estoy seguro de la situación de ninguno de los proyectos sin embargo. El uso de JRuby con Drools podría ser su mejor apuesta, pero, de nuevo, yo soy un desarrollador de Java y un gran Drools abogar. :)

Sin conocer todos los detalles, que es un poco difícil decir cómo debería implementarse. También depende de cómo desea que las reglas sean actualizados. Un método consiste en escribir una colección de normas similares a esto: "si existe una tienda con más de 50 personas de ventas y la tienda no ha tenido su peso actualizado para reflejar que, a continuación, actualizar el peso de la tienda." Sin embargo, de alguna manera se podría comparar a que hardcoding.

Un mejor enfoque podría ser la creación de objetos de peso con criterios que deben cumplirse para aplicar el peso. Posteriormente, se podría escribir una regla que coincide en ambos Pesos y Tiendas: "Si una tienda existe que coincide con los criterios de un peso, y la tienda no tiene ya que el peso asignado a él, a continuación, añadir el pesaje a la tienda." Entonces la gente de negocios sólo se podían crear y actualizar Pesas, posiblemente en una base de datos que terminó delante en la web, en lugar de mantener las reglas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top