Pergunta

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

Foi útil?

Solução

Depende do contexto

Estado geralmente se refere a todo o estado de uma entidade - todos os seus valores e relações em um determinado ponto no tempo (geralmente, atual)

Status é mais um ponto de tempo, digamos, onde algo está em um processo ou fluxo de trabalho - é sujo (necessitando de poupança), é completo, é de entrada pendente, etc

Espero que ajuda você na sua decisão.

Outras dicas

IMO:

Status == como você está? [Bom / mau]

estado == o que você está fazendo? [Descansando / trabalho]

Normalmente vou usar Estado para significar a condição atual de um objeto ou o sistema como um todo. I usar o status para representar o resultado de alguma ação. Por exemplo, o estado de um objeto pode ser salva / não salvos, válida / inválida. O estado (resultado) de um método é bem / mal sucedida / erro. Eu acho que isso piadas muito bem com a definição de status como " ou condição no que diz respeito às circunstâncias ," as circunstâncias do caso, sendo a aplicação de uma ação / método.

Outra razão (totalmente pragmática) a preferir Estado sobre o status é que o plural é simples:

  • Estado -> estados
  • Estado -> status

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

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

Eu acho que você poderia adicionar uma outra perspectiva para a equação, ou seja, 'remetente-solicitante'.

Do ponto de vista remetentes, eu comunicar o meu estado com ninguém disposto a ouvir. Embora do ponto de vista solicitantes, eu estaria pedindo o status de alguém.

A descrição acima poderia também ser interpretada do ponto de vista da incerteza: - Definido = Estado - Undefined = Estado Qual é o seu status? Eu estou em um estado relaxado.

Eu tenho certeza que esta é apenas uma interpretação, que podem não se aplicar à sua situação particular.

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

Assim, gostaria de usar Estado para um conjunto de estados que não têm qualquer ordenação ou a posição implícita em relação ao outro, e Estado para aqueles que fazem (talvez off-standby-on?). Mas é uma multa distinção.

Muitas das entidades que lidam com (contas, clientes) podem ter um Estado (TX, VA, etc.) e um estado (Ativo, Fechado, etc.)

Assim, o ponto sobre o termo ser enganosa é possível. Temos uma convenção de nomenclatura de banco de dados padronizado (não minha escolha pessoal), onde um estado é nomeado ST_CD e um estatuto seria ACCT_STAT_CD.

Com um enum em um milieux OO, esta questão não é tão importante, pois se você tem estrita segurança de tipo, o compilador irá garantir que ninguém tentativas de fazer isso:

theCustomer.State = Customer.Status.Active;

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

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

Nós tivemos esse debate exata no meu projeto atual há algum tempo. Eu realmente não tenho uma preferência, mas a consistência é uma consideração importante.

O primeiro (há vários) definição de "estado" na minha SHARP PW-E550 (um dicionário incrível, eu poderia acrescentar) é "a condição particular que alguém ou algo está em um momento específico." A primeira definição de "status" é "a posição social, profissional ou outro parente de alguém ou de alguma coisa". Mesmo o segundo (e último) definição de "status" é inferior ao "estado" neste contexto: ". A posição de coisas em um determinado momento, esp em contextos políticos ou comerciais"

Então, se nós queria que fosse o mais fácil possível para alguém usando meu dicionário (ele usa o New Oxford American Dictionary, 2001), "estado" seria a melhor escolha.

Além disso, há um padrão de projeto descrito na Gang do livro de quatro chamado o padrão Estado, estabelecendo firmemente o termo no léxico de computação.

Por estas razões eu sugiro "estado".

P.S. É que você DDM? Você ainda está amargo sobre "estado" versus "status"? !!!!!!! LMAO!

Bem, eles não significam a mesma coisa. Eu não acho que é necessário promulgar uma grande preferência de um sobre o outro, mas eu geralmente ir com "status", porque eu gosto de coisas que soam Latinate e classicista. Quer dizer, no meu mundo, o plural de esquema é esquemas, então não há praticamente nenhuma outra maneira para que ele vá comigo.

Sophistifunk, tenho certeza que você vai ter argumentos tanto para Estado e Status. A coisa mais importante a fazer é que você escolher um, e usar apenas um. Eu sugiro que discutir isso com sua equipe e ver o que todos concordam.

Dito isto, a minha sugestão é a seguinte.

Assumindo que você está usando uma linguagem de programação orientada a objeto, "estado" de um objeto é representado pelo próprio objeto. SomeObject.state é enganosa imo. Não estou certo do que "status" representa no seu exemplo, mas minha intuição natural é a preferir este para estado.

Não é o mesmo coisa. Parado e iniciado são estados. Parando e iniciando são status.

Se você torná-los a eles a mesma coisa como você descrever o veículo parado, mas está começando. Ou um aplicativo como actualmente apresentado, 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 espera de assinatura?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top