Conventions de dénomination: "État" contre "Statut" [fermé]


175

Question rapide: j'aimerais savoir quand utiliser "State" par rapport à "Status" pour nommer les deux champs tels que "Foo.currentState" vs "Foo.status" et les types, comme "enum FooState" vs "enum FooStatus ". Y a-t-il une convention discutée là-bas? Devrions-nous n'en utiliser qu'un seul? Si tel est le cas, lequel et si non, comment choisir?


14
Il h. L'autre jour, au travail, je suis tombé sur une structure qui avait un membre nommé «État» et un autre membre nommé «statut», et c'étaient des choses différentes. J'ai commencé à réfléchir à ce que les mots signifiaient, et à savoir s'il fallait le changer, mais le code était vieux et cruel et fonctionnait, alors j'ai laissé ce chien endormi mentir. Oh .. cela aurait probablement dû être un "commentaire" plutôt qu'une "réponse, hein? Comment, réponse, état, statut ... peu importe.
smcameron

9
Et bien sûr, c'est fermé. Bon vieux SO.
jn1kk

2
@jsn non seulement est-il fermé (qu'est-ce qui ne l'est pas ces jours-ci?), mais c'est toujours de loin la chose la plus populaire à laquelle j'ai contribué ici :)
Sophistifunk

8
C'est une question de programmation légitime. martinfowler.com/bliki/TwoHardThings.html

2
Le statut est une simple étiquette, comme «sain», «dégradé», «indisponible», etc. L'état comprend tous les détails sanglants; par exemple, utilisation du processeur et moyennes de charge, utilisation de la mémoire, métriques JVM, utilisation du disque, etc.

Réponses:


107

ça dépend du contexte

L'état se réfère généralement à l'état entier d'une entité - toutes ses valeurs et relations à un moment donné (généralement, actuel)

Le statut est plus un point temporel, par exemple, où quelque chose se trouve dans un processus ou un flux de travail - est-il sale (nécessite donc une sauvegarde), est-il terminé, est-il en attente d'entrée, etc.

J'espère que cela vous aidera dans votre décision.


211

OMI:

status == comment vas-tu? [bon mauvais]

état == que faites-vous? [repos / travail]


17
Où étiez-vous en 2009? Cette réponse est la plus logique dans le jargon technique (état du processeur, état du thread, machine à états; état de retour, état du volume de raid, etc.), et même beaucoup de tout le reste (état de l'application, état du compte, etc.). La seule chose à laquelle je peux penser est incohérente, ce sont des choses comme "l'état des choses" ou "l'état des choses" qui ressemblent plus à votre "statut" (bonne / mauvaise idée des choses qui se passent, plutôt que des choses qui aller sur eux-mêmes).
Peter

4
L'état implique également qu'il contient plus d'informations que simplement «se reposer / travailler» - mais tous les détails sur le travail (ou le repos) qu'il effectue.
BrainSlugs83

3
"Je construis une cabane dans les arbres dans la cour arrière de mon frère" serait un exemple d' état plus détaillé , comme vous le suggérez, @ BrainSlugs83. Dans cet exemple, mon état peut être fatigué / en sueur / plein d'énergie / heureux.
spemble

4
J'adore cet exemple. Propre et concis. Pour mon usage pratique, je pourrais le généraliser à un axiome en disant que cela Statedevrait refléter le "nœud indiqué" dans un graphe de nœuds d'état de machine à états (ou workflow), où la description pourrait facilement être un adjectif verbal (se termine souvent par " -ing "), alors que Statusc'est une propriété simple de l'objet, un adjectif simple, qui pourrait être utilisé par un déclencheur ou comme valeur observée pour une décision de changer (ou de conserver) un état. J'y réfléchis probablement trop. Je fais ça ..
Alan McBee - MSFT

6
Je suis d'accord: STATUS est le résultat ou la progression d'un changement de STATE.
Neil

16

En règle générale, j'utiliserai État pour désigner l'état actuel d'un objet ou du système dans son ensemble. J'utilise le statut pour représenter le résultat d'une action. Par exemple, l'état d'un objet peut être enregistré / non enregistré, valide / invalide. L'état (résultat) d'une méthode est réussi / échec / erreur. Je pense que cela concorde assez bien avec la définition du statut comme « état ou condition par rapport aux circonstances », les circonstances en l'espèce étant l'application d'une action / méthode.


8

Une autre raison (entièrement pragmatique) de préférer l'état au statut est que le pluriel est simple:

  • état -> états
  • statut -> statuts

Et croyez-moi, vous aurez tôt ou tard une liste ou un tableau ou tout autre état dans votre code et devrez nommer la variable.


3
Je me demande simplement, le pluriel de status ne devrait-il pas être stati?
BiAiB

Wiktionary dit les statuts: en.wiktionary.org/wiki/status#Noun . D'autres langues ont cependant des pluriels différents.
robinst

9
Le pluriel latin est "statūs", avec un long u, pas stati.
Paŭlo Ebermann

6

Je pense que beaucoup de gens utilisent «Statut» pour représenter l'état d'un objet si pour aucune autre raison que «État» se réfère à une division politique des États-Unis.


11
ce n'est pas la raison pour laquelle je n'ai jamais utilisé, ni quiconque avec qui j'ai travaillé ou lu du texte ...
Luke Schafer

4
Et alors? C'est une raison valable. C'est une convention de dénomination.
Dave Markle

4
Oui. En Australie également, nous utilisons le terme État pour décrire les anciennes colonies individuelles qui ont été unifiées dans le Commonwealth en 1901. J'ai donc tendance à n'utiliser que .status, car avoir .state est souvent utilisé dans les structures de données qui ont une adresse.
Matthew Schinckel

Donc address.state = Tasmanie; est logique, mais on ne s'attend pas à ce que device.state implique la géographie.
spemble le

3

Je pense que vous pourriez ajouter une autre perspective à l'équation, à savoir «expéditeur-demandeur».

Du point de vue des expéditeurs, je communiquerais mon état à quiconque est prêt à écouter. Du point de vue des demandeurs, je demanderais le statut de quelqu'un.

Ce qui précède pourrait également être interprété du point de vue de l'incertitude:

  • Défini = état
  • Indéfini = état

Quel est votre statut? Je suis dans un état détendu.

Je suis presque sûr que ce n'est qu'une interprétation, qui peut ne pas s'appliquer à votre situation particulière.


1

Une vérification rapide du dictionnaire révèle que l'état est synonyme d'état, mais a une interprétation supplémentaire d' une position par rapport à celle des autres .

J'utiliserais donc state pour un ensemble d'états qui n'ont pas d'ordre ou de position implicite les uns par rapport aux autres, et un statut pour ceux qui le font (peut-être hors veille?). Mais c'est une belle distinction.


1

Un grand nombre des entités avec lesquelles je traite (comptes, clients) peuvent avoir un État (TX, VA, etc.) et un Statut (Actif, Fermé, etc.)

Le fait que le terme soit trompeur est donc possible. Nous avons une convention de dénomination de base de données normalisée (ce n'est pas mon choix personnel) où un état est nommé ST_CDet un statut le serait ACCT_STAT_CD.

Avec une énumération dans un milieu OO, ce problème n'est pas aussi important, car si vous avez une sécurité de type stricte, le compilateur s'assurera que personne ne tente de le faire:

theCustomer.State = Customer.Status.Active;

Si vous êtes dans un environnement dynamique, je serais plus inquiet!

Si vous avez affaire à un domaine où les machines d'état ou d'autres informations d'état et cette terminologie sont prédominantes, alors je pense que l'état est parfaitement bien.


L'adresse appartient à l'adresse du client, et non au client en soi, par exemple theCustomer.MailingAddress.State = Iowa;
spemble le

@spemble Possiblement, et peut-être pas. Cela peut aussi être un état de naissance ou un état de résidence lorsqu'il est attaché à une personne absente d'une adresse, et bien sûr peut être attaché à de nombreuses autres entités comme des adresses, des licences, des permis, etc. En tout cas, je ne suis pas sûr il est pertinent pour la question de savoir s'il y a ambiguïté avec l'utilisation d'un terme de domaine de problème commun comme State pour une implémentation spécifique d'une machine d'état / d'un indicateur / d'un statut. Et puis si l'état ou le statut ont ou n'ont pas des significations différentes.
Cade Roux le

0

Nous avons eu ce débat exact sur mon projet actuel il y a quelque temps. Je n'ai vraiment pas de préférence, mais la cohérence est une considération importante.

La première (il y en a plusieurs) définition de «état» dans mon Sharp PW-E550 (un dictionnaire génial, pourrais-je ajouter) est «la condition particulière dans laquelle se trouve quelqu'un ou quelque chose à un moment précis». La première définition du «statut» est «le statut social, professionnel ou autre relatif de quelqu'un ou de quelque chose». Même la deuxième (et dernière) définition du «statut» est inférieure à «l'État» dans ce contexte: «la situation des affaires à un moment donné, en particulier dans des contextes politiques ou commerciaux».

Donc, si nous voulions que ce soit aussi simple que possible pour quelqu'un qui utilise mon dictionnaire (il utilise le New Oxford American Dictionary, 2001), «état» serait le meilleur choix.

En outre, il existe un modèle de conception décrit dans le livre du Gang of Four appelé le modèle d'état, établissant fermement le terme dans le lexique informatique.

Pour ces raisons, je suggère «état».

PS C'est toi DDM? Êtes-vous toujours amer à propos de "l'état" par rapport au "statut"? !!!!!!! LMAO!


-1

Eh bien, ils veulent dire la même chose. Je ne pense pas qu'il soit nécessaire de promulguer une grande préférence de l'un par rapport à l'autre, mais j'irais généralement avec "statut", parce que j'aime les choses qui sonnent latinement et classicistes. Je veux dire, dans mon monde, le pluriel de schema est schemata, donc il n'y a pratiquement pas d'autre moyen pour que ça aille, avec moi.


Ils ne veulent pas dire la même chose.
BrainSlugs83

Le contexte de cette question est le logiciel, c'est pourquoi la question est valable. Les systèmes informatiques doivent presque toujours déterminer et rapporter l'état / l'état des différentes parties du système et nommer les choses de manière descriptive devient très important pour les personnes qui déboguent ou améliorent le logiciel.
spemble

-1

Sophistifunk, je suis sûr que vous obtiendrez des arguments pour l'état et l'état. La chose la plus importante à faire est d'en choisir un et d'en utiliser un seul. Je suggère d'en discuter avec votre équipe et de voir sur quoi tout le monde est d'accord.

Cela dit, ma suggestion est la suivante.

En supposant que vous utilisez un langage de programmation orienté objet, «l'état» d'un objet est représenté par l'objet lui-même. SomeObject.state est imo trompeur. Je ne suis pas sûr de ce que représente le «statut» dans votre exemple, mais mon intuition naturelle est de préférer cela à l'état.


1
En choisir un et s'en tenir à un seul est absurde. Les deux ont des significations et des implications différentes. Considérez par exemple "GameState" contre "GameStatus" - les deux ont des implications très différentes et ne sont pas interchangeables.
BrainSlugs83

-2

Pas du tout la même chose. Arrêté et démarré sont des états. L'arrêt et le démarrage sont des statuts.

Si vous en faites la même chose, comment décrivez-vous le véhicule comme arrêté mais qui démarre actuellement. Ou une demande telle qu'elle est actuellement déposée mais qui n'est pas encore entrée dans le processus d'approbation ou est en cours d'approbation mais est actuellement en attente avec une condition d'erreur en attente de signature?


1
OP demandait d'utiliser l'un ou l'autre; pas les deux. On pourrait soutenir que Startingc'est en effet un Statecomplètement distinct de Stopped. Cela dépend de la sémantique de votre système . Vérifiez, par exemple, les services Windows.
Andrew Barber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.