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?
naming-conventions
nomenclature
Sophistifunk
fonte
fonte
Respostas:
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.
fonte
OMI:
status == como você está? [bom mau]
state == o que você está fazendo? [descansando / trabalhando]
fonte
State
deve 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 queStatus
é 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 ..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.
fonte
Outra razão (totalmente pragmática) para preferir o estado ao status é que o plural é direto:
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.
fonte
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.
fonte
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:
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.
fonte
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.
fonte
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_CD
e um status seriaACCT_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:
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.
fonte
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!
fonte
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.
fonte
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.
fonte
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?
fonte
Starting
é de fato umState
completamente distinto deStopped
. Depende da semântica do seu sistema . Verifique, por exemplo, Serviços do Windows.