Convenciones de nomenclatura: "Estado" versus "Estado" [cerrado]

175

Pregunta rápida: Me gustaría escuchar su opinión sobre cuándo usar "Estado" versus "Estado" al nombrar ambos campos, como "Foo.currentState" vs "Foo.status" y tipos, como "enum FooState" vs "enum FooStatus ". ¿Hay una convención discutida por ahí? ¿Deberíamos usar solo uno? Si es así, ¿cuál, y si no, cómo debemos elegir?

Sophistifunk
fuente
14
Je El otro día en el trabajo me encontré con una estructura que tenía un miembro llamado "estado" y otro miembro llamado "estado", y eran cosas diferentes. Empecé a pensar en lo que significaban las palabras y en si cambiarlo, pero el código era viejo y descuidado y funcionaba, así que dejé que el perro dormido miente. Oh .. esto probablemente debería haber sido un "comentario", en lugar de una "respuesta, eh comentario, respuesta, estado, estado de ... lo que sea?.
smcameron
9
Y, por supuesto, esto está cerrado. Bien viejo.
jn1kk
2
@jsn no sólo es cerrado (lo que no es en estos días?), pero es todavía por mucho la cosa más popular que he contribuido aquí :)
Sophistifunk
8
Esta es una pregunta de programación legítima. martinfowler.com/bliki/TwoHardThings.html
2
El estado es una etiqueta simple, como "saludable", "degradado", "no disponible", etc. El estado incluye todos los detalles sangrientos; por ejemplo, utilidades de CPU y promedios de carga, utilidades de memoria, métricas de JVM, uso de disco, etc.

Respuestas:

107

depende del contexto

El estado generalmente se refiere al estado completo de una entidad: todos sus valores y relaciones en un punto particular en el tiempo (generalmente, actual)

El estado es más un punto de tiempo, por ejemplo, donde algo está en un proceso o flujo de trabajo: está sucio (por lo tanto, requiere guardar), está completo, está pendiente de entrada, etc.

Espero que te ayude en tu decisión.

Luke Schafer
fuente
211

OMI:

estado == como estas [Bueno malo]

estado == que estas haciendo? [descansando / trabajando]

motear
fuente
17
¿Dónde estabas en 2009? Esta respuesta tiene más sentido en la jerga técnica (estado de la CPU, estado del hilo, máquina de estado; estado de retorno, estado del volumen de incursión, etc.) e incluso gran parte de todo lo demás (estado de la aplicación, estado de la cuenta, etc.). Lo único en lo que puedo pensar es inconsistente es cosas como "estado de cosas" o "estado de cosas", que es más como su "estado" (buena / mala idea de las cosas que están sucediendo, en lugar de las cosas que seguir por sí mismos).
Peter
44
El estado también implica que contiene más información que simplemente "descansar / trabajar" - pero todos los detalles sobre el trabajo (o descanso) que está haciendo.
BrainSlugs83
3
"Estoy construyendo una casa en el árbol en el patio trasero de mi hermano" sería un ejemplo más detallado de estado , como sugiere, @ BrainSlugs83. En este ejemplo, mi estado podría estar cansado / sudoroso / lleno de energía / feliz.
moteado el
44
Amo este ejemplo. Limpio y conciso. Para mi uso práctico, podría generalizarlo a un axioma diciendo que Statedebería reflejar el "nodo indicado" dentro de un gráfico de nodos de estado de máquina de estado (o flujo de trabajo), donde la descripción podría ser fácilmente un adjetivo verbal (a menudo termina con " -ing "), mientras que Statuses una propiedad simple del objeto, un adjetivo simple, que podría ser utilizado por un disparador o como valor observado para una decisión de cambiar (o mantener) un estado. Probablemente lo estoy pensando demasiado. Hago eso ..
Alan McBee - MSFT
66
Estoy de acuerdo: ESTADO es el resultado o el progreso de un cambio en ESTADO.
Neil
16

Normalmente usaré State para referirme a la condición actual de un objeto o del sistema en su conjunto. Utilizo el estado para representar el resultado de alguna acción. Por ejemplo, el estado de un objeto puede ser guardado / no guardado, válido / inválido. El estado (resultado) de un método es exitoso / no exitoso / error. Creo que esto concuerda bastante bien con la definición de estado como " estado o condición con respecto a las circunstancias ", las circunstancias en este caso son la aplicación de una acción / método.

tvanfosson
fuente
8

Otra razón (completamente pragmática) para preferir el estado al estado es que el plural es sencillo:

  • estado -> estados
  • estado -> estados

Y créame, tarde o temprano tendrá una lista o matriz o cualquiera de los estados en su código y tendrá que nombrar la variable.

robinst
fuente
3
solo me pregunto, ¿no debería status 'plural ser stati?
BiAiB
Wiktionary dice estados: en.wiktionary.org/wiki/status#Noun . Sin embargo, otros idiomas tienen diferentes plurales.
robinst
9
El plural latino es "statūs", con una u larga, no stati.
Paŭlo Ebermann
6

Creo que muchas personas usan "Estado" para representar el estado de un objeto si por otra razón que "Estado" se refiere a una división política de los Estados Unidos.

Dave Markle
fuente
11
esa no es la razón por la que he usado, ni a nadie con quien haya trabajado o leído textos ...
Luke Schafer el
44
¿Y qué? Es una razón válida. Es una convención de nombres.
Dave Markle
44
Sí. En Australia, también, utilizamos el término Estado para describir las antiguas colonias individuales que se unificaron en la Commonwealth en 1901. Por lo tanto, tiendo a usar solo .status, ya que tener .state a menudo se usa en estructuras de datos que tienen una dirección.
Matthew Schinckel
Entonces address.state = Tasmania; tiene sentido, pero no se esperaría que device.state involucre geografía.
spemble
3

Creo que podría agregar otra perspectiva a la ecuación, a saber, 'remitente-solicitante'.

Desde la perspectiva de los remitentes, comunicaría mi estado con cualquiera que esté dispuesto a escuchar. Si bien desde la perspectiva de los solicitantes, estaría preguntando por el estado de alguien.

Lo anterior también podría interpretarse desde un punto de vista de incertidumbre:

  • Definido = estado
  • Indefinido = estado

¿Cual es tu estado? Estoy en un estado relajado.

Estoy bastante seguro de que esta es solo una interpretación, que puede no aplicarse a su situación particular.

Michel Verkaik
fuente
1

Una comprobación rápida del diccionario revela que estado es sinónimo de estado, pero tiene una interpretación adicional de una posición en relación con la de los demás .

Por lo tanto, usaría el estado para un conjunto de estados que no tienen ningún orden implícito o posición relativa entre sí, y el estado para aquellos que sí lo tienen (¿tal vez fuera de espera? Pero es una buena distinción.

Brian Agnew
fuente
1

Muchas de las entidades con las que trato (cuentas, clientes) pueden tener un estado (TX, VA, etc.) y un estado (activo, cerrado, etc.)

Entonces, el punto sobre el término es engañoso es posible. Tenemos una convención de nomenclatura de bases de datos estandarizada (no es mi elección personal) donde se nombra ST_CDun estado y sería un estado ACCT_STAT_CD.

Con una enumeración en un entorno OO, este problema no es tan importante, ya que si tiene una seguridad de tipo estricta, el compilador se asegurará de que nadie intente hacer esto:

theCustomer.State = Customer.Status.Active;

Si estás en un entorno dinámico, ¡estaría más preocupado!

Si se trata de un dominio donde las máquinas de estado u otra información de estado y esa terminología es predominante, entonces creo que State está perfectamente bien.

Cade Roux
fuente
La dirección pertenece a la dirección del cliente, no al cliente per se, por ejemplo, theCustomer.MailingAddress.State = Iowa;
spemble
@spemble Posiblemente, y posiblemente no. También puede ser un estado de nacimiento o de residencia cuando se adjunta a una persona ausente de una dirección, y por supuesto se puede adjuntar a muchas otras entidades como direcciones, licencias, permisos, etc. En cualquier caso, no estoy seguro es relevante a la pregunta de si existe ambigüedad con el uso de un término de dominio de problema común como Estado para una implementación específica de una máquina de estado / bandera / estado. Y luego, si el estado o el estado tienen o no significados diferentes.
Cade Roux
0

Tuvimos este debate exacto sobre mi proyecto actual hace un tiempo. Realmente no tengo preferencia, pero la consistencia es una consideración importante.

La primera (hay varias) definiciones de "estado" en mi Sharp PW-E550 (un diccionario increíble, podría agregar) es "la condición particular en la que alguien o algo se encuentra en un momento específico". La primera definición de "estado" es "la posición social, profesional u otra relativa de alguien o algo". Incluso la segunda (y última) definición de "estado" es inferior a "estado" en este contexto: "la posición de los asuntos en un momento particular, especialmente en contextos políticos o comerciales".

Entonces, si quisiéramos que fuera lo más fácil posible para alguien que usa mi diccionario (usa el New Oxford American Dictionary, 2001), "estado" sería la mejor opción.

Además, hay un patrón de diseño descrito en el libro de Gang of Four llamado State Pattern, que establece firmemente el término en el léxico informático.

Por estas razones sugiero "estado".

PD: ¿Eres tú DDM? ¡¿Todavía estás amargado por "estado" versus "estado"? !!!!!!! LMAO!

les2
fuente
-1

Bueno, significan lo mismo. No creo que sea necesario promulgar una gran preferencia de uno sobre el otro, pero generalmente iría con "status", porque me gustan las cosas que suenan latinas y clasicistas. Quiero decir, en mi mundo, el plural de schemata es schemata, así que prácticamente no hay otra forma de hacerlo, conmigo.

caos
fuente
No significan lo mismo.
BrainSlugs83
El contexto para esta pregunta es el software, por lo que la pregunta es válida. Los sistemas informáticos casi siempre tienen que determinar e informar el estado / estado de varias partes del sistema y nombrar las cosas descriptivamente se vuelve muy importante para las personas que están depurando o mejorando el software.
Spemble
-1

Sophistifunk, estoy seguro de que obtendrás argumentos tanto para Estado como para Estado. Lo más importante es elegir uno y usar solo uno. Sugeriría discutir esto con su equipo y ver en qué están de acuerdo todos.

Dicho esto, mi sugerencia es la siguiente.

Suponiendo que está utilizando un lenguaje de programación orientado a objetos, el "estado" de un objeto está representado por el propio objeto. SomeObject.state es engañoso imo. No estoy seguro de qué "estado" representa en su ejemplo, pero mi intuición natural es preferir esto al estado.

hobodave
fuente
1
Elegir uno y quedarse solo con uno es absurdo. Los dos tienen significados e implicaciones diferentes. Considere, por ejemplo, "GameState" versus "GameStatus": los dos tienen implicaciones muy diferentes y no son intercambiables.
BrainSlugs83
-2

No es lo mismo en absoluto. Detenido e iniciado son estados. Parar y comenzar son estado.

Si les haces lo mismo, ¿cómo describirías el vehículo como parado pero que actualmente está en marcha? ¿O una solicitud presentada actualmente pero que aún no ha entrado en el proceso de aprobación o está siendo aprobada pero actualmente está en espera con una condición de error de esperar la firma?

Andy Robinson
fuente
1
OP estaba preguntando sobre el uso de uno u otro; no ambos. Se podría argumentar que, de Startinghecho, es Statecompletamente distinto de Stopped. Depende de la semántica de su sistema . Verifique, por ejemplo, los Servicios de Windows.
Andrew Barber