Quels sont les avantages de séparer «résultat» de «statut»

11

Supposons que certains processus automatisés passent généralement par les états suivants; planifié - initié - validation - exécution - terminé

De plus, ces processus peuvent se terminer prématurément en raison d'une erreur ou d'une annulation explicite de l'utilisateur.

Ma première impulsion consiste simplement à ajouter une erreur et annulé à la liste des valeurs de statut possibles, mais je me demandais les avantages (conceptuels) de séparer le résultat du statut (même s'il me semble que l'on pourrait soutenir que l'erreur et l'annulation sont également états simplement différents de l' état achevé ).

marque
la source

Réponses:

12

L'état que vous attribuez à vos processus doit refléter ce que votre programme (ou les utilisateurs, si vous visualisez simplement les états) va faire avec ces informations. Avez-vous donc l'obligation d'évaluer / d'afficher l'état de vos processus tant qu'ils sont en cours d'exécution et ne présentent aucune erreur? Séparez ensuite le résultat du statut . Si vous avez juste besoin du statut à la fin d'un processus, ne vous séparez pas.

Vous ne devez rien modéliser juste pour le plaisir de modéliser. Mieux vérifier vos besoins. Et si vous n'êtes pas sûr de ce dont vous pourriez avoir besoin plus tard, choisissez la solution la plus petite et la plus simple pour les exigences que vous connaissez à coup sûr. Si vous ne faites que "deviner", dans 90% des cas, vous devinerez faux, vous devrez donc changer votre modèle plus tard de toute façon.

Doc Brown
la source
1

mais je m'interrogeais sur les avantages (conceptuels) de séparer le résultat du statut (même s'il me semble que l'on pourrait soutenir que l'erreur et l'annulation sont également simplement des états différents de l'état achevé).

Il y a un grand avantage à détailler les progrès et à identifier les points d'échec (dans des limites raisonnables) comme dans votre cas. Je pense que la confusion vient des termes «statut» et «état» - Nous devons nuancer ces termes. Ainsi, par exemple, "État de la tâche", même si ce n'est pas très précis, nous pouvons donc vouloir utiliser "État d'exécution de la tâche", mais cela est faux car vous avez déjà une étape d'exécution. Nous pouvons utiliser le nom "État de traitement des tâches" et les valeurs de: "initié - valider - exécuter - terminé" sont parfaitement logiques. En effet, nous pourrions ajouter «Annulé» à la liste. Cependant, «Erreur» ne répond pas à une question comme: Quel est le statut de traitement des tâches très bien. Il semble que «Erreur» soit un sous-état de Terminé . Alors que faisons-nous? Nous pourrions renommer Terminé pour êtreTerminé OK , puis nous pourrions ajouter Terminé avec erreur à la liste. La liste finale des valeurs d' état de traitement des tâches est donc:

  • Initié,

  • Validé,

  • Exécution,

  • Annulé,

  • Terminé OK,

  • Terminé avec erreur

Edit: maintenant la liste ci-dessus nécessite encore un peu de travail. Les 4 premiers éléments ne contiennent pas le mot «OK». Donc, s'il vaut mieux être là pour correspondre à l'état "Terminé OK". L'autre chose est que les 4 premiers éléments n'ont pas de "avec erreur" - Qu'est-ce que cela signifie? Que se passe-t-il lorsque "Exécution" se termine anormalement - Cela appelle-t-il un nouvel état de "Exécuté avec erreur"? À ce stade, davantage de données et d'analyses peuvent être nécessaires.

Aucune chance
la source