¿Cuáles son las ventajas de separar 'resultado' de 'estado'

11

Digamos que tiene algunos procesos automatizados que generalmente pasan por los siguientes estados; programado - iniciado - validando - ejecutando - completado

Además, estos procesos pueden finalizar prematuramente debido a un error o cancelación explícita del usuario.

Mi primer impulso es simplemente agregar el error y cancelarlo a la lista de posibles valores de estado, pero me preguntaba sobre las ventajas (conceptuales) de separar el resultado del estado (aunque me parece que uno podría argumentar que el error y la cancelación también simplemente diferentes estados que el estado completado ).

marca
fuente

Respuestas:

12

El estado que asigne a sus procesos debe reflejar lo que su programa (o los usuarios, si solo está visualizando estados) van a hacer con esta información. Entonces, ¿tiene el requisito de evaluar / mostrar el estado de sus procesos siempre que se estén ejecutando y no muestren ningún error? Luego separe el resultado del estado . Si solo necesita el estado cuando finaliza un proceso, no se separe.

No debe modelar nada solo por modelar. Mejor revise sus requisitos. Y si no está seguro de lo que podría necesitar más adelante, elija la solución más pequeña y simple para los requisitos que conoce con seguridad. Si solo está "adivinando", en el 90% de los casos adivinará mal, por lo que tendrá que cambiar su modelo más tarde de todos modos.

Doc Brown
fuente
1

pero me preguntaba acerca de las ventajas (conceptuales) de separar el resultado del estado (aunque me parece que uno podría argumentar que el error y la cancelación también son simplemente estados diferentes que el estado completo).

Hay una gran ventaja en detallar el progreso e identificar los puntos de falla (dentro de límites razonables) como en su caso. Creo que la confusión proviene de los términos 'estado' y 'estado'. Debemos calificar esos términos. Entonces, por ejemplo, "Estado de la tarea", incluso eso no es muy preciso, por lo que es posible que deseemos usar el "Estado de ejecución de la tarea", sin embargo, esto es incorrecto porque ya tiene un paso de ejecución. Podemos usar el nombre "Estado de procesamiento de tareas" y los valores de: "iniciado - validación - ejecución - completado" tienen mucho sentido. De hecho, podríamos agregar 'Cancelado' a la lista. Sin embargo, 'Error' no responde una pregunta como: ¿Cuál es el estado de procesamiento de tareas muy bien? Parece que 'Error' es un subestado de Completado . ¿Asi que que hacemos? Podríamos renombrar Completado para serCompletado OK y luego podríamos agregar Completado con error a la lista. Entonces, la lista final de los valores de Estado de procesamiento de tareas son:

  • Iniciado,

  • Validado,

  • Ejecutando,

  • Cancelado,

  • Completado OK

  • Completado con error

Editar: ahora la lista anterior todavía requiere algo de trabajo. Los primeros 4 elementos no tienen la palabra 'OK' en ellos. Entonces, si es mejor estar allí para que coincida con el estado "Completado OK". La otra cosa es que los primeros 4 elementos no tienen "con error". ¿Qué significa eso? ¿Qué sucede cuando "Ejecutar" finaliza anormalmente? ¿Eso requiere un nuevo estado de "Ejecutado con error"? En este punto, se pueden requerir más aportes y análisis.

Ninguna posibilidad
fuente