Saltar al contenido

Implementando un “motor de reglas” en Python

Contamos con la solución a este enigma, o por lo menos eso deseamos. Si presentas inquietudes deja tu comentario y sin dudar

Solución:

No inventes otro lenguaje de reglas.

Use Python o use algún otro lenguaje existente, ya depurado y en funcionamiento como BPEL.

Simplemente escribe tus reglas en Python, impórtalas y ejecútalas. La vida es más simple, mucho más fácil de depurar y, de hecho, ha resuelto el problema real de lectura de registros sin crear otro problema.

Imagina este escenario. Su programa se rompe. Ahora es el análisis de la regla, la ejecución de la regla o la regla misma. Debe depurar los tres. Si escribiera la regla en Python, sería la regla, y eso sería todo.

“Creo que sería difícil filtrar Python hasta el punto en que el usuario no pudiera hacer cosas locas con las reglas sin querer”.

Este es en gran parte el argumento “Quiero escribir un compilador”.

1) Eres el usuario principal. Escribirá, depurará y mantendrá las reglas. ¿Existen realmente ejércitos de programadores locos que harán locuras? ¿En serio? Si hay algún potencial usuario loco, habla con ellos. Enséñales. No luches contra ellos inventando un nuevo lenguaje (que luego tendrás que mantener y depurar para siempre).

2) Es solo procesamiento de registros. No hay un costo real para el locura. Nadie va a subvertir el sistema económico mundial con un manejo inadecuado de troncos. No haga una tarea pequeña con unas pocas docenas de líneas de Python en un intérprete de 1000 líneas para interpretar unas pocas docenas de líneas de algún lenguaje de reglas. Solo escribe las pocas docenas de líneas de Python.

Simplemente escríbalo en Python lo más rápido y claro que pueda y continúe con el siguiente proyecto.

También es posible que desee ver PyKE.

Reseñas y puntuaciones

Al final de la post puedes encontrar las observaciones de otros sys admins, tú igualmente tienes la libertad de mostrar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *