Соглашения об именах: "Состояние" и "Статус"

Быстрый вопрос: я хотел бы услышать ваши мысли о том, когда использовать "Государство" в сравнении с "Статусом" при названии обоих полей, таких как "Foo.currentState" и "Foo.status" и типов, таких как "enum FooState", vs "enum FooStatus". Существует ли там конвенция? Следует ли использовать только один? Если да, то какой, а если нет, как мы должны выбирать?

Ответ 1

Это зависит от контекста

Состояние обычно относится ко всему состоянию объекта - все его значения и отношения в определенный момент времени (обычно, текущий)

Статус больше времени, скажем, где-то в процессе или рабочем процессе - он грязный (поэтому требует сохранения), он завершен, находится в ожидании ввода и т.д.

Я надеюсь, что это поможет вам в решении.

Ответ 2

ММО:

статус == как дела? [Хороший/плохой]

Состояние

: что вы делаете? [Отдыха/работы]

Ответ 3

Обычно я использую State для обозначения текущего состояния объекта или системы в целом. Я использую статус для представления результатов некоторых действий. Например, состояние объекта может быть сохранено/несохранено, допустимо/недействительно. Состояние (результат) метода успешное/неудачное/ошибка. Я думаю, что это довольно хорошо сочетается с определением статуса как "состояние или состояние" состояние или состояние в отношении обстоятельств "," обстоятельства в этом случае являются применением действие/метод.

Ответ 4

Другая (полностью прагматичная) причина предпочитать состояние над статусом заключается в том, что множественное число является простым:

  • состояние → состояния
  • статус → статусы

И поверьте мне, рано или поздно вы получите список или массив или что-то еще из состояний вашего кода и должны будете называть эту переменную.

Ответ 5

Я думаю, что многие люди используют "статус" для представления состояния объекта, если только по той причине, что "государство" относится к политическому разделению Соединенных Штатов.

Ответ 6

Многие сущности, с которыми я имею дело (учетные записи, клиенты), могут иметь состояние (TX, VA и т.д.) и статус (активный, закрытый и т.д.).

Таким образом, пункт о том, что этот термин вводит в заблуждение, возможен. У нас есть стандартизованное соглашение об именах баз данных (а не мой личный выбор), где состояние называется ST_CD, а статус будет ACCT_STAT_CD.

С перечислением в среде OO эта проблема не так важна, поскольку, если у вас есть строгая безопасность типов, компилятор гарантирует, что никто не попытается это сделать:

theCustomer.State = Customer.Status.Active;

Если вы находитесь в динамичной среде, я буду больше беспокоиться!

Если вы имеете дело с доменом, где государственные машины или другая государственная информация и эта терминология являются преобладающими, тогда я бы подумал, что состояние прекрасное.

Ответ 7

Я думаю, вы могли бы добавить еще одну перспективу в уравнение, а именно 'sender-requester'.

С точки зрения отправителей, я бы передал свое состояние всем желающим слушать. Хотя с точки зрения сторонников, я бы попросил кого-то статус.

Вышеизложенное также можно интерпретировать с точки зрения неопределенности: - Определено = состояние - Undefined= статус Какой у вас статус? Я в расслабленном состоянии.

Я уверен, что это всего лишь одна интерпретация, которая может не распространяться на вашу конкретную ситуацию.

Ответ 8

Быстрая проверка словаря показывает, что статус является синонимом состояния, но имеет дополнительную интерпретацию положения относительно других.

Поэтому я бы использовал состояние для набора состояний, которые не имеют никакого неявного упорядочения или позиции относительно друг друга, и статус для тех, кто это делает (возможно выключен?). Но это прекрасное различие.

Ответ 9

Ну, они имеют в виду то же самое. Я не думаю, что необходимо обнародовать большое предпочтение одного над другим, но я бы вообще пошел с "статусом", потому что мне нравятся вещи, которые звучат латинатом и классиками. Я имею в виду, что в моем мире множественное число схемы является схемой, поэтому у меня нет другого пути для этого.

Ответ 10

У нас были эти точные дебаты по моему текущему проекту некоторое время назад. У меня действительно нет предпочтения, но согласованность является важным соображением.

Первое (есть несколько) определение "state" в моем Sharp PW-E550 (удивительный словарь, я могу добавить) - это "особое условие, что кто-то или что-то есть в определенное время". Первое определение "статус" - это "относительное социальное, профессиональное или иное положение кого-то или чего-то". Даже второе (и последнее) определение "статуса" в этом контексте уступает "состоянию": "положение дел в определенное время, особенно в политическом или коммерческом контексте".

Итак, если бы мы хотели, чтобы это было как можно проще для кого-то, использующего мой словарь (он использует New Oxford American Dictionary, 2001), "государство" было бы лучшим выбором.

Кроме того, существует шаблон проектирования, описанный в книге "Банда четырех" под названием "Шаблон состояния", прочно устанавливающий термин в вычислительной лексике.

По этим причинам я предлагаю "состояние".

P.S. Это вы DDM? Вы все еще горьки о "состоянии" и "статусе"?!!!!!!! LMAO!

Ответ 11

Sophistifunk, я уверен, что вы получите аргументы как для состояния, так и для состояния. Самое главное, что вы выбираете один и используете только один. Я бы предложил обсудить это с вашей командой и посмотреть, что все согласны.

Тем не менее, мое предложение таково.

Предполагая, что вы используете объектно-ориентированный язык программирования, объект "состояние" представляется самим объектом. SomeObject.state вводит в заблуждение imo. Я не уверен, что означает "статус" в вашем примере, но моя естественная интуиция должна предпочесть это.

Ответ 12

Не то же самое. Остановлены и запущены состояния. Остановка и запуск - это статус.

Если вы сделаете им то же самое, как вы описываете транспортное средство как остановленное, но в настоящее время начинаете. Или приложение, которое в настоящее время подано, но еще не вступило в процесс утверждения или одобрено, но в настоящее время приостановлено с условием ошибки ожидания подписи?