Соглашения об именах: "состояние" и "статус" [закрыто]


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

12 146

12 ответов:

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

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

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

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

IMO:

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

state == что ты делаешь? [отдыхает/работает]

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

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

  • государство -> государства
  • информация -> статусы

и поверьте мне, рано или поздно у вас будет список или массив или любое другое состояние в вашем коде, и вам придется назвать переменную.

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

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

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

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

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

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

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

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

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

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

theCustomer.State = Customer.Status.Active;

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

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

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

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

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

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

С. П. является то, что вы ДДМ? Вы все еще горько относитесь к "государству" против "статуса"?!!!!!!! Ржунимагу!

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

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

тем не менее, мое предложение заключается в следующем.

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

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

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