Convenções de nomenclatura: “Estado” versus “Status” [fechado]

175

Pergunta rápida: gostaria de ouvir seus pensamentos sobre quando usar "Estado" versus "Status" ao nomear dois campos como "Foo.currentState" vs "Foo.status" e tipos, como "enum FooState" vs "enum FooStatus ". Existe uma convenção discutida lá fora? Devemos usar apenas um? Se sim, qual e, se não, como devemos escolher?

Sophistifunk
fonte
14
Heh. Outro dia, no trabalho, deparei-me com uma estrutura que tinha um membro chamado "estado" e outro membro chamado "status", e eram coisas diferentes. Comecei a pensar sobre o significado das palavras e sobre a possibilidade de alterá-las, mas o código era antigo, sujo e funcionava, então deixei o cachorro dormir mentir. Oh .. isso provavelmente deveria ter sido um "comentário", em vez de uma "resposta, eh? Comentário, resposta, estado, status ... tanto faz."
smcameron
9
E é claro que isso está fechado. O bom e velho SO.
Jn1kk
2
@jsn não só é fechado (o que não é nestes dias?), mas é ainda por um longo tiro a coisa mais popular que eu contribuiu aqui :)
Sophistifunk
8
Esta é uma questão de programação legítima. martinfowler.com/bliki/TwoHardThings.html
2
Status é um rótulo simples, como "íntegro", "degradado", "indisponível" etc. O estado inclui todos os detalhes sangrentos; por exemplo, CPU util e carga médias, util memória, métricas de JVM, uso de disco, etc.

Respostas:

107

Depende do contexto

Estado geralmente se refere ao estado inteiro de uma entidade - todos os seus valores e relacionamentos em um momento específico (geralmente, atual)

O status é mais um ponto no tempo, digamos, em que algo está em um processo ou fluxo de trabalho - está sujo (portanto, requer economia), está completo, está com entrada pendente etc.

Espero que ajude você na sua decisão.

Luke Schafer
fonte
211

OMI:

status == como você está? [bom mau]

state == o que você está fazendo? [descansando / trabalhando]

espelhar
fonte
17
Onde você estava em 2009? Essa resposta faz mais sentido no jargão técnico (estado da CPU, estado do encadeamento, máquina de estado; status de retorno, status do volume de invasão etc.) e até quase tudo o mais (status do aplicativo, status da conta etc.). A única coisa que consigo pensar é inconsistente são coisas como "estado de coisas" ou "o estado das coisas", mais parecido com o seu "status" (boa / má ideia das coisas que estão acontecendo, em vez das coisas que estão acontecendo). seguir em frente).
Peter
4
O estado também implica que ele contém mais informações do que apenas "descansar / trabalhar" - mas todos os detalhes sobre o trabalho (ou descanso) que está realizando.
precisa saber é o seguinte
3
"Estou construindo uma casa na árvore no quintal do meu irmão" seria um exemplo mais detalhado de estado , como você sugere, @ BrainSlugs83. Neste exemplo, meu status pode estar cansado / suado / energizado / feliz.
spemble
4
Eu amo esse exemplo. Limpo e conciso. Para meu uso prático, posso generalizá-lo para um axioma dizendo que Statedeve refletir o "nó indicado" em um gráfico de nós de estado da máquina de estado (ou fluxo de trabalho), onde a descrição pode ser facilmente um adjetivo verbal (geralmente termina com " -ing "), considerando que Statusé uma propriedade simples do objeto, um adjetivo simples, que pode ser usado por um gatilho ou como valor observado para uma decisão de alterar (ou manter) um estado. Provavelmente estou pensando demais. Eu faço isso ..
Alan McBee - MSFT
6
Concordo: STATUS é o resultado ou o progresso de uma alteração no STATE.
Neil
16

Normalmente, usarei State para significar a condição atual de um objeto ou do sistema como um todo. Uso status para representar o resultado de alguma ação. Por exemplo, o estado de um objeto pode ser salvo / não salvo, válido / inválido. O status (resultado) de um método é bem-sucedido / malsucedido / erro. Eu acho que isso combina muito bem com a definição de status como " estado ou condição em relação às circunstâncias ", sendo as circunstâncias neste caso a aplicação de uma ação / método.

tvanfosson
fonte
8

Outra razão (totalmente pragmática) para preferir o estado ao status é que o plural é direto:

  • estado -> estados
  • status -> status

E acredite, mais cedo ou mais tarde, você terá uma lista ou matriz ou qualquer um dos estados em seu código e precisará nomear a variável.

robinst
fonte
3
apenas imaginando, o status 'plural' não deveria ser stati?
BiAiB
O Wikcionário diz status: en.wiktionary.org/wiki/status#Noun . Outras línguas têm plurais diferentes para isso.
robinst
9
O plural latino é "statūs", com um u longo, não stati.
Paŭlo Ebermann 16/05
6

Eu acho que muitas pessoas usam "Status" para representar o estado de um objeto se, por nenhuma outra razão, "State" se referir a uma divisão política dos Estados Unidos.

Dave Markle
fonte
11
essa não é a razão pela qual eu já usei, nem ninguém tenho cada trabalhou com ou texto lido a partir de ...
Luke Schafer
4
E daí? É uma razão válida. É uma convenção de nomes.
23430 Dave Markle
4
Sim. Também na Austrália, usamos o termo Estado para descrever as ex-colônias individuais que foram unificadas na Commonwealth em 1901. Portanto, costumo usar apenas .status, pois ter .state é frequentemente usado em estruturas de dados que possuem um endereço.
Matthew Schinckel 22/07/2009
Então address.state = Tasmânia; faz sentido, mas não se espera que device.state envolva geografia.
spemble
3

Eu acho que você poderia adicionar outra perspectiva à equação, a saber, 'remetente-solicitante'.

Do ponto de vista dos remetentes, eu comunicaria meu estado com qualquer pessoa disposta a ouvir. Enquanto da perspectiva dos solicitantes, eu estaria solicitando o status de alguém.

O acima exposto também pode ser interpretado do ponto de vista da incerteza:

  • Definido = estado
  • Indefinido = status

Qual é o seu status? Eu estou em um estado relaxado.

Tenho certeza de que essa é apenas uma interpretação, que pode não se aplicar à sua situação específica.

Michel Verkaik
fonte
1

Uma verificação rápida do dicionário revela que status é sinônimo de estado, mas tem uma interpretação adicional de uma posição em relação à de outras pessoas .

Então, eu usaria o estado para um conjunto de estados que não têm nenhuma ordem ou posição implícita em relação um ao outro, e o status para aqueles que possuem (talvez fora do modo de espera?). Mas é uma boa distinção.

Brian Agnew
fonte
1

Muitas das entidades com as quais trato (contas, clientes) podem ter um estado (TX, VA etc.) e um status (ativo, fechado etc.)

Portanto, o argumento sobre o termo ser enganoso é possível. Temos uma convenção de nomenclatura padronizada de banco de dados (não é minha escolha pessoal) em que um estado é nomeado ST_CDe um status seria ACCT_STAT_CD.

Com um enum em um milieux OO, esse problema não é tão importante, pois se você tiver uma segurança estrita de tipo, o compilador garantirá que ninguém tente fazer isso:

theCustomer.State = Customer.Status.Active;

Se você estiver em um ambiente dinâmico, eu ficaria mais preocupado!

Se você está lidando com um domínio em que máquinas de estado ou outras informações de estado e que a terminologia é predominante, eu acho que o estado está perfeitamente bem.

Cade Roux
fonte
O endereço pertence ao endereço do cliente, não o cliente em si, por exemplo, theCustomer.MailingAddress.State = Iowa;
spemble
@ spemble Possivelmente, e possivelmente não. Também pode ser um estado de nascimento ou de residência quando anexado a uma pessoa que não possui um endereço e, é claro, pode ser anexado a muitas outras entidades, como endereços, licenças, autorizações, etc. Em qualquer caso, não tenho certeza é relevante para a questão de saber se existe ambiguidade no uso de um termo de domínio de problema comum como State para uma implementação específica de uma máquina / sinalizador / status de estado. E então, se estado ou status têm ou não significados diferentes.
Cade Roux
0

Tivemos esse debate exato no meu projeto atual há um tempo. Realmente não tenho preferência, mas a consistência é uma consideração importante.

A primeira (existem várias) definições de "estado" no meu Sharp PW-E550 (um dicionário incrível, devo acrescentar) é "a condição específica em que alguém ou algo está em um momento específico". A primeira definição de "status" é "a posição social, profissional ou outra relativa de alguém ou de alguma coisa". Até a segunda (e última) definição de "status" é inferior a "estado" neste contexto: "a posição dos negócios em um determinado momento, especialmente em contextos políticos ou comerciais".

Portanto, se quisermos que seja o mais fácil possível para alguém que usa o meu dicionário (usa o New Oxford American Dictionary, 2001), "estado" seria a melhor escolha.

Além disso, há um padrão de design descrito no livro do Gang of Four chamado State Pattern, estabelecendo firmemente o termo no léxico da computação.

Por essas razões, sugiro "estado".

PS É você DDM? Você ainda está amargo com "estado" versus "status"? !!!!!!! RINDO MUITO!

les2
fonte
-1

Bem, eles significam a mesma coisa. Eu não acho que seja necessário promulgar uma grande preferência de um sobre o outro, mas eu geralmente aceitaria "status", porque gosto de coisas que soam latinas e classicistas. Quero dizer, no meu mundo, o plural de esquema é um esquema, então não há outro caminho para isso, comigo.

caos
fonte
Eles não significam a mesma coisa.
precisa saber é o seguinte
O contexto para esta pergunta é software, e é por isso que a pergunta é válida. Os sistemas de computador sempre precisam determinar e relatar o estado / status de várias partes do sistema, e nomear as coisas de forma descritiva se torna muito importante para as pessoas que estão depurando ou melhorando o software.
spemble 5/03/19
-1

Sofistifunk, tenho certeza de que você obterá argumentos para Estado e Status. A coisa mais importante a fazer é escolher uma e usar apenas uma. Sugiro discutir isso com sua equipe e ver com o que todos concordam.

Dito isto, minha sugestão é a seguinte.

Supondo que você esteja usando uma linguagem de programação orientada a objetos, o "estado" de um objeto é representado pelo próprio objeto. SomeObject.state é imo enganador. Não tenho certeza do que "status" representa no seu exemplo, mas minha intuição natural é preferir isso ao estado.

Hobobave
fonte
1
Escolher um e ficar apenas com um é um absurdo. Os dois têm significados e implicações diferentes. Considere, por exemplo, "GameState" versus "GameStatus" - os dois têm implicações muito diferentes e não são intercambiáveis.
precisa saber é o seguinte
-2

Não é a mesma coisa. Parados e iniciados são estados. Parar e iniciar são status.

Se você os fizer da mesma maneira, como descreve o veículo como parado, mas está iniciando no momento. Ou um aplicativo como apresentado atualmente, mas ainda não entrou no processo de aprovação ou está sendo aprovado, mas está atualmente em espera com uma condição de erro de aguardar assinatura?

Andy Robinson
fonte
1
O OP estava perguntando sobre o uso de um ou outro; não ambos. Alguém poderia argumentar que Startingé de fato um Statecompletamente distinto de Stopped. Depende da semântica do seu sistema . Verifique, por exemplo, Serviços do Windows.
Andrew Barber